sl@0: /* sl@0: * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: This is the definition of the CAudioOutput class. sl@0: * sl@0: */ sl@0: sl@0: sl@0: sl@0: #ifndef AUDIOOUTPUT_H sl@0: #define AUDIOOUTPUT_H sl@0: sl@0: // INCLUDES sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: // FORWARD DECLARATIONS sl@0: class MAudioOutputObserver; sl@0: class MCustomCommand; sl@0: class CMdaAudioPlayerUtility; sl@0: class CMdaAudioRecorderUtility; sl@0: class CMMFDevSound; sl@0: class CDrmPlayerUtility; sl@0: class CVideoPlayerUtility; sl@0: // CLASS DECLARATION sl@0: sl@0: /** sl@0: * ?one_line_short_description. sl@0: * ?other_description_lines sl@0: */ sl@0: class CAudioOutput : public CBase sl@0: { sl@0: public: // DATA TYPES sl@0: enum TAudioOutputPreference sl@0: { sl@0: ENoPreference, sl@0: EAll, sl@0: ENoOutput, sl@0: EPrivate, sl@0: EPublic sl@0: }; sl@0: sl@0: public: // Constructors and destructor sl@0: sl@0: /** sl@0: * Two-phased constructor. sl@0: */ sl@0: IMPORT_C static CAudioOutput* NewL(CMdaAudioPlayerUtility& aUtility); sl@0: /** sl@0: * Factory function for creating audio output object. sl@0: * @since 3.0 sl@0: * @param CMdaAudioRecorderUtility& - a reference to CMdaAudioRecorderUtility object sl@0: * @return pointer to CAudioOutput object sl@0: */ sl@0: IMPORT_C static CAudioOutput* CAudioOutput::NewL(CMdaAudioRecorderUtility& aUtility, TBool aRecordStream); sl@0: /** sl@0: * Factory function for creating audio output object. sl@0: * @since 3.0 sl@0: * @param CMdaAudioOutputStream& - a reference to CMdaAudioOutputStream object sl@0: * @return pointer to CAudioOutput object sl@0: */ sl@0: IMPORT_C static CAudioOutput* CAudioOutput::NewL(CMdaAudioOutputStream& aUtility); sl@0: /** sl@0: * Factory function for creating audio output object. sl@0: * @since 3.0 sl@0: * @param CMdaAudioToneUtility& - a reference to CMdaAudioToneUtility object sl@0: * @return pointer to CAudioOutput object sl@0: */ sl@0: IMPORT_C static CAudioOutput* CAudioOutput::NewL(CMdaAudioToneUtility& aUtility); sl@0: /** sl@0: * Factory function for creating audio output object. sl@0: * @since 3.0 sl@0: * @param CMMFDevSound& - a reference to CMMFDevSound object sl@0: * @return pointer to CAudioOutput object sl@0: */ sl@0: IMPORT_C static CAudioOutput* CAudioOutput::NewL(CMMFDevSound& aDevSound); sl@0: /** sl@0: * Factory function for creating audio output object. sl@0: * @since 3.0 sl@0: * @param MCustomInterface& - a reference to MCustomInterface object sl@0: * @return pointer to CAudioOutput object sl@0: */ sl@0: IMPORT_C static CAudioOutput* CAudioOutput::NewL(MCustomInterface& aUtility); sl@0: /** sl@0: * Factory function for creating audio output object. sl@0: * @since 3.0 sl@0: * @param MCustomCommand& - a reference to MCustomCommand object sl@0: * @return pointer to CAudioOutput object sl@0: */ sl@0: IMPORT_C static CAudioOutput* CAudioOutput::NewL(MCustomCommand& aUtility); sl@0: /** sl@0: * Factory function for creating audio output object. sl@0: * @since 3.0 sl@0: * @param CMidiClientUtility& - a reference to CMidiClientUtility object sl@0: * @return pointer to CAudioOutput object sl@0: */ sl@0: IMPORT_C static CAudioOutput* CAudioOutput::NewL(CMidiClientUtility& aUtility); sl@0: /** sl@0: * Factory function for creating audio output object. sl@0: * @since 3.0 sl@0: * @param CDrmPlayerUtility& - a reference to CDrmPlayerUtility object sl@0: * @return pointer to CAudioOutput object sl@0: */ sl@0: IMPORT_C static CAudioOutput* /*CAudioOutput::*/NewL(CDrmPlayerUtility& aUtility); sl@0: sl@0: /** sl@0: * Factory function for creating audio output object. sl@0: * @since 3.2 sl@0: * @param CVideoPlayerUtility& - a reference to CVideoPlayerUtility object sl@0: * @return pointer to CAudioOutput object sl@0: */ sl@0: IMPORT_C static CAudioOutput* /*CAudioOutput::*/NewL(CVideoPlayerUtility& aUtility); sl@0: sl@0: /** sl@0: * ?member_description. sl@0: * @param ?arg1 ?description sl@0: * @return ?description sl@0: */ sl@0: virtual TAudioOutputPreference AudioOutput() = 0; sl@0: sl@0: /** sl@0: * ?member_description. sl@0: * @param ?arg1 ?description sl@0: * @return ?description sl@0: */ sl@0: virtual TAudioOutputPreference DefaultAudioOutput() = 0; sl@0: sl@0: /** sl@0: * ?member_description. sl@0: * @param ?arg1 ?description sl@0: * @return ?description sl@0: */ sl@0: virtual void RegisterObserverL( MAudioOutputObserver& aObserver ) = 0; sl@0: sl@0: /** sl@0: * ?member_description. sl@0: * @param ?arg1 ?description sl@0: * @return ?description sl@0: */ sl@0: virtual TBool SecureOutput() = 0; sl@0: sl@0: /** sl@0: * ?member_description. sl@0: * @param ?arg1 ?description sl@0: * @return ?description sl@0: */ sl@0: virtual void SetAudioOutputL( TAudioOutputPreference aAudioOutput = ENoPreference ) = 0; sl@0: sl@0: /** sl@0: * ?member_description. sl@0: * @param ?arg1 ?description sl@0: * @return ?description sl@0: */ sl@0: virtual void SetSecureOutputL( TBool aSecure = EFalse ) = 0; sl@0: sl@0: /** sl@0: * ?member_description. sl@0: * @param ?arg1 ?description sl@0: * @return ?description sl@0: */ sl@0: virtual void UnregisterObserver( MAudioOutputObserver& aObserver ) = 0; sl@0: sl@0: }; sl@0: sl@0: #endif // CAUDIOOUTPUT_H sl@0: sl@0: // End of File