diff -r 000000000000 -r b8ed18f6c07b devsound/a3fdevsound/src/mmfaudioserver/mmfaudioclientserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/devsound/a3fdevsound/src/mmfaudioserver/mmfaudioclientserver.h Thu Oct 07 22:34:12 2010 +0100 @@ -0,0 +1,194 @@ +/* +* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + + +#ifndef MMFAUDIOCLIENTSERVER_H +#define MMFAUDIOCLIENTSERVER_H + +// INCLUDES +#include +#include +#include + +// DATA TYPES +// opcodes used in message passing between client and server +enum TMMFAudioServerRequest + { + EMMFAudioLaunchRequests, + EMMFDevSoundSessionHandle + }; + +// opcodes used in message passing between client and server for DevSound +// operations. +enum TMMFDevSoundProxyRequest + { + EMMFDevSoundProxyPostOpen, + EMMFDevSoundProxyInitialize1, + EMMFDevSoundProxyInitialize2, + EMMFDevSoundProxyInitialize3, + EMMFDevSoundProxyInitialize4, + EMMFDevSoundProxyCapabilities, + EMMFDevSoundProxyConfig, + EMMFDevSoundProxySetConfig, + EMMFDevSoundProxyMaxVolume, + EMMFDevSoundProxyVolume, + EMMFDevSoundProxySetVolume, + EMMFDevSoundProxyMaxGain, + EMMFDevSoundProxyGain, + EMMFDevSoundProxySetGain, + EMMFDevSoundProxyPlayBalance, + EMMFDevSoundProxySetPlayBalance, + EMMFDevSoundProxyRecordBalance, + EMMFDevSoundProxySetRecordBalance, + EMMFDevSoundProxyICEvent, + EMMFDevSoundProxyBTBFEvent, + EMMFDevSoundProxyBTBEEvent, + EMMFDevSoundProxyPEEvent, + EMMFDevSoundProxyREEvent, + EMMFDevSoundProxyTFEvent, + EMMFDevSoundProxySETCEvent, + EMMFDevSoundProxyPlayInit, + EMMFDevSoundProxyRecordInit, + EMMFDevSoundProxyPlayData, + EMMFDevSoundProxyRecordData, + EMMFDevSoundProxyStop, + EMMFDevSoundProxyPause, + EMMFDevSoundProxyPlayTone, + EMMFDevSoundProxyPlayDualTone, + EMMFDevSoundProxyPlayDTMFString, + EMMFDevSoundProxyPlayDTMFStringLength, + EMMFDevSoundProxyPlayToneSequence, + EMMFDevSoundProxyPlayFixedSequence, + EMMFDevSoundProxySetDTMFLengths, + EMMFDevSoundProxySetVolumeRamp, + EMMFDevSoundProxyGetSupportedInputDataTypes, + EMMFDevSoundProxyGetSupportedOutputDataTypes, + EMMFDevSoundProxyCopyFourCCArrayData, + EMMFDevSoundProxySamplesRecorded, + EMMFDevSoundProxySamplesPlayed, + EMMFDevSoundProxySetToneRepeats, + EMMFDevSoundProxySetPrioritySettings, + EMMFDevSoundProxyFixedSequenceName, + EMMFDevSoundProxyCustomInterface, + EMMFDevSoundProxyFixedSequenceCount, + EMMFDevSoundProxyRequestResourceNotification, + EMMFDevSoundProxyCancelRequestResourceNotification, + EMMFDevSoundProxyGetResourceNotificationData, + EMMFDevSoundProxyWillResumePlay, + EMMFDevSoundProxyEmptyBuffers, + EMMFDevSoundProxyCancelInitialize, + EMMFDevSoundProxyBTBFData, + EMMFDevSoundProxyBTBEData, + EMMFDevSoundProxySyncCustomCommand, + EMMFDevSoundProxySyncCustomCommandResult, + EMMFDevSoundProxyAsyncCustomCommand, + EMMFDevSoundProxyAsyncCustomCommandResult, + EMMFDevSoundCustomCommandCloseMuxDemuxPair, + EMMFDevSoundProxyClose, + EMMFDevSoundProxyPausedRecordCompleteEvent, + EMMFDevSoundProxyGetTimePlayed, + EMMFDevSoundProxySetClientThreadInfo, + EMMFDevSoundProxyIsResumeSupported, + EMMFDevSoundProxyResume, + EMMFDevSoundProxyMarkEvent + }; + +// Signals that the message is destined for the DevSound +const TUid KUidInterfaceMMFDevSound = {0x10207ABA}; +const TInt KMMFObjectHandleDevSound = -3; + +// Addresses the chunk states +enum TChunkOp + { + ENull, + EOpen + }; + +/** +* A class representing CMMFBuffer information. +* Buffers are used for both playback and recording. +* +* @lib MmfDevSoundAdaptation.lib +*/ +class TMMFDevSoundProxyHwBuf + { +public: + TUid iBufferType; + TInt iRequestSize; + TBool iLastBuffer; + TUint iBufferSize; + TChunkOp iChunkOp; + }; + +typedef TPckgBuf TMMFDevSoundProxyHwBufPckg; + +/** +* A class representing settings information used to send configuration +* information to DevSound server. +* Buffers are used for both playback and recording digital audio. +* +* @lib MmfDevSoundAdaptation.lib +*/ +class TMMFDevSoundProxySettings + { +public: + TMMFState iMode; + TUid iHWDev; + TFourCC iDesiredFourCC; + TMMFCapabilities iCaps; + TMMFCapabilities iConfig; + TInt iMaxVolume; + TInt iVolume; + TInt iMaxGain; + TInt iGain; + TInt iLeftPercentage; + TInt iRightPercentage; + TInt iFrequencyOne; + TInt iFrequencyTwo; + TTimeIntervalMicroSeconds iDuration; + TTimeIntervalMicroSeconds32 iToneOnLength; + TTimeIntervalMicroSeconds32 iToneOffLength; + TTimeIntervalMicroSeconds32 iPauseLength; + TUid iNotificationEventUid; + TUid iInterface; + }; + +// Packages a DevSound object information into a modifiable buffer descriptor. +// Provides a type safe way of transferring an object or data structure which is contained within a modifiable buffer descriptor. +typedef TPckgBuf TMMFDevSoundProxySettingsPckg; + +// Tone Fixed Sequence Max Length +const TInt KMaxFixedSequenceNameLength = 1024; + +/** +* TMMFDevSoundQueueItem is used to pass asynch messages between the devsound +* proxy and server for the observer's BufferToBeFilled, BufferToBeEmptied, +* PlayError, RecordError, ToneFinished, InitializeComplete and +* SendEventToClient events. +*/ +class TMMFDevSoundQueueItem + { +public: + TMMFDevSoundProxyRequest iRequest; + TMMFEventPckg iEventPckg; // SendEventToClient message payload + TInt iErrorCode; // InitComplete, ToneFinished, PlayError, RecordError message payload + }; + +#endif //MMFAUDIOCLIENTSERVER_H + +// End of File