sl@0: // Copyright (c) 1997-2009 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:
sl@0: // Mda\Common\Audio.h
sl@0: // 
sl@0: //
sl@0: 
sl@0: #ifndef __MDA_COMMON_AUDIO_H__
sl@0: #define __MDA_COMMON_AUDIO_H__
sl@0: 
sl@0: // Standard EPOC32 includes
sl@0: #include <e32base.h>
sl@0: 
sl@0: // Public Media Server includes
sl@0: #include <mda/common/base.h>
sl@0: #include <mda/common/resource.h>
sl@0: //#include <mda/common/controller.h>
sl@0: #include <mda/common/audio.hrh>
sl@0: #include <mda/common/audiostream.hrh>
sl@0: 
sl@0: MDA_UID(KUidMdaPrioritySettings)
sl@0: MDA_UID(KUidMdaMediaTypeAudio) // Audio data type Uid
sl@0: MDA_UID(KUidMdaLocalSoundDevice) // Local audio stream location
sl@0: MDA_UID(KUidMdaClipLocationMaxWriteLength)
sl@0: MDA_UID(KUidMdaTelephonySoundDevice) // Telephony audio stream location
sl@0: MDA_UID(KUidMdaClientPCMSoundDevice) // Client PCM audio stream location
sl@0: MDA_UID(KUidMdaToneGeneratorDevice) // Tone Generator Device
sl@0: MDA_UID(KUidMdaClipFormatWav) // Wav Audio Clip Format Uid
sl@0: 
sl@0: MDA_UID(KUidMdaAudioOutputStreamDevice) // Output Stream Device
sl@0: 
sl@0: MDA_UID(KUidMdaWavCodec) // Wav Codec Type Uid
sl@0: MDA_UID(KUidMdaWavPcmCodec) // Wav Codec Uids
sl@0: MDA_UID(KUidMdaWavAlawCodec) 
sl@0: MDA_UID(KUidMdaWavMulawCodec) 
sl@0: MDA_UID(KUidMdaWavImaAdpcmCodec) 
sl@0: 
sl@0: 
sl@0: MDA_UID(KUidMdaClipFormatAu) // Sun/Next "Au" Audio Clip format Uid
sl@0: MDA_UID(KUidMdaAuCodec) // Sun/Next "Au" Audio Codec Type Uid
sl@0: MDA_UID(KUidMdaAuMulawCodec) // Sun/Next "Au" Audio Codec Uids
sl@0: MDA_UID(KUidMdaAu8PcmCodec)  
sl@0: MDA_UID(KUidMdaAu16PcmCodec) 
sl@0: MDA_UID(KUidMdaAuAlawCodec)
sl@0: 
sl@0: MDA_UID(KUidMdaClipFormatRawAudio) // Raw Audio Clip format Uid
sl@0: MDA_UID(KUidMdaRawAudioCodec) // Raw Audio Codec Type Uid
sl@0: MDA_UID(KUidMdaRawAudioMulawCodec)
sl@0: MDA_UID(KUidMdaRawAudioAlawCodec) 
sl@0: MDA_UID(KUidMdaRawAudioS8PcmCodec) // Signed 8bit
sl@0: MDA_UID(KUidMdaRawAudioU8PcmCodec) // Unsigned 8bit
sl@0: MDA_UID(KUidMdaRawAudioSL16PcmCodec) // Signed little-endian 16bit
sl@0: MDA_UID(KUidMdaRawAudioSB16PcmCodec) // Signed big-endian 16bit
sl@0: MDA_UID(KUidMdaRawAudioUL16PcmCodec) // Unsigned little-endian 16bit
sl@0: MDA_UID(KUidMdaRawAudioUB16PcmCodec) // Unsigned big-endian 16bit
sl@0: 
sl@0: MDA_UID(KUidMdaTelephonyStateQuery) // Telephony state query 
sl@0: MDA_UID(KUidMdaAudioStreamVolumeRamp) // Audio stream volume ramp 
sl@0: 
sl@0: MDA_UID(KUidMdaDataTypeSettings)
sl@0: 
sl@0: MDA_UID(KUidMdaClipFormatRawAmr) // AMR Audio Clip Format Uid
sl@0: MDA_UID(KUidMdaRawAmrCodec) // AMR Codec Type Uid
sl@0: 
sl@0: /**
sl@0: @internalComponent
sl@0: */
sl@0: const TInt KMdaClipLocationMaxWriteLengthNone = -1;
sl@0: 
sl@0: // Package classes
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @released
sl@0: 
sl@0: Generic Audio Parameters
sl@0: */
sl@0: class TMdaPrioritySettings : public TMdaPackage
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaPrioritySettings();
sl@0: public:
sl@0: 	/**
sl@0: 	Absolute priority of a client of the MMF Server.
sl@0: 
sl@0: 	Used by the policy server to determine which client should gain access to the sound device.
sl@0: 
sl@0: 	The priority which should be an integer in the range -100 to +100.
sl@0: 	*/
sl@0: 	TInt iPriority;
sl@0: 	/**
sl@0:     The priority preference that expresses the nature of the priority that can be none, 
sl@0: 	time (or speed), quality or both time and quality.
sl@0: 	
sl@0: 	 Values are known to the adaptation and will be iterpreted accordingly.
sl@0: 
sl@0: 	*/
sl@0: 	TInt iPref;
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: Datatype parameters.
sl@0: 
sl@0: Base class for specific data type config packages
sl@0: */
sl@0: class TMdaDatatypeSettings : public TMdaPackage
sl@0: 	{
sl@0: protected:
sl@0: 	inline TMdaDatatypeSettings(TUid aUid,TInt aDerivedSize);
sl@0: 	};
sl@0: 
sl@0: inline TMdaDatatypeSettings::TMdaDatatypeSettings(TUid aUid,TInt aDerivedSize) :
sl@0: TMdaPackage(KUidMdaDataTypeSettings,aUid,aDerivedSize) {}
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @released
sl@0: 
sl@0: The settings for audio data played through the media server.
sl@0: 
sl@0: These can be the settings for an audio clip, for streamed audio data, or can be the capabilities
sl@0: of the sound device. The sample rate and number of channels apply to the audio sample, the maximum
sl@0: volume applies to the output device and the volume setting can apply to either, depending on the
sl@0: device. An object of this class is a public data member of class CMdaAudioType and also can be
sl@0: passed to CMdaAudioOutputStream::Open().
sl@0: 
sl@0: 
sl@0: @see CMdaAudioType
sl@0: @see CMdaAudioOutputStream::Open()
sl@0: */
sl@0: class TMdaAudioDataSettings : public TMdaDatatypeSettings
sl@0: 	{
sl@0: public:
sl@0: 	/**
sl@0: 	Audio capabilities, which include the sample rate and number of channels. The iCaps
sl@0: 	member is a combination of these flags.
sl@0: 	*/
sl@0: 	enum TAudioCaps
sl@0: 		{
sl@0: 
sl@0: 		// Sampled audio capabilities
sl@0: 
sl@0: 		/** If specified, the sample rate iSampleRate is the only one supported. If not
sl@0: 		specified, multiple sample rates may be supported.
sl@0: 		*/
sl@0: 		ESampleRateFixed =		0x00000001,
sl@0: 
sl@0: 		/** If specified, all sample rates between the minimum and the maximum are supported.
sl@0: 		*/
sl@0: 		ESampleRateAnyInRange = 0x00000002,
sl@0: 
sl@0: 		/** The audio sample supports a sample rate of 8.000KHz.
sl@0: 		*/
sl@0: 		ESampleRate8000Hz =		0x00000010,
sl@0: 
sl@0: 		/** The audio sample supports a sample rate of 11.025KHz.
sl@0: 		*/
sl@0: 		ESampleRate11025Hz =	0x00000040,
sl@0: 
sl@0: 		/** The audio sample supports a sample rate of 12.000KHz.
sl@0: 		*/
sl@0: 		ESampleRate12000Hz =	0x00000080,
sl@0: 
sl@0: 		/** The audio sample supports a sample rate of 16.000KHz.
sl@0: 		*/
sl@0: 		ESampleRate16000Hz =	0x00000100,
sl@0: 
sl@0: 		/** The audio sample supports a sample rate of 22.000KHz.
sl@0: 		*/
sl@0: 		ESampleRate22050Hz =	0x00000400,
sl@0: 
sl@0: 		/** The audio sample supports a sample rate of 24.000KHz.
sl@0: 		*/
sl@0: 		ESampleRate24000Hz =	0x00000800,
sl@0: 
sl@0: 		/** The audio sample supports a sample rate of 32.000KHz.
sl@0: 		*/
sl@0: 		ESampleRate32000Hz =	0x00001000,
sl@0: 
sl@0: 		/** The audio sample supports a sample rate of 44.100KHz.
sl@0: 		*/
sl@0: 		ESampleRate44100Hz =	0x00004000,
sl@0: 
sl@0: 		/** The audio sample supports a sample rate of 48.000KHz.
sl@0: 		*/
sl@0: 		ESampleRate48000Hz =	0x00010000,
sl@0: 
sl@0: 		/** The audio sample supports a sample rate of 96.000KHz.
sl@0: 		*/
sl@0: 		ESampleRate96000Hz =	0x00020000,
sl@0: 
sl@0: 		/** The audio sample supports a sample rate of 64.000KHz.
sl@0: 		*/
sl@0: 		ESampleRate64000Hz =	0x00040000,
sl@0: 
sl@0: 		// Channel related - applies to sampled
sl@0: 
sl@0: 		/** The audio sample supports mono.
sl@0: 		*/
sl@0: 		EChannelsMono =			0x02000000,
sl@0: 
sl@0: 		/** The audio sample supports stereo.
sl@0: 		*/
sl@0: 		EChannelsStereo =		0x04000000,
sl@0: 
sl@0: 		/** Routing related
sl@0: 		*/
sl@0: 		ERoutingControl =		0x08000000,
sl@0: 
sl@0: 		/** True if data flow is synchronised with real time (e.g. stream)
sl@0: 		*/
sl@0: 		ERealTime =				0x10000000
sl@0: 		};
sl@0: 
sl@0: 	/** Mutually exclusive flags that specify whether audio data is sent to the local device (speakers)
sl@0: 	or the network (phone line) or both. The iFlags member uses these flags.
sl@0: 	*/
sl@0: 	enum TAudioFlags
sl@0: 		{
sl@0: 
sl@0: 		/** The sound data is only sent to the network.
sl@0: 		*/
sl@0: 		ENoLocalRouting =		0x00000001,
sl@0: 
sl@0: 		/** The sound data is only sent to the local device.
sl@0: 		*/
sl@0: 		ENoNetworkRouting =		0x00000002
sl@0: 		};
sl@0: public:
sl@0: 	inline TMdaAudioDataSettings();
sl@0: 	inline void Query(); // Call this when you just want to have caps and maxvolume filled
sl@0: public:
sl@0: 	// Fixed values - must be queried
sl@0: 
sl@0: 	/**
sl@0: 	Specifies the capabilities of the audio sample. Its value is a combination of the flags
sl@0: 	contained in the TAudioCaps enum.
sl@0: 	*/
sl@0: 	TInt iCaps;
sl@0: 
sl@0: 	/**
sl@0: 	The maximum volume of the audio device.
sl@0: 	*/
sl@0: 	TInt iMaxVolume; // One means fixed volume (zero not valid)
sl@0: 
sl@0: 	// Variables
sl@0: 	/**
sl@0: 	The sample rate of the audio sample.
sl@0: 	*/
sl@0: 	TInt iSampleRate;
sl@0: 
sl@0: 	/**
sl@0: 	The number of channels for the audio sample.
sl@0: 	*/
sl@0: 	TInt iChannels;
sl@0: 
sl@0: 	/**
sl@0: 	The volume. Whether this applies to the audio device or to the audio sample is device-dependent.
sl@0: 	*/
sl@0: 	TInt iVolume;
sl@0: 
sl@0: 	/**
sl@0: 	The flags. Its value can be either of the flags contained in the TAudioFlags enum.
sl@0: 	*/
sl@0: 	TInt iFlags;
sl@0: 	};
sl@0: 
sl@0: // Wav Config Packages
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The format for .wav audio clips.
sl@0: 
sl@0: An object of this type can be passed to CMdaAudioRecorderUtility::OpenL() or CMdaAudioConvertUtility::OpenL().
sl@0: */
sl@0: class TMdaWavClipFormat : public TMdaClipFormat
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaWavClipFormat();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The base class for codecs used by .wav audio files.
sl@0: 
sl@0: An object derived from this class can be used to specify the compression algorithm to use when recording or 
sl@0: converting a .wav audio clip. When playing back a .wav clip, the codec is not specified: the media server
sl@0: identifies the correct one to use.
sl@0: */
sl@0: class TMdaWavCodec : public TMdaPackage
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaWavCodec(); // Unknown type
sl@0: protected:
sl@0: 	inline TMdaWavCodec(TUid aUid,TInt aDerivedSize);
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for uncompressed 8 or 16 bit PCM .wav format sound data.
sl@0: 
sl@0: This codec copies the data unchanged from source to destination.
sl@0: */
sl@0: class TMdaPcmWavCodec : public TMdaWavCodec
sl@0: 	{
sl@0: public:
sl@0: 
sl@0: 	/**
sl@0: 	Indicates whether the sound is sampled using 8 or 16 bits.
sl@0: 	*/
sl@0: 	enum TBits
sl@0: 		{
sl@0:    		/** The sound is sampled using 8 bits.
sl@0: 		*/
sl@0: 		E8BitPcm=0,
sl@0: 
sl@0:    		/** The sound is sampled using 16 bits.
sl@0: 		*/
sl@0: 		E16BitPcm=1
sl@0: 		};
sl@0: public:
sl@0: 	inline TMdaPcmWavCodec(TBits aBits=E16BitPcm);
sl@0: public:
sl@0: 	/**
sl@0: 	Indicates whether the sound is sampled using 8 or 16 bits.
sl@0: 	*/
sl@0: 	TBits iBits;
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for .wav audio data compressed using the A-Law algorithm.
sl@0: */
sl@0: class TMdaAlawWavCodec : public TMdaWavCodec
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaAlawWavCodec();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for .wav audio data compressed using the mu-law algorithm.
sl@0: */
sl@0: class TMdaMulawWavCodec : public TMdaWavCodec
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaMulawWavCodec();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for .wav audio data compressed using the IMA-ADPCM algorithm.
sl@0: */
sl@0: class TMdaImaAdpcmWavCodec : public TMdaWavCodec
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaImaAdpcmWavCodec();
sl@0: 	};
sl@0: 
sl@0: 
sl@0: // Sun/NeXT "Au" Config Packages
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The format for .au audio clips.
sl@0: 
sl@0: An object of this type can be passed to CMdaAudioRecorderUtility::OpenL() or CMdaAudioConvertUtility::OpenL().
sl@0: */
sl@0: class TMdaAuClipFormat : public TMdaClipFormat
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaAuClipFormat();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The base class for codecs used by .au audio files.
sl@0: 
sl@0: An object derived from this class can be used to specify the compression algorithm to use when recording
sl@0: or converting a .au audio clip (whose format is TMdaAuClipFormat). When playing back a .au clip, the
sl@0: codec is not specified: the media server identifies the correct one to use.
sl@0: */
sl@0: class TMdaAuCodec : public TMdaPackage
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaAuCodec(); // Unknown type
sl@0: protected:
sl@0: 	inline TMdaAuCodec(TUid aUid,TInt aDerivedSize);
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for 8 bit PCM .au audio data.
sl@0: */
sl@0: class TMdaPcm8BitAuCodec : public TMdaAuCodec
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaPcm8BitAuCodec();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for 16 bit PCM .au audio data.
sl@0: */
sl@0: class TMdaPcm16BitAuCodec : public TMdaAuCodec
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaPcm16BitAuCodec();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for .au audio data compressed using the A-Law algorithm.
sl@0: */
sl@0: class TMdaAlawAuCodec : public TMdaAuCodec
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaAlawAuCodec();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for .au audio data compressed using the mu-law algorithm.
sl@0: */
sl@0: class TMdaMulawAuCodec : public TMdaAuCodec
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaMulawAuCodec();
sl@0: 	};
sl@0: 
sl@0: // Raw Audio Config Packages
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: Audio format for raw audio clips.
sl@0: 
sl@0: An object of this type can be passed to CMdaAudioRecorderUtility::OpenL() or CMdaAudioConvertUtility::OpenL().
sl@0: */
sl@0: class TMdaRawAudioClipFormat : public TMdaClipFormat
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaRawAudioClipFormat();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The base class for raw audio codecs.
sl@0: 
sl@0: An object derived from this class can be used to specify the algorithm to use when opening a
sl@0: raw audio clip (whose format is TMdaRawAudioClipFormat).
sl@0: 
sl@0: Raw audio clips are have no header information, so that when opening one, the user must supply
sl@0: a codec and a package containing the settings appropriate for the data in the clip.
sl@0: 
sl@0: @see TMdaRawAudioClipFormat
sl@0: @see CMdaAudioConvertUtility::OpenL()
sl@0: @see CMdaAudioRecorderUtility::OpenL()
sl@0: */
sl@0: class TMdaRawAudioCodec : public TMdaPackage
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaRawAudioCodec(); // Unknown type
sl@0: protected:
sl@0: 	inline TMdaRawAudioCodec(TUid aUid,TInt aDerivedSize);
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for raw audio data compressed using the mu-law algorithm.
sl@0: */
sl@0: class TMdaMulawRawAudioCodec : public TMdaRawAudioCodec
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaMulawRawAudioCodec();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for raw audio data compressed using the A-Law algorithm.
sl@0: */
sl@0: class TMdaAlawRawAudioCodec : public TMdaRawAudioCodec
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaAlawRawAudioCodec();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for signed 8 bit PCM raw audio data.
sl@0: */
sl@0: class TMdaS8PcmRawAudioCodec : public TMdaRawAudioCodec
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaS8PcmRawAudioCodec();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for unsigned 8 bit PCM raw audio data.
sl@0: */
sl@0: class TMdaU8PcmRawAudioCodec : public TMdaRawAudioCodec
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaU8PcmRawAudioCodec();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for signed little-endian 16 bit PCM raw audio data.
sl@0: */
sl@0: class TMdaSL16RawAudioCodec : public TMdaRawAudioCodec
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaSL16RawAudioCodec();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for signed big-endian 16 bit PCM raw audio data.
sl@0: */
sl@0: class TMdaSB16RawAudioCodec : public TMdaRawAudioCodec
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaSB16RawAudioCodec();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for unsigned little-endian 16 bit PCM raw audio data.
sl@0: */
sl@0: class TMdaUL16RawAudioCodec : public TMdaRawAudioCodec
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaUL16RawAudioCodec();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: The codec for unsigned big-endian 16 bit PCM raw audio data.
sl@0: */
sl@0: class TMdaUB16RawAudioCodec : public TMdaRawAudioCodec
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaUB16RawAudioCodec();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: Local Audio Stream Device
sl@0: Control local microphone/speaker audio stream
sl@0: May not function during telephone call
sl@0: */
sl@0: class TMdaLocalAudioDevice : public TMdaStreamDevice
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaLocalAudioDevice();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: Telephony Audio Stream Device
sl@0: Control telephony microphone+downlink/speaker+uplink audio stream
sl@0: Only functional during telephone call
sl@0: */
sl@0: class TMdaTelephonyAudioDevice : public TMdaStreamDevice
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaTelephonyAudioDevice();
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: This class is used in a ResourceConfig on a telephony port
sl@0: to determine the current state of telephony
sl@0: */
sl@0: class TMdaTelephonyStateQuery : public TMdaPackage
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaTelephonyStateQuery();
sl@0: public:
sl@0: 	TBool iIsTelephonyActive;
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: Client PCM Audio Stream Device
sl@0: Used to configure a 16bit PCM audio stream to/from client
sl@0: */
sl@0: class TMdaClientPCMAudioDevice : public TMdaStreamDevice
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaClientPCMAudioDevice();
sl@0: 	};
sl@0: 
sl@0: 
sl@0: /**
sl@0: @publishedAll
sl@0: @deprecated
sl@0: 
sl@0: Volume ramping control on audio stream devices
sl@0: */
sl@0: class TMdaAudioStreamVolumeRamp : public TMdaPackage
sl@0: 	{
sl@0: public:
sl@0: 	inline TMdaAudioStreamVolumeRamp();
sl@0: public:
sl@0: 	TTimeIntervalMicroSeconds iDuration;
sl@0: 	};
sl@0: 
sl@0: 
sl@0: // Inlines
sl@0: 
sl@0: /** 
sl@0: Default constructor. The member data is not initialised.
sl@0: */
sl@0: inline TMdaAudioDataSettings::TMdaAudioDataSettings() :
sl@0: TMdaDatatypeSettings(KUidMdaMediaTypeAudio,sizeof(TMdaAudioDataSettings)) 
sl@0: 	{
sl@0: 	Mem::FillZ(&iSampleRate,sizeof(TInt)*4);
sl@0: 	}
sl@0: 
sl@0: /**
sl@0: Sets the number of channels, the sample rate and the volume to KMdaUnknown (–1). Call this function when you 
sl@0: only want to have the iCaps and iMaxVolume members filled.
sl@0: */
sl@0: inline void TMdaAudioDataSettings::Query()
sl@0: 	{
sl@0: 	iChannels = KMdaUnknown;
sl@0: 	iSampleRate = KMdaUnknown;
sl@0: 	iVolume = KMdaUnknown;
sl@0: 	}// Call this when you just want to have caps and maxvolume filled
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the object so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaWavClipFormat::TMdaWavClipFormat() :
sl@0: TMdaClipFormat(KUidMdaClipFormatWav,sizeof(TMdaWavClipFormat)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the package so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaWavCodec::TMdaWavCodec() :
sl@0: TMdaPackage(KUidMdaWavCodec,KNullUid,sizeof(TMdaWavCodec)) {}
sl@0: 
sl@0: inline TMdaWavCodec::TMdaWavCodec(TUid aUid, TInt aDerivedSize) :
sl@0: TMdaPackage(KUidMdaWavCodec,aUid,aDerivedSize) {}
sl@0: 
sl@0: /**
sl@0: Constructs the package with a flag that indicates whether the sound is sampled using 8 or 16 bits.
sl@0: 
sl@0: @param  aBits
sl@0:         Indicates whether the sound is sampled using 8 or 16 bits.
sl@0: */
sl@0: inline TMdaPcmWavCodec::TMdaPcmWavCodec(TBits aBits) :
sl@0: TMdaWavCodec(KUidMdaWavPcmCodec,sizeof(TMdaPcmWavCodec)), iBits(aBits) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the package so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaAlawWavCodec::TMdaAlawWavCodec() :
sl@0: TMdaWavCodec(KUidMdaWavAlawCodec,sizeof(TMdaAlawWavCodec)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the object so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaMulawWavCodec::TMdaMulawWavCodec() :
sl@0: TMdaWavCodec(KUidMdaWavMulawCodec,sizeof(TMdaMulawWavCodec)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the package so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaImaAdpcmWavCodec::TMdaImaAdpcmWavCodec() :
sl@0: TMdaWavCodec(KUidMdaWavImaAdpcmCodec,sizeof(TMdaImaAdpcmWavCodec)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the object so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaAuClipFormat::TMdaAuClipFormat() :
sl@0: TMdaClipFormat(KUidMdaClipFormatAu,sizeof(TMdaAuClipFormat)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the package so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaAuCodec::TMdaAuCodec() :
sl@0: TMdaPackage(KUidMdaAuCodec,KNullUid,sizeof(TMdaAuCodec)) {}
sl@0: 
sl@0: inline TMdaAuCodec::TMdaAuCodec(TUid aUid,TInt aDerivedSize) :
sl@0: TMdaPackage(KUidMdaAuCodec,aUid,aDerivedSize) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the package so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaPcm16BitAuCodec::TMdaPcm16BitAuCodec() :
sl@0: TMdaAuCodec(KUidMdaAu16PcmCodec,sizeof(TMdaPcm16BitAuCodec)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the package so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaPcm8BitAuCodec::TMdaPcm8BitAuCodec() :
sl@0: TMdaAuCodec(KUidMdaAu8PcmCodec,sizeof(TMdaPcm8BitAuCodec)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the package so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaAlawAuCodec::TMdaAlawAuCodec() :
sl@0: TMdaAuCodec(KUidMdaAuAlawCodec,sizeof(TMdaAlawAuCodec)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the object so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaMulawAuCodec::TMdaMulawAuCodec() :
sl@0: TMdaAuCodec(KUidMdaAuMulawCodec,sizeof(TMdaMulawAuCodec)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the object so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaRawAudioClipFormat::TMdaRawAudioClipFormat() :
sl@0: TMdaClipFormat(KUidMdaClipFormatRawAudio,sizeof(TMdaRawAudioClipFormat)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the package so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaRawAudioCodec::TMdaRawAudioCodec() :
sl@0: TMdaPackage(KUidMdaRawAudioCodec,KNullUid,sizeof(TMdaRawAudioCodec)) {}
sl@0: 
sl@0: inline TMdaRawAudioCodec::TMdaRawAudioCodec(TUid aUid,TInt aDerivedSize) :
sl@0: TMdaPackage(KUidMdaRawAudioCodec,aUid,aDerivedSize) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the object so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaMulawRawAudioCodec::TMdaMulawRawAudioCodec() :
sl@0: TMdaRawAudioCodec(KUidMdaRawAudioMulawCodec,sizeof(TMdaMulawRawAudioCodec)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the package so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaAlawRawAudioCodec::TMdaAlawRawAudioCodec() :
sl@0: TMdaRawAudioCodec(KUidMdaRawAudioAlawCodec,sizeof(TMdaAlawRawAudioCodec)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the package so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaS8PcmRawAudioCodec::TMdaS8PcmRawAudioCodec() :
sl@0: TMdaRawAudioCodec(KUidMdaRawAudioS8PcmCodec,sizeof(TMdaS8PcmRawAudioCodec)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the package so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaU8PcmRawAudioCodec::TMdaU8PcmRawAudioCodec() :
sl@0: TMdaRawAudioCodec(KUidMdaRawAudioU8PcmCodec,sizeof(TMdaU8PcmRawAudioCodec)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the package so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaSL16RawAudioCodec::TMdaSL16RawAudioCodec() :
sl@0: TMdaRawAudioCodec(KUidMdaRawAudioSL16PcmCodec,sizeof(TMdaSL16RawAudioCodec)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the package so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaSB16RawAudioCodec::TMdaSB16RawAudioCodec() :
sl@0: TMdaRawAudioCodec(KUidMdaRawAudioSB16PcmCodec,sizeof(TMdaSB16RawAudioCodec)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the package so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaUL16RawAudioCodec::TMdaUL16RawAudioCodec() :
sl@0: TMdaRawAudioCodec(KUidMdaRawAudioUL16PcmCodec,sizeof(TMdaUL16RawAudioCodec)) {}
sl@0: 
sl@0: /**
sl@0: The default constructor initialises the package so that it can be identified by the media server.
sl@0: */
sl@0: inline TMdaUB16RawAudioCodec::TMdaUB16RawAudioCodec() :
sl@0: TMdaRawAudioCodec(KUidMdaRawAudioUB16PcmCodec,sizeof(TMdaUB16RawAudioCodec)) {}
sl@0: 
sl@0: inline TMdaLocalAudioDevice::TMdaLocalAudioDevice() : 
sl@0: TMdaStreamDevice(KUidMdaLocalSoundDevice,sizeof(TMdaLocalAudioDevice)) {}
sl@0: 
sl@0: inline TMdaTelephonyAudioDevice::TMdaTelephonyAudioDevice() : 
sl@0: TMdaStreamDevice(KUidMdaTelephonySoundDevice,sizeof(TMdaTelephonyAudioDevice)) {}
sl@0: 
sl@0: inline TMdaClientPCMAudioDevice::TMdaClientPCMAudioDevice() : 
sl@0: TMdaStreamDevice(KUidMdaClientPCMSoundDevice,sizeof(TMdaClientPCMAudioDevice)) {}
sl@0: 
sl@0: inline TMdaAudioStreamVolumeRamp::TMdaAudioStreamVolumeRamp() :
sl@0: TMdaPackage(KUidMdaAudioStreamVolumeRamp,KUidMdaAudioStreamVolumeRamp,sizeof(TMdaAudioStreamVolumeRamp)) {}
sl@0: 
sl@0: inline TMdaTelephonyStateQuery::TMdaTelephonyStateQuery() :
sl@0: TMdaPackage(KUidMdaTelephonySoundDevice,KUidMdaTelephonyStateQuery,sizeof(TMdaTelephonyStateQuery)) {}
sl@0: 
sl@0: inline TMdaPrioritySettings::TMdaPrioritySettings() :
sl@0: TMdaPackage(KUidMdaPrioritySettings,KUidMdaPrioritySettings,sizeof(TMdaPrioritySettings)) {}
sl@0: 
sl@0: #endif