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