os/mm/mm_plat/audio_routing_api/inc/AudioOutput.h
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
/*
sl@0
     2
* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
sl@0
     3
* All rights reserved.
sl@0
     4
* This component and the accompanying materials are made available
sl@0
     5
* under the terms of "Eclipse Public License v1.0"
sl@0
     6
* which accompanies this distribution, and is available
sl@0
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     8
*
sl@0
     9
* Initial Contributors:
sl@0
    10
* Nokia Corporation - initial contribution.
sl@0
    11
*
sl@0
    12
* Contributors:
sl@0
    13
*
sl@0
    14
* Description:  This is the definition of the CAudioOutput class.
sl@0
    15
*
sl@0
    16
*/
sl@0
    17
sl@0
    18
sl@0
    19
sl@0
    20
#ifndef AUDIOOUTPUT_H
sl@0
    21
#define AUDIOOUTPUT_H
sl@0
    22
sl@0
    23
//  INCLUDES
sl@0
    24
#include <e32base.h>
sl@0
    25
#include <mdaaudiotoneplayer.h>
sl@0
    26
#include <mdaaudiooutputstream.h>
sl@0
    27
#include <midiclientutility.h>
sl@0
    28
#include <MCustomInterface.h>
sl@0
    29
sl@0
    30
// FORWARD DECLARATIONS
sl@0
    31
class MAudioOutputObserver;
sl@0
    32
class MCustomCommand;
sl@0
    33
class CMdaAudioPlayerUtility;
sl@0
    34
class CMdaAudioRecorderUtility;
sl@0
    35
class CMMFDevSound;
sl@0
    36
class CDrmPlayerUtility;
sl@0
    37
class CVideoPlayerUtility;
sl@0
    38
// CLASS DECLARATION
sl@0
    39
sl@0
    40
/**
sl@0
    41
*  ?one_line_short_description.
sl@0
    42
*  ?other_description_lines
sl@0
    43
*/
sl@0
    44
class CAudioOutput : public CBase
sl@0
    45
	{
sl@0
    46
	public:  // DATA TYPES
sl@0
    47
		enum TAudioOutputPreference
sl@0
    48
			{
sl@0
    49
			ENoPreference,
sl@0
    50
			EAll,
sl@0
    51
			ENoOutput,
sl@0
    52
			EPrivate,
sl@0
    53
			EPublic
sl@0
    54
			};
sl@0
    55
sl@0
    56
	public:  // Constructors and destructor
sl@0
    57
sl@0
    58
		/**
sl@0
    59
		* Two-phased constructor.
sl@0
    60
		*/
sl@0
    61
		IMPORT_C static CAudioOutput* NewL(CMdaAudioPlayerUtility& aUtility);
sl@0
    62
		/**
sl@0
    63
        * Factory function for creating audio output object.
sl@0
    64
        * @since 3.0
sl@0
    65
        * @param CMdaAudioRecorderUtility& - a reference to CMdaAudioRecorderUtility object
sl@0
    66
        * @return pointer to CAudioOutput object
sl@0
    67
        */		
sl@0
    68
		IMPORT_C static CAudioOutput* CAudioOutput::NewL(CMdaAudioRecorderUtility& aUtility, TBool aRecordStream);
sl@0
    69
		/**
sl@0
    70
        * Factory function for creating audio output object.
sl@0
    71
        * @since 3.0
sl@0
    72
        * @param CMdaAudioOutputStream& - a reference to CMdaAudioOutputStream object
sl@0
    73
        * @return pointer to CAudioOutput object
sl@0
    74
        */		
sl@0
    75
		IMPORT_C static CAudioOutput* CAudioOutput::NewL(CMdaAudioOutputStream& aUtility);
sl@0
    76
		/**
sl@0
    77
        * Factory function for creating audio output object.
sl@0
    78
        * @since 3.0
sl@0
    79
        * @param CMdaAudioToneUtility& - a reference to CMdaAudioToneUtility object
sl@0
    80
        * @return pointer to CAudioOutput object
sl@0
    81
        */		
sl@0
    82
		IMPORT_C static CAudioOutput* CAudioOutput::NewL(CMdaAudioToneUtility& aUtility);
sl@0
    83
		/**
sl@0
    84
        * Factory function for creating audio output object.
sl@0
    85
        * @since 3.0
sl@0
    86
        * @param CMMFDevSound& - a reference to CMMFDevSound object
sl@0
    87
        * @return pointer to CAudioOutput object
sl@0
    88
        */		
sl@0
    89
		IMPORT_C static CAudioOutput* CAudioOutput::NewL(CMMFDevSound& aDevSound);
sl@0
    90
		/**
sl@0
    91
        * Factory function for creating audio output object.
sl@0
    92
        * @since 3.0
sl@0
    93
        * @param MCustomInterface& - a reference to MCustomInterface object
sl@0
    94
        * @return pointer to CAudioOutput object
sl@0
    95
        */		
sl@0
    96
		IMPORT_C static CAudioOutput* CAudioOutput::NewL(MCustomInterface& aUtility);
sl@0
    97
		/**
sl@0
    98
        * Factory function for creating audio output object.
sl@0
    99
        * @since 3.0
sl@0
   100
        * @param MCustomCommand& - a reference to MCustomCommand object
sl@0
   101
        * @return pointer to CAudioOutput object
sl@0
   102
        */		
sl@0
   103
		IMPORT_C static CAudioOutput* CAudioOutput::NewL(MCustomCommand& aUtility);
sl@0
   104
		/**
sl@0
   105
        * Factory function for creating audio output object.
sl@0
   106
        * @since 3.0
sl@0
   107
        * @param CMidiClientUtility& - a reference to CMidiClientUtility object
sl@0
   108
        * @return pointer to CAudioOutput object
sl@0
   109
        */		
sl@0
   110
		IMPORT_C static CAudioOutput* CAudioOutput::NewL(CMidiClientUtility& aUtility);
sl@0
   111
		/**
sl@0
   112
        * Factory function for creating audio output object.
sl@0
   113
        * @since 3.0
sl@0
   114
        * @param CDrmPlayerUtility& - a reference to CDrmPlayerUtility object
sl@0
   115
        * @return pointer to CAudioOutput object
sl@0
   116
        */		
sl@0
   117
		IMPORT_C static CAudioOutput* /*CAudioOutput::*/NewL(CDrmPlayerUtility& aUtility);
sl@0
   118
		
sl@0
   119
		/**
sl@0
   120
        * Factory function for creating audio output object.
sl@0
   121
        * @since 3.2
sl@0
   122
        * @param CVideoPlayerUtility& - a reference to CVideoPlayerUtility object
sl@0
   123
        * @return pointer to CAudioOutput object
sl@0
   124
        */		
sl@0
   125
		IMPORT_C static CAudioOutput* /*CAudioOutput::*/NewL(CVideoPlayerUtility& aUtility);
sl@0
   126
sl@0
   127
		/**
sl@0
   128
		* ?member_description.
sl@0
   129
		* @param ?arg1 ?description
sl@0
   130
		* @return ?description
sl@0
   131
		*/
sl@0
   132
		virtual TAudioOutputPreference AudioOutput() = 0;
sl@0
   133
sl@0
   134
		/**
sl@0
   135
		* ?member_description.
sl@0
   136
		* @param ?arg1 ?description
sl@0
   137
		* @return ?description
sl@0
   138
		*/
sl@0
   139
		virtual TAudioOutputPreference DefaultAudioOutput() = 0;
sl@0
   140
sl@0
   141
		/**
sl@0
   142
		* ?member_description.
sl@0
   143
		* @param ?arg1 ?description
sl@0
   144
		* @return ?description
sl@0
   145
		*/
sl@0
   146
		virtual void RegisterObserverL( MAudioOutputObserver& aObserver ) = 0;
sl@0
   147
sl@0
   148
		/**
sl@0
   149
		* ?member_description.
sl@0
   150
		* @param ?arg1 ?description
sl@0
   151
		* @return ?description
sl@0
   152
		*/
sl@0
   153
		virtual TBool SecureOutput() = 0;
sl@0
   154
sl@0
   155
		/**
sl@0
   156
		* ?member_description.
sl@0
   157
		* @param ?arg1 ?description
sl@0
   158
		* @return ?description
sl@0
   159
		*/
sl@0
   160
		virtual void SetAudioOutputL( TAudioOutputPreference aAudioOutput = ENoPreference ) = 0;
sl@0
   161
sl@0
   162
		/**
sl@0
   163
		* ?member_description.
sl@0
   164
		* @param ?arg1 ?description
sl@0
   165
		* @return ?description
sl@0
   166
		*/
sl@0
   167
		virtual void SetSecureOutputL( TBool aSecure = EFalse ) = 0;
sl@0
   168
sl@0
   169
		/**
sl@0
   170
		* ?member_description.
sl@0
   171
		* @param ?arg1 ?description
sl@0
   172
		* @return ?description
sl@0
   173
		*/
sl@0
   174
		virtual void UnregisterObserver( MAudioOutputObserver& aObserver ) = 0;
sl@0
   175
sl@0
   176
	};
sl@0
   177
sl@0
   178
#endif      // CAUDIOOUTPUT_H
sl@0
   179
sl@0
   180
// End of File