epoc32/include/mda/common/audio.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100
branchSymbian2
changeset 3 e1b950c65cb4
parent 0 061f57f2323e
child 4 837f303aceeb
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
williamr@2
     1
// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@2
     4
// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     5
// which accompanies this distribution, and is available
williamr@2
     6
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@2
    14
// Mda\Common\Audio.h
williamr@2
    15
// 
williamr@2
    16
//
williamr@2
    17
williamr@2
    18
#ifndef __MDA_COMMON_AUDIO_H__
williamr@2
    19
#define __MDA_COMMON_AUDIO_H__
williamr@2
    20
williamr@2
    21
// Standard EPOC32 includes
williamr@2
    22
#include <e32base.h>
williamr@2
    23
williamr@2
    24
// Public Media Server includes
williamr@2
    25
#include <mda/common/base.h>
williamr@2
    26
#include <mda/common/resource.h>
williamr@2
    27
//#include <mda/common/controller.h>
williamr@2
    28
#include <mda/common/audio.hrh>
williamr@2
    29
#include <mda/common/audiostream.hrh>
williamr@2
    30
williamr@2
    31
MDA_UID(KUidMdaPrioritySettings)
williamr@2
    32
MDA_UID(KUidMdaMediaTypeAudio) // Audio data type Uid
williamr@2
    33
MDA_UID(KUidMdaLocalSoundDevice) // Local audio stream location
williamr@2
    34
MDA_UID(KUidMdaClipLocationMaxWriteLength)
williamr@2
    35
MDA_UID(KUidMdaTelephonySoundDevice) // Telephony audio stream location
williamr@2
    36
MDA_UID(KUidMdaClientPCMSoundDevice) // Client PCM audio stream location
williamr@2
    37
MDA_UID(KUidMdaToneGeneratorDevice) // Tone Generator Device
williamr@2
    38
MDA_UID(KUidMdaClipFormatWav) // Wav Audio Clip Format Uid
williamr@2
    39
williamr@2
    40
MDA_UID(KUidMdaAudioOutputStreamDevice) // Output Stream Device
williamr@2
    41
williamr@2
    42
MDA_UID(KUidMdaWavCodec) // Wav Codec Type Uid
williamr@2
    43
MDA_UID(KUidMdaWavPcmCodec) // Wav Codec Uids
williamr@2
    44
MDA_UID(KUidMdaWavAlawCodec) 
williamr@2
    45
MDA_UID(KUidMdaWavMulawCodec) 
williamr@2
    46
MDA_UID(KUidMdaWavImaAdpcmCodec) 
williamr@2
    47
williamr@2
    48
williamr@2
    49
MDA_UID(KUidMdaClipFormatAu) // Sun/Next "Au" Audio Clip format Uid
williamr@2
    50
MDA_UID(KUidMdaAuCodec) // Sun/Next "Au" Audio Codec Type Uid
williamr@2
    51
MDA_UID(KUidMdaAuMulawCodec) // Sun/Next "Au" Audio Codec Uids
williamr@2
    52
MDA_UID(KUidMdaAu8PcmCodec)  
williamr@2
    53
MDA_UID(KUidMdaAu16PcmCodec) 
williamr@2
    54
MDA_UID(KUidMdaAuAlawCodec)
williamr@2
    55
williamr@2
    56
MDA_UID(KUidMdaClipFormatRawAudio) // Raw Audio Clip format Uid
williamr@2
    57
MDA_UID(KUidMdaRawAudioCodec) // Raw Audio Codec Type Uid
williamr@2
    58
MDA_UID(KUidMdaRawAudioMulawCodec)
williamr@2
    59
MDA_UID(KUidMdaRawAudioAlawCodec) 
williamr@2
    60
MDA_UID(KUidMdaRawAudioS8PcmCodec) // Signed 8bit
williamr@2
    61
MDA_UID(KUidMdaRawAudioU8PcmCodec) // Unsigned 8bit
williamr@2
    62
MDA_UID(KUidMdaRawAudioSL16PcmCodec) // Signed little-endian 16bit
williamr@2
    63
MDA_UID(KUidMdaRawAudioSB16PcmCodec) // Signed big-endian 16bit
williamr@2
    64
MDA_UID(KUidMdaRawAudioUL16PcmCodec) // Unsigned little-endian 16bit
williamr@2
    65
MDA_UID(KUidMdaRawAudioUB16PcmCodec) // Unsigned big-endian 16bit
williamr@2
    66
williamr@2
    67
MDA_UID(KUidMdaTelephonyStateQuery) // Telephony state query 
williamr@2
    68
MDA_UID(KUidMdaAudioStreamVolumeRamp) // Audio stream volume ramp 
williamr@2
    69
williamr@2
    70
MDA_UID(KUidMdaDataTypeSettings)
williamr@2
    71
williamr@2
    72
MDA_UID(KUidMdaClipFormatRawAmr) // AMR Audio Clip Format Uid
williamr@2
    73
MDA_UID(KUidMdaRawAmrCodec) // AMR Codec Type Uid
williamr@2
    74
williamr@2
    75
/**
williamr@2
    76
@internalComponent
williamr@2
    77
*/
williamr@2
    78
const TInt KMdaClipLocationMaxWriteLengthNone = -1;
williamr@2
    79
williamr@2
    80
// Package classes
williamr@2
    81
williamr@2
    82
/**
williamr@2
    83
@publishedAll
williamr@2
    84
@released
williamr@2
    85
williamr@2
    86
Generic Audio Parameters
williamr@2
    87
*/
williamr@2
    88
class TMdaPrioritySettings : public TMdaPackage
williamr@2
    89
	{
williamr@2
    90
public:
williamr@2
    91
	inline TMdaPrioritySettings();
williamr@2
    92
public:
williamr@2
    93
	/**
williamr@2
    94
	Absolute priority of a client of the MMF Server.
williamr@2
    95
williamr@2
    96
	Used by the policy server to determine which client should gain access to the sound device.
williamr@2
    97
williamr@2
    98
	The priority which should be an integer in the range -100 to +100.
williamr@2
    99
	*/
williamr@2
   100
	TInt iPriority;
williamr@2
   101
	/**
williamr@2
   102
    The priority preference that expresses the nature of the priority that can be none, 
williamr@2
   103
	time (or speed), quality or both time and quality.
williamr@2
   104
williamr@2
   105
	If this is set to EMdaPriorityPreferenceTime then the audio data is time sensitive. The playback 
williamr@2
   106
	operation fails if it cannot happen when requested but degraded output such as mixing or muting 
williamr@2
   107
	is allowed.
williamr@2
   108
williamr@2
   109
	If this is set to EMdaPriorityPreferenceQuality then the audio data must be played at the best possible 
williamr@2
   110
	quality (for example, it must not be degraded by muting or mixing). The playback operation is delayed
williamr@2
   111
	until the sound device is available for exclusive use.
williamr@2
   112
williamr@2
   113
	If this is set to EMdaPriorityPreferenceTimeAndQuality then the audio data is both time and quality 
williamr@2
   114
	sensitive. The playback operation fails if it cannot happen immediately at the highest quality.
williamr@2
   115
	*/
williamr@2
   116
	TMdaPriorityPreference iPref;
williamr@2
   117
	};
williamr@2
   118
williamr@2
   119
/**
williamr@2
   120
@publishedAll
williamr@2
   121
@deprecated
williamr@2
   122
williamr@2
   123
Datatype parameters.
williamr@2
   124
williamr@2
   125
Base class for specific data type config packages
williamr@2
   126
*/
williamr@2
   127
class TMdaDatatypeSettings : public TMdaPackage
williamr@2
   128
	{
williamr@2
   129
protected:
williamr@2
   130
	inline TMdaDatatypeSettings(TUid aUid,TInt aDerivedSize);
williamr@2
   131
	};
williamr@2
   132
williamr@2
   133
inline TMdaDatatypeSettings::TMdaDatatypeSettings(TUid aUid,TInt aDerivedSize) :
williamr@2
   134
TMdaPackage(KUidMdaDataTypeSettings,aUid,aDerivedSize) {}
williamr@2
   135
williamr@2
   136
/**
williamr@2
   137
@publishedAll
williamr@2
   138
@deprecated
williamr@2
   139
williamr@2
   140
The settings for audio data played through the media server.
williamr@2
   141
williamr@2
   142
These can be the settings for an audio clip, for streamed audio data, or can be the capabilities
williamr@2
   143
of the sound device. The sample rate and number of channels apply to the audio sample, the maximum
williamr@2
   144
volume applies to the output device and the volume setting can apply to either, depending on the
williamr@2
   145
device. An object of this class is a public data member of class CMdaAudioType and also can be
williamr@2
   146
passed to CMdaAudioOutputStream::Open().
williamr@2
   147
williamr@2
   148
williamr@2
   149
@see CMdaAudioType
williamr@2
   150
@see CMdaAudioOutputStream::Open()
williamr@2
   151
*/
williamr@2
   152
class TMdaAudioDataSettings : public TMdaDatatypeSettings
williamr@2
   153
	{
williamr@2
   154
public:
williamr@2
   155
	/**
williamr@2
   156
	Audio capabilities, which include the sample rate and number of channels. The iCaps
williamr@2
   157
	member is a combination of these flags.
williamr@2
   158
	*/
williamr@2
   159
	enum TAudioCaps
williamr@2
   160
		{
williamr@2
   161
williamr@2
   162
		// Sampled audio capabilities
williamr@2
   163
williamr@2
   164
		/** If specified, the sample rate iSampleRate is the only one supported. If not
williamr@2
   165
		specified, multiple sample rates may be supported.
williamr@2
   166
		*/
williamr@2
   167
		ESampleRateFixed =		0x00000001,
williamr@2
   168
williamr@2
   169
		/** If specified, all sample rates between the minimum and the maximum are supported.
williamr@2
   170
		*/
williamr@2
   171
		ESampleRateAnyInRange = 0x00000002,
williamr@2
   172
williamr@2
   173
		/** The audio sample supports a sample rate of 8.000KHz.
williamr@2
   174
		*/
williamr@2
   175
		ESampleRate8000Hz =		0x00000010,
williamr@2
   176
williamr@2
   177
		/** The audio sample supports a sample rate of 11.025KHz.
williamr@2
   178
		*/
williamr@2
   179
		ESampleRate11025Hz =	0x00000040,
williamr@2
   180
williamr@2
   181
		/** The audio sample supports a sample rate of 12.000KHz.
williamr@2
   182
		*/
williamr@2
   183
		ESampleRate12000Hz =	0x00000080,
williamr@2
   184
williamr@2
   185
		/** The audio sample supports a sample rate of 16.000KHz.
williamr@2
   186
		*/
williamr@2
   187
		ESampleRate16000Hz =	0x00000100,
williamr@2
   188
williamr@2
   189
		/** The audio sample supports a sample rate of 22.000KHz.
williamr@2
   190
		*/
williamr@2
   191
		ESampleRate22050Hz =	0x00000400,
williamr@2
   192
williamr@2
   193
		/** The audio sample supports a sample rate of 24.000KHz.
williamr@2
   194
		*/
williamr@2
   195
		ESampleRate24000Hz =	0x00000800,
williamr@2
   196
williamr@2
   197
		/** The audio sample supports a sample rate of 32.000KHz.
williamr@2
   198
		*/
williamr@2
   199
		ESampleRate32000Hz =	0x00001000,
williamr@2
   200
williamr@2
   201
		/** The audio sample supports a sample rate of 44.100KHz.
williamr@2
   202
		*/
williamr@2
   203
		ESampleRate44100Hz =	0x00004000,
williamr@2
   204
williamr@2
   205
		/** The audio sample supports a sample rate of 48.000KHz.
williamr@2
   206
		*/
williamr@2
   207
		ESampleRate48000Hz =	0x00010000,
williamr@2
   208
williamr@2
   209
		/** The audio sample supports a sample rate of 96.000KHz.
williamr@2
   210
		*/
williamr@2
   211
		ESampleRate96000Hz =	0x00020000,
williamr@2
   212
williamr@2
   213
		/** The audio sample supports a sample rate of 64.000KHz.
williamr@2
   214
		*/
williamr@2
   215
		ESampleRate64000Hz =	0x00040000,
williamr@2
   216
williamr@2
   217
		// Channel related - applies to sampled
williamr@2
   218
williamr@2
   219
		/** The audio sample supports mono.
williamr@2
   220
		*/
williamr@2
   221
		EChannelsMono =			0x02000000,
williamr@2
   222
williamr@2
   223
		/** The audio sample supports stereo.
williamr@2
   224
		*/
williamr@2
   225
		EChannelsStereo =		0x04000000,
williamr@2
   226
williamr@2
   227
		/** Routing related
williamr@2
   228
		*/
williamr@2
   229
		ERoutingControl =		0x08000000,
williamr@2
   230
williamr@2
   231
		/** True if data flow is synchronised with real time (e.g. stream)
williamr@2
   232
		*/
williamr@2
   233
		ERealTime =				0x10000000
williamr@2
   234
		};
williamr@2
   235
williamr@2
   236
	/** Mutually exclusive flags that specify whether audio data is sent to the local device (speakers)
williamr@2
   237
	or the network (phone line) or both. The iFlags member uses these flags.
williamr@2
   238
	*/
williamr@2
   239
	enum TAudioFlags
williamr@2
   240
		{
williamr@2
   241
williamr@2
   242
		/** The sound data is only sent to the network.
williamr@2
   243
		*/
williamr@2
   244
		ENoLocalRouting =		0x00000001,
williamr@2
   245
williamr@2
   246
		/** The sound data is only sent to the local device.
williamr@2
   247
		*/
williamr@2
   248
		ENoNetworkRouting =		0x00000002
williamr@2
   249
		};
williamr@2
   250
public:
williamr@2
   251
	inline TMdaAudioDataSettings();
williamr@2
   252
	inline void Query(); // Call this when you just want to have caps and maxvolume filled
williamr@2
   253
public:
williamr@2
   254
	// Fixed values - must be queried
williamr@2
   255
williamr@2
   256
	/**
williamr@2
   257
	Specifies the capabilities of the audio sample. Its value is a combination of the flags
williamr@2
   258
	contained in the TAudioCaps enum.
williamr@2
   259
	*/
williamr@2
   260
	TInt iCaps;
williamr@2
   261
williamr@2
   262
	/**
williamr@2
   263
	The maximum volume of the audio device.
williamr@2
   264
	*/
williamr@2
   265
	TInt iMaxVolume; // One means fixed volume (zero not valid)
williamr@2
   266
williamr@2
   267
	// Variables
williamr@2
   268
	/**
williamr@2
   269
	The sample rate of the audio sample.
williamr@2
   270
	*/
williamr@2
   271
	TInt iSampleRate;
williamr@2
   272
williamr@2
   273
	/**
williamr@2
   274
	The number of channels for the audio sample.
williamr@2
   275
	*/
williamr@2
   276
	TInt iChannels;
williamr@2
   277
williamr@2
   278
	/**
williamr@2
   279
	The volume. Whether this applies to the audio device or to the audio sample is device-dependent.
williamr@2
   280
	*/
williamr@2
   281
	TInt iVolume;
williamr@2
   282
williamr@2
   283
	/**
williamr@2
   284
	The flags. Its value can be either of the flags contained in the TAudioFlags enum.
williamr@2
   285
	*/
williamr@2
   286
	TInt iFlags;
williamr@2
   287
	};
williamr@2
   288
williamr@2
   289
// Wav Config Packages
williamr@2
   290
williamr@2
   291
/**
williamr@2
   292
@publishedAll
williamr@2
   293
@deprecated
williamr@2
   294
williamr@2
   295
The format for .wav audio clips.
williamr@2
   296
williamr@2
   297
An object of this type can be passed to CMdaAudioRecorderUtility::OpenL() or CMdaAudioConvertUtility::OpenL().
williamr@2
   298
*/
williamr@2
   299
class TMdaWavClipFormat : public TMdaClipFormat
williamr@2
   300
	{
williamr@2
   301
public:
williamr@2
   302
	inline TMdaWavClipFormat();
williamr@2
   303
	};
williamr@2
   304
williamr@2
   305
/**
williamr@2
   306
@publishedAll
williamr@2
   307
@deprecated
williamr@2
   308
williamr@2
   309
The base class for codecs used by .wav audio files.
williamr@2
   310
williamr@2
   311
An object derived from this class can be used to specify the compression algorithm to use when recording or 
williamr@2
   312
converting a .wav audio clip. When playing back a .wav clip, the codec is not specified: the media server
williamr@2
   313
identifies the correct one to use.
williamr@2
   314
*/
williamr@2
   315
class TMdaWavCodec : public TMdaPackage
williamr@2
   316
	{
williamr@2
   317
public:
williamr@2
   318
	inline TMdaWavCodec(); // Unknown type
williamr@2
   319
protected:
williamr@2
   320
	inline TMdaWavCodec(TUid aUid,TInt aDerivedSize);
williamr@2
   321
	};
williamr@2
   322
williamr@2
   323
/**
williamr@2
   324
@publishedAll
williamr@2
   325
@deprecated
williamr@2
   326
williamr@2
   327
The codec for uncompressed 8 or 16 bit PCM .wav format sound data.
williamr@2
   328
williamr@2
   329
This codec copies the data unchanged from source to destination.
williamr@2
   330
*/
williamr@2
   331
class TMdaPcmWavCodec : public TMdaWavCodec
williamr@2
   332
	{
williamr@2
   333
public:
williamr@2
   334
williamr@2
   335
	/**
williamr@2
   336
	Indicates whether the sound is sampled using 8 or 16 bits.
williamr@2
   337
	*/
williamr@2
   338
	enum TBits
williamr@2
   339
		{
williamr@2
   340
   		/** The sound is sampled using 8 bits.
williamr@2
   341
		*/
williamr@2
   342
		E8BitPcm=0,
williamr@2
   343
williamr@2
   344
   		/** The sound is sampled using 16 bits.
williamr@2
   345
		*/
williamr@2
   346
		E16BitPcm=1
williamr@2
   347
		};
williamr@2
   348
public:
williamr@2
   349
	inline TMdaPcmWavCodec(TBits aBits=E16BitPcm);
williamr@2
   350
public:
williamr@2
   351
	/**
williamr@2
   352
	Indicates whether the sound is sampled using 8 or 16 bits.
williamr@2
   353
	*/
williamr@2
   354
	TBits iBits;
williamr@2
   355
	};
williamr@2
   356
williamr@2
   357
/**
williamr@2
   358
@publishedAll
williamr@2
   359
@deprecated
williamr@2
   360
williamr@2
   361
The codec for .wav audio data compressed using the A-Law algorithm.
williamr@2
   362
*/
williamr@2
   363
class TMdaAlawWavCodec : public TMdaWavCodec
williamr@2
   364
	{
williamr@2
   365
public:
williamr@2
   366
	inline TMdaAlawWavCodec();
williamr@2
   367
	};
williamr@2
   368
williamr@2
   369
/**
williamr@2
   370
@publishedAll
williamr@2
   371
@deprecated
williamr@2
   372
williamr@2
   373
The codec for .wav audio data compressed using the mu-law algorithm.
williamr@2
   374
*/
williamr@2
   375
class TMdaMulawWavCodec : public TMdaWavCodec
williamr@2
   376
	{
williamr@2
   377
public:
williamr@2
   378
	inline TMdaMulawWavCodec();
williamr@2
   379
	};
williamr@2
   380
williamr@2
   381
/**
williamr@2
   382
@publishedAll
williamr@2
   383
@deprecated
williamr@2
   384
williamr@2
   385
The codec for .wav audio data compressed using the IMA-ADPCM algorithm.
williamr@2
   386
*/
williamr@2
   387
class TMdaImaAdpcmWavCodec : public TMdaWavCodec
williamr@2
   388
	{
williamr@2
   389
public:
williamr@2
   390
	inline TMdaImaAdpcmWavCodec();
williamr@2
   391
	};
williamr@2
   392
williamr@2
   393
williamr@2
   394
// Sun/NeXT "Au" Config Packages
williamr@2
   395
/**
williamr@2
   396
@publishedAll
williamr@2
   397
@deprecated
williamr@2
   398
williamr@2
   399
The format for .au audio clips.
williamr@2
   400
williamr@2
   401
An object of this type can be passed to CMdaAudioRecorderUtility::OpenL() or CMdaAudioConvertUtility::OpenL().
williamr@2
   402
*/
williamr@2
   403
class TMdaAuClipFormat : public TMdaClipFormat
williamr@2
   404
	{
williamr@2
   405
public:
williamr@2
   406
	inline TMdaAuClipFormat();
williamr@2
   407
	};
williamr@2
   408
williamr@2
   409
/**
williamr@2
   410
@publishedAll
williamr@2
   411
@deprecated
williamr@2
   412
williamr@2
   413
The base class for codecs used by .au audio files.
williamr@2
   414
williamr@2
   415
An object derived from this class can be used to specify the compression algorithm to use when recording
williamr@2
   416
or converting a .au audio clip (whose format is TMdaAuClipFormat). When playing back a .au clip, the
williamr@2
   417
codec is not specified: the media server identifies the correct one to use.
williamr@2
   418
*/
williamr@2
   419
class TMdaAuCodec : public TMdaPackage
williamr@2
   420
	{
williamr@2
   421
public:
williamr@2
   422
	inline TMdaAuCodec(); // Unknown type
williamr@2
   423
protected:
williamr@2
   424
	inline TMdaAuCodec(TUid aUid,TInt aDerivedSize);
williamr@2
   425
	};
williamr@2
   426
williamr@2
   427
/**
williamr@2
   428
@publishedAll
williamr@2
   429
@deprecated
williamr@2
   430
williamr@2
   431
The codec for 8 bit PCM .au audio data.
williamr@2
   432
*/
williamr@2
   433
class TMdaPcm8BitAuCodec : public TMdaAuCodec
williamr@2
   434
	{
williamr@2
   435
public:
williamr@2
   436
	inline TMdaPcm8BitAuCodec();
williamr@2
   437
	};
williamr@2
   438
williamr@2
   439
/**
williamr@2
   440
@publishedAll
williamr@2
   441
@deprecated
williamr@2
   442
williamr@2
   443
The codec for 16 bit PCM .au audio data.
williamr@2
   444
*/
williamr@2
   445
class TMdaPcm16BitAuCodec : public TMdaAuCodec
williamr@2
   446
	{
williamr@2
   447
public:
williamr@2
   448
	inline TMdaPcm16BitAuCodec();
williamr@2
   449
	};
williamr@2
   450
williamr@2
   451
/**
williamr@2
   452
@publishedAll
williamr@2
   453
@deprecated
williamr@2
   454
williamr@2
   455
The codec for .au audio data compressed using the A-Law algorithm.
williamr@2
   456
*/
williamr@2
   457
class TMdaAlawAuCodec : public TMdaAuCodec
williamr@2
   458
	{
williamr@2
   459
public:
williamr@2
   460
	inline TMdaAlawAuCodec();
williamr@2
   461
	};
williamr@2
   462
williamr@2
   463
/**
williamr@2
   464
@publishedAll
williamr@2
   465
@deprecated
williamr@2
   466
williamr@2
   467
The codec for .au audio data compressed using the mu-law algorithm.
williamr@2
   468
*/
williamr@2
   469
class TMdaMulawAuCodec : public TMdaAuCodec
williamr@2
   470
	{
williamr@2
   471
public:
williamr@2
   472
	inline TMdaMulawAuCodec();
williamr@2
   473
	};
williamr@2
   474
williamr@2
   475
// Raw Audio Config Packages
williamr@2
   476
/**
williamr@2
   477
@publishedAll
williamr@2
   478
@deprecated
williamr@2
   479
williamr@2
   480
Audio format for raw audio clips.
williamr@2
   481
williamr@2
   482
An object of this type can be passed to CMdaAudioRecorderUtility::OpenL() or CMdaAudioConvertUtility::OpenL().
williamr@2
   483
*/
williamr@2
   484
class TMdaRawAudioClipFormat : public TMdaClipFormat
williamr@2
   485
	{
williamr@2
   486
public:
williamr@2
   487
	inline TMdaRawAudioClipFormat();
williamr@2
   488
	};
williamr@2
   489
williamr@2
   490
/**
williamr@2
   491
@publishedAll
williamr@2
   492
@deprecated
williamr@2
   493
williamr@2
   494
The base class for raw audio codecs.
williamr@2
   495
williamr@2
   496
An object derived from this class can be used to specify the algorithm to use when opening a
williamr@2
   497
raw audio clip (whose format is TMdaRawAudioClipFormat).
williamr@2
   498
williamr@2
   499
Raw audio clips are have no header information, so that when opening one, the user must supply
williamr@2
   500
a codec and a package containing the settings appropriate for the data in the clip.
williamr@2
   501
williamr@2
   502
@see TMdaRawAudioClipFormat
williamr@2
   503
@see CMdaAudioConvertUtility::OpenL()
williamr@2
   504
@see CMdaAudioRecorderUtility::OpenL()
williamr@2
   505
*/
williamr@2
   506
class TMdaRawAudioCodec : public TMdaPackage
williamr@2
   507
	{
williamr@2
   508
public:
williamr@2
   509
	inline TMdaRawAudioCodec(); // Unknown type
williamr@2
   510
protected:
williamr@2
   511
	inline TMdaRawAudioCodec(TUid aUid,TInt aDerivedSize);
williamr@2
   512
	};
williamr@2
   513
williamr@2
   514
/**
williamr@2
   515
@publishedAll
williamr@2
   516
@deprecated
williamr@2
   517
williamr@2
   518
The codec for raw audio data compressed using the mu-law algorithm.
williamr@2
   519
*/
williamr@2
   520
class TMdaMulawRawAudioCodec : public TMdaRawAudioCodec
williamr@2
   521
	{
williamr@2
   522
public:
williamr@2
   523
	inline TMdaMulawRawAudioCodec();
williamr@2
   524
	};
williamr@2
   525
williamr@2
   526
/**
williamr@2
   527
@publishedAll
williamr@2
   528
@deprecated
williamr@2
   529
williamr@2
   530
The codec for raw audio data compressed using the A-Law algorithm.
williamr@2
   531
*/
williamr@2
   532
class TMdaAlawRawAudioCodec : public TMdaRawAudioCodec
williamr@2
   533
	{
williamr@2
   534
public:
williamr@2
   535
	inline TMdaAlawRawAudioCodec();
williamr@2
   536
	};
williamr@2
   537
williamr@2
   538
/**
williamr@2
   539
@publishedAll
williamr@2
   540
@deprecated
williamr@2
   541
williamr@2
   542
The codec for signed 8 bit PCM raw audio data.
williamr@2
   543
*/
williamr@2
   544
class TMdaS8PcmRawAudioCodec : public TMdaRawAudioCodec
williamr@2
   545
	{
williamr@2
   546
public:
williamr@2
   547
	inline TMdaS8PcmRawAudioCodec();
williamr@2
   548
	};
williamr@2
   549
williamr@2
   550
/**
williamr@2
   551
@publishedAll
williamr@2
   552
@deprecated
williamr@2
   553
williamr@2
   554
The codec for unsigned 8 bit PCM raw audio data.
williamr@2
   555
*/
williamr@2
   556
class TMdaU8PcmRawAudioCodec : public TMdaRawAudioCodec
williamr@2
   557
	{
williamr@2
   558
public:
williamr@2
   559
	inline TMdaU8PcmRawAudioCodec();
williamr@2
   560
	};
williamr@2
   561
williamr@2
   562
/**
williamr@2
   563
@publishedAll
williamr@2
   564
@deprecated
williamr@2
   565
williamr@2
   566
The codec for signed little-endian 16 bit PCM raw audio data.
williamr@2
   567
*/
williamr@2
   568
class TMdaSL16RawAudioCodec : public TMdaRawAudioCodec
williamr@2
   569
	{
williamr@2
   570
public:
williamr@2
   571
	inline TMdaSL16RawAudioCodec();
williamr@2
   572
	};
williamr@2
   573
williamr@2
   574
/**
williamr@2
   575
@publishedAll
williamr@2
   576
@deprecated
williamr@2
   577
williamr@2
   578
The codec for signed big-endian 16 bit PCM raw audio data.
williamr@2
   579
*/
williamr@2
   580
class TMdaSB16RawAudioCodec : public TMdaRawAudioCodec
williamr@2
   581
	{
williamr@2
   582
public:
williamr@2
   583
	inline TMdaSB16RawAudioCodec();
williamr@2
   584
	};
williamr@2
   585
williamr@2
   586
/**
williamr@2
   587
@publishedAll
williamr@2
   588
@deprecated
williamr@2
   589
williamr@2
   590
The codec for unsigned little-endian 16 bit PCM raw audio data.
williamr@2
   591
*/
williamr@2
   592
class TMdaUL16RawAudioCodec : public TMdaRawAudioCodec
williamr@2
   593
	{
williamr@2
   594
public:
williamr@2
   595
	inline TMdaUL16RawAudioCodec();
williamr@2
   596
	};
williamr@2
   597
williamr@2
   598
/**
williamr@2
   599
@publishedAll
williamr@2
   600
@deprecated
williamr@2
   601
williamr@2
   602
The codec for unsigned big-endian 16 bit PCM raw audio data.
williamr@2
   603
*/
williamr@2
   604
class TMdaUB16RawAudioCodec : public TMdaRawAudioCodec
williamr@2
   605
	{
williamr@2
   606
public:
williamr@2
   607
	inline TMdaUB16RawAudioCodec();
williamr@2
   608
	};
williamr@2
   609
williamr@2
   610
/**
williamr@2
   611
@publishedAll
williamr@2
   612
@deprecated
williamr@2
   613
williamr@2
   614
Local Audio Stream Device
williamr@2
   615
Control local microphone/speaker audio stream
williamr@2
   616
May not function during telephone call
williamr@2
   617
*/
williamr@2
   618
class TMdaLocalAudioDevice : public TMdaStreamDevice
williamr@2
   619
	{
williamr@2
   620
public:
williamr@2
   621
	inline TMdaLocalAudioDevice();
williamr@2
   622
	};
williamr@2
   623
williamr@2
   624
/**
williamr@2
   625
@publishedAll
williamr@2
   626
@deprecated
williamr@2
   627
williamr@2
   628
Telephony Audio Stream Device
williamr@2
   629
Control telephony microphone+downlink/speaker+uplink audio stream
williamr@2
   630
Only functional during telephone call
williamr@2
   631
*/
williamr@2
   632
class TMdaTelephonyAudioDevice : public TMdaStreamDevice
williamr@2
   633
	{
williamr@2
   634
public:
williamr@2
   635
	inline TMdaTelephonyAudioDevice();
williamr@2
   636
	};
williamr@2
   637
williamr@2
   638
/**
williamr@2
   639
@publishedAll
williamr@2
   640
@deprecated
williamr@2
   641
williamr@2
   642
This class is used in a ResourceConfig on a telephony port
williamr@2
   643
to determine the current state of telephony
williamr@2
   644
*/
williamr@2
   645
class TMdaTelephonyStateQuery : public TMdaPackage
williamr@2
   646
	{
williamr@2
   647
public:
williamr@2
   648
	inline TMdaTelephonyStateQuery();
williamr@2
   649
public:
williamr@2
   650
	TBool iIsTelephonyActive;
williamr@2
   651
	};
williamr@2
   652
williamr@2
   653
/**
williamr@2
   654
@publishedAll
williamr@2
   655
@deprecated
williamr@2
   656
williamr@2
   657
Client PCM Audio Stream Device
williamr@2
   658
Used to configure a 16bit PCM audio stream to/from client
williamr@2
   659
*/
williamr@2
   660
class TMdaClientPCMAudioDevice : public TMdaStreamDevice
williamr@2
   661
	{
williamr@2
   662
public:
williamr@2
   663
	inline TMdaClientPCMAudioDevice();
williamr@2
   664
	};
williamr@2
   665
williamr@2
   666
williamr@2
   667
/**
williamr@2
   668
@publishedAll
williamr@2
   669
@deprecated
williamr@2
   670
williamr@2
   671
Volume ramping control on audio stream devices
williamr@2
   672
*/
williamr@2
   673
class TMdaAudioStreamVolumeRamp : public TMdaPackage
williamr@2
   674
	{
williamr@2
   675
public:
williamr@2
   676
	inline TMdaAudioStreamVolumeRamp();
williamr@2
   677
public:
williamr@2
   678
	TTimeIntervalMicroSeconds iDuration;
williamr@2
   679
	};
williamr@2
   680
williamr@2
   681
williamr@2
   682
// Inlines
williamr@2
   683
williamr@2
   684
/** 
williamr@2
   685
Default constructor. The member data is not initialised.
williamr@2
   686
*/
williamr@2
   687
inline TMdaAudioDataSettings::TMdaAudioDataSettings() :
williamr@2
   688
TMdaDatatypeSettings(KUidMdaMediaTypeAudio,sizeof(TMdaAudioDataSettings)) 
williamr@2
   689
	{
williamr@2
   690
	Mem::FillZ(&iSampleRate,sizeof(TInt)*4);
williamr@2
   691
	}
williamr@2
   692
williamr@2
   693
/**
williamr@2
   694
Sets the number of channels, the sample rate and the volume to KMdaUnknown (–1). Call this function when you 
williamr@2
   695
only want to have the iCaps and iMaxVolume members filled.
williamr@2
   696
*/
williamr@2
   697
inline void TMdaAudioDataSettings::Query()
williamr@2
   698
	{
williamr@2
   699
	iChannels = KMdaUnknown;
williamr@2
   700
	iSampleRate = KMdaUnknown;
williamr@2
   701
	iVolume = KMdaUnknown;
williamr@2
   702
	}// Call this when you just want to have caps and maxvolume filled
williamr@2
   703
williamr@2
   704
/**
williamr@2
   705
The default constructor initialises the object so that it can be identified by the media server.
williamr@2
   706
*/
williamr@2
   707
inline TMdaWavClipFormat::TMdaWavClipFormat() :
williamr@2
   708
TMdaClipFormat(KUidMdaClipFormatWav,sizeof(TMdaWavClipFormat)) {}
williamr@2
   709
williamr@2
   710
/**
williamr@2
   711
The default constructor initialises the package so that it can be identified by the media server.
williamr@2
   712
*/
williamr@2
   713
inline TMdaWavCodec::TMdaWavCodec() :
williamr@2
   714
TMdaPackage(KUidMdaWavCodec,KNullUid,sizeof(TMdaWavCodec)) {}
williamr@2
   715
williamr@2
   716
inline TMdaWavCodec::TMdaWavCodec(TUid aUid, TInt aDerivedSize) :
williamr@2
   717
TMdaPackage(KUidMdaWavCodec,aUid,aDerivedSize) {}
williamr@2
   718
williamr@2
   719
/**
williamr@2
   720
Constructs the package with a flag that indicates whether the sound is sampled using 8 or 16 bits.
williamr@2
   721
williamr@2
   722
@param  aBits
williamr@2
   723
        Indicates whether the sound is sampled using 8 or 16 bits.
williamr@2
   724
*/
williamr@2
   725
inline TMdaPcmWavCodec::TMdaPcmWavCodec(TBits aBits) :
williamr@2
   726
TMdaWavCodec(KUidMdaWavPcmCodec,sizeof(TMdaPcmWavCodec)), iBits(aBits) {}
williamr@2
   727
williamr@2
   728
/**
williamr@2
   729
The default constructor initialises the package so that it can be identified by the media server.
williamr@2
   730
*/
williamr@2
   731
inline TMdaAlawWavCodec::TMdaAlawWavCodec() :
williamr@2
   732
TMdaWavCodec(KUidMdaWavAlawCodec,sizeof(TMdaAlawWavCodec)) {}
williamr@2
   733
williamr@2
   734
/**
williamr@2
   735
The default constructor initialises the object so that it can be identified by the media server.
williamr@2
   736
*/
williamr@2
   737
inline TMdaMulawWavCodec::TMdaMulawWavCodec() :
williamr@2
   738
TMdaWavCodec(KUidMdaWavMulawCodec,sizeof(TMdaMulawWavCodec)) {}
williamr@2
   739
williamr@2
   740
/**
williamr@2
   741
The default constructor initialises the package so that it can be identified by the media server.
williamr@2
   742
*/
williamr@2
   743
inline TMdaImaAdpcmWavCodec::TMdaImaAdpcmWavCodec() :
williamr@2
   744
TMdaWavCodec(KUidMdaWavImaAdpcmCodec,sizeof(TMdaImaAdpcmWavCodec)) {}
williamr@2
   745
williamr@2
   746
/**
williamr@2
   747
The default constructor initialises the object so that it can be identified by the media server.
williamr@2
   748
*/
williamr@2
   749
inline TMdaAuClipFormat::TMdaAuClipFormat() :
williamr@2
   750
TMdaClipFormat(KUidMdaClipFormatAu,sizeof(TMdaAuClipFormat)) {}
williamr@2
   751
williamr@2
   752
/**
williamr@2
   753
The default constructor initialises the package so that it can be identified by the media server.
williamr@2
   754
*/
williamr@2
   755
inline TMdaAuCodec::TMdaAuCodec() :
williamr@2
   756
TMdaPackage(KUidMdaAuCodec,KNullUid,sizeof(TMdaAuCodec)) {}
williamr@2
   757
williamr@2
   758
inline TMdaAuCodec::TMdaAuCodec(TUid aUid,TInt aDerivedSize) :
williamr@2
   759
TMdaPackage(KUidMdaAuCodec,aUid,aDerivedSize) {}
williamr@2
   760
williamr@2
   761
/**
williamr@2
   762
The default constructor initialises the package so that it can be identified by the media server.
williamr@2
   763
*/
williamr@2
   764
inline TMdaPcm16BitAuCodec::TMdaPcm16BitAuCodec() :
williamr@2
   765
TMdaAuCodec(KUidMdaAu16PcmCodec,sizeof(TMdaPcm16BitAuCodec)) {}
williamr@2
   766
williamr@2
   767
/**
williamr@2
   768
The default constructor initialises the package so that it can be identified by the media server.
williamr@2
   769
*/
williamr@2
   770
inline TMdaPcm8BitAuCodec::TMdaPcm8BitAuCodec() :
williamr@2
   771
TMdaAuCodec(KUidMdaAu8PcmCodec,sizeof(TMdaPcm8BitAuCodec)) {}
williamr@2
   772
williamr@2
   773
/**
williamr@2
   774
The default constructor initialises the package so that it can be identified by the media server.
williamr@2
   775
*/
williamr@2
   776
inline TMdaAlawAuCodec::TMdaAlawAuCodec() :
williamr@2
   777
TMdaAuCodec(KUidMdaAuAlawCodec,sizeof(TMdaAlawAuCodec)) {}
williamr@2
   778
williamr@2
   779
/**
williamr@2
   780
The default constructor initialises the object so that it can be identified by the media server.
williamr@2
   781
*/
williamr@2
   782
inline TMdaMulawAuCodec::TMdaMulawAuCodec() :
williamr@2
   783
TMdaAuCodec(KUidMdaAuMulawCodec,sizeof(TMdaMulawAuCodec)) {}
williamr@2
   784
williamr@2
   785
/**
williamr@2
   786
The default constructor initialises the object so that it can be identified by the media server.
williamr@2
   787
*/
williamr@2
   788
inline TMdaRawAudioClipFormat::TMdaRawAudioClipFormat() :
williamr@2
   789
TMdaClipFormat(KUidMdaClipFormatRawAudio,sizeof(TMdaRawAudioClipFormat)) {}
williamr@2
   790
williamr@2
   791
/**
williamr@2
   792
The default constructor initialises the package so that it can be identified by the media server.
williamr@2
   793
*/
williamr@2
   794
inline TMdaRawAudioCodec::TMdaRawAudioCodec() :
williamr@2
   795
TMdaPackage(KUidMdaRawAudioCodec,KNullUid,sizeof(TMdaRawAudioCodec)) {}
williamr@2
   796
williamr@2
   797
inline TMdaRawAudioCodec::TMdaRawAudioCodec(TUid aUid,TInt aDerivedSize) :
williamr@2
   798
TMdaPackage(KUidMdaRawAudioCodec,aUid,aDerivedSize) {}
williamr@2
   799
williamr@2
   800
/**
williamr@2
   801
The default constructor initialises the object so that it can be identified by the media server.
williamr@2
   802
*/
williamr@2
   803
inline TMdaMulawRawAudioCodec::TMdaMulawRawAudioCodec() :
williamr@2
   804
TMdaRawAudioCodec(KUidMdaRawAudioMulawCodec,sizeof(TMdaMulawRawAudioCodec)) {}
williamr@2
   805
williamr@2
   806
/**
williamr@2
   807
The default constructor initialises the package so that it can be identified by the media server.
williamr@2
   808
*/
williamr@2
   809
inline TMdaAlawRawAudioCodec::TMdaAlawRawAudioCodec() :
williamr@2
   810
TMdaRawAudioCodec(KUidMdaRawAudioAlawCodec,sizeof(TMdaAlawRawAudioCodec)) {}
williamr@2
   811
williamr@2
   812
/**
williamr@2
   813
The default constructor initialises the package so that it can be identified by the media server.
williamr@2
   814
*/
williamr@2
   815
inline TMdaS8PcmRawAudioCodec::TMdaS8PcmRawAudioCodec() :
williamr@2
   816
TMdaRawAudioCodec(KUidMdaRawAudioS8PcmCodec,sizeof(TMdaS8PcmRawAudioCodec)) {}
williamr@2
   817
williamr@2
   818
/**
williamr@2
   819
The default constructor initialises the package so that it can be identified by the media server.
williamr@2
   820
*/
williamr@2
   821
inline TMdaU8PcmRawAudioCodec::TMdaU8PcmRawAudioCodec() :
williamr@2
   822
TMdaRawAudioCodec(KUidMdaRawAudioU8PcmCodec,sizeof(TMdaU8PcmRawAudioCodec)) {}
williamr@2
   823
williamr@2
   824
/**
williamr@2
   825
The default constructor initialises the package so that it can be identified by the media server.
williamr@2
   826
*/
williamr@2
   827
inline TMdaSL16RawAudioCodec::TMdaSL16RawAudioCodec() :
williamr@2
   828
TMdaRawAudioCodec(KUidMdaRawAudioSL16PcmCodec,sizeof(TMdaSL16RawAudioCodec)) {}
williamr@2
   829
williamr@2
   830
/**
williamr@2
   831
The default constructor initialises the package so that it can be identified by the media server.
williamr@2
   832
*/
williamr@2
   833
inline TMdaSB16RawAudioCodec::TMdaSB16RawAudioCodec() :
williamr@2
   834
TMdaRawAudioCodec(KUidMdaRawAudioSB16PcmCodec,sizeof(TMdaSB16RawAudioCodec)) {}
williamr@2
   835
williamr@2
   836
/**
williamr@2
   837
The default constructor initialises the package so that it can be identified by the media server.
williamr@2
   838
*/
williamr@2
   839
inline TMdaUL16RawAudioCodec::TMdaUL16RawAudioCodec() :
williamr@2
   840
TMdaRawAudioCodec(KUidMdaRawAudioUL16PcmCodec,sizeof(TMdaUL16RawAudioCodec)) {}
williamr@2
   841
williamr@2
   842
/**
williamr@2
   843
The default constructor initialises the package so that it can be identified by the media server.
williamr@2
   844
*/
williamr@2
   845
inline TMdaUB16RawAudioCodec::TMdaUB16RawAudioCodec() :
williamr@2
   846
TMdaRawAudioCodec(KUidMdaRawAudioUB16PcmCodec,sizeof(TMdaUB16RawAudioCodec)) {}
williamr@2
   847
williamr@2
   848
inline TMdaLocalAudioDevice::TMdaLocalAudioDevice() : 
williamr@2
   849
TMdaStreamDevice(KUidMdaLocalSoundDevice,sizeof(TMdaLocalAudioDevice)) {}
williamr@2
   850
williamr@2
   851
inline TMdaTelephonyAudioDevice::TMdaTelephonyAudioDevice() : 
williamr@2
   852
TMdaStreamDevice(KUidMdaTelephonySoundDevice,sizeof(TMdaTelephonyAudioDevice)) {}
williamr@2
   853
williamr@2
   854
inline TMdaClientPCMAudioDevice::TMdaClientPCMAudioDevice() : 
williamr@2
   855
TMdaStreamDevice(KUidMdaClientPCMSoundDevice,sizeof(TMdaClientPCMAudioDevice)) {}
williamr@2
   856
williamr@2
   857
inline TMdaAudioStreamVolumeRamp::TMdaAudioStreamVolumeRamp() :
williamr@2
   858
TMdaPackage(KUidMdaAudioStreamVolumeRamp,KUidMdaAudioStreamVolumeRamp,sizeof(TMdaAudioStreamVolumeRamp)) {}
williamr@2
   859
williamr@2
   860
inline TMdaTelephonyStateQuery::TMdaTelephonyStateQuery() :
williamr@2
   861
TMdaPackage(KUidMdaTelephonySoundDevice,KUidMdaTelephonyStateQuery,sizeof(TMdaTelephonyStateQuery)) {}
williamr@2
   862
williamr@2
   863
inline TMdaPrioritySettings::TMdaPrioritySettings() :
williamr@2
   864
TMdaPackage(KUidMdaPrioritySettings,KUidMdaPrioritySettings,sizeof(TMdaPrioritySettings)) {}
williamr@2
   865
williamr@2
   866
#endif