diff -r 000000000000 -r bde4ae8d615e os/mm/devsound/sounddevbt/PlatSec/src/Server/AudioServer/MmfBtDevSoundSession.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/mm/devsound/sounddevbt/PlatSec/src/Server/AudioServer/MmfBtDevSoundSession.h Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,198 @@ +// Copyright (c) 2004-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 __MMFBTDEVSOUNDSESSION_H__ +#define __MMFBTDEVSOUNDSESSION_H__ + +#include +#include +#include +#include +#include +#include +#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS +#include +#endif +#include +#include "MmfBtAudioClientServer.h" + + +class CMMFAudioServer; +class CMMFDevSoundServer; +class CMMFDevSoundSvrImp; + +class CMMFDevSoundSession : public CMmfIpcSession, public MDevSoundObserver + { +public: + static CMMFDevSoundSession* NewL(RServer2& aPolicyServerHandle); + ~CMMFDevSoundSession(); + + void CreateL(const CMmfIpcServer& aServer); + void ServiceL(const RMmfIpcMessage& aMessage); + TInt DevSoundSessionId(void) {return iDevSoundSessionId;}; + void SendEventToClient(/*TMMFAudioServerEvent& aEvent*/); + TBool CheckClientCapabilities(); + + + TBool DoInitialize1L(const RMmfIpcMessage& aMessage); + TBool DoInitialize2L(const RMmfIpcMessage& aMessage); + TBool DoInitialize3L(const RMmfIpcMessage& aMessage); + TBool DoInitialize4L(const RMmfIpcMessage& aMessage); + TBool DoCapabilitiesL(const RMmfIpcMessage& aMessage); + TBool DoConfigL(const RMmfIpcMessage& aMessage); + TBool DoSetConfigL(const RMmfIpcMessage& aMessage); + TBool DoMaxVolumeL(const RMmfIpcMessage& aMessage); + TBool DoVolumeL(const RMmfIpcMessage& aMessage); + TBool DoSetVolumeL(const RMmfIpcMessage& aMessage); + TBool DoMaxGainL(const RMmfIpcMessage& aMessage); + TBool DoGainL(const RMmfIpcMessage& aMessage); + TBool DoSetGainL(const RMmfIpcMessage& aMessage); + TBool DoGetPlayBalanceL(const RMmfIpcMessage& aMessage); + TBool DoSetPlayBalanceL(const RMmfIpcMessage& aMessage); + TBool DoGetRecordBalanceL(const RMmfIpcMessage& aMessage); + TBool DoSetRecordBalanceL(const RMmfIpcMessage& aMessage); + TBool DoPlayInitL(const RMmfIpcMessage& aMessage); + TBool DoRecordInitL(const RMmfIpcMessage& aMessage); + TBool DoPlayDataL(const RMmfIpcMessage& aMessage); + TBool DoRecordDataL(const RMmfIpcMessage& aMessage); + TBool DoStopL(const RMmfIpcMessage& aMessage); + TBool DoPauseL(const RMmfIpcMessage& aMessage); + TBool DoPlayToneL(const RMmfIpcMessage& aMessage); + TBool DoPlayDualToneL(const RMmfIpcMessage& aMessage); + TBool DoPlayDTMFStringL(const RMmfIpcMessage& aMessage); + TBool DoPlayToneSequenceL(const RMmfIpcMessage& aMessage); + TBool DoPlayFixedSequenceL(const RMmfIpcMessage& aMessage); + TBool DoSetDTMFLengthsL(const RMmfIpcMessage& aMessage); + TBool DoSetVolumeRampL(const RMmfIpcMessage& aMessage); + TBool DoGetSupportedInputDataTypesL(const RMmfIpcMessage& aMessage); + TBool DoCopyFourCCArrayDataL(const RMmfIpcMessage& aMessage); + TBool DoGetRecordedBufferL(const RMmfIpcMessage& aMessage); + TBool DoSamplesRecordedL(const RMmfIpcMessage& aMessage); + TBool DoSamplesPlayedL(const RMmfIpcMessage& aMessage); + TBool DoSetToneRepeatsL(const RMmfIpcMessage& aMessage); + TBool DoSetPrioritySettingsL(const RMmfIpcMessage& aMessage); + TBool DoFixedSequenceNameL(const RMmfIpcMessage& aMessage); + TBool DoConvertInitL(const RMmfIpcMessage& aMessage); + TBool DoConvertDataL(const RMmfIpcMessage& aMessage); + TBool DoFixedSequenceCountL(const RMmfIpcMessage& aMessage); + TBool DoGetSupportedOutputDataTypesL(const RMmfIpcMessage& aMessage); + + TBool DoInitializeCompleteEventL(const RMmfIpcMessage& aMessage); + TBool DoCancelInitializeCompleteEventL(const RMmfIpcMessage& aMessage); + TBool DoBufferToBeFilledEventL(const RMmfIpcMessage& aMessage); + TBool DoCancelBufferToBeFilledEventL(const RMmfIpcMessage& aMessage); + TBool DoBufferToBeEmptiedEventL(const RMmfIpcMessage& aMessage); + TBool DoCancelBufferToBeEmptiedEventL(const RMmfIpcMessage& aMessage); + TBool DoPlayErrorEventL(const RMmfIpcMessage& aMessage); + TBool DoCancelPlayErrorEventL(const RMmfIpcMessage& aMessage); + TBool DoRecordErrorEventL(const RMmfIpcMessage& aMessage); + TBool DoCancelRecordErrorEventL(const RMmfIpcMessage& aMessage); + TBool DoToneFinishedEventL(const RMmfIpcMessage& aMessage); + TBool DoCancelToneFinishedEventL(const RMmfIpcMessage& aMessage); + TBool DoSendEventToClientEventL(const RMmfIpcMessage& aMessage); + TBool DoCancelSendEventToClientEventL(const RMmfIpcMessage& aMessage); + TBool DoRegisterAsClientL(const RMmfIpcMessage& aMessage); + TBool DoCancelRegisterAsClientL(const RMmfIpcMessage& aMessage); + TBool DoGetResourceNotificationDataL(const RMmfIpcMessage& aMessage); + TBool DoWillResumePlayL(const RMmfIpcMessage& aMessage); + TBool DoSetClientThreadInfoL(const RMmfIpcMessage& aMessage); + + void InitializeL(MDevSoundObserver& aDevSoundObserver, TMMFState aMode); + void InitializeL(MDevSoundObserver& aDevSoundObserver, TUid aHWDev, TMMFState aMode); + void InitializeL(MDevSoundObserver& aDevSoundObserver, CArrayPtr aHWDevArray, TMMFState aMode); + void InitializeL(MDevSoundObserver& aDevSoundObserver, TFourCC aDesiredFourCC, TMMFState aMode); + + TMMFCapabilities Capabilities(); + TMMFCapabilities Config() const; + void SetConfigL(const TMMFCapabilities& aCaps); + TInt MaxVolume(); + TInt Volume(); + void SetVolume(TInt aVolume); + TInt MaxGain(); + TInt Gain(); + void SetGain(TInt aGain); + void GetPlayBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage); + void SetPlayBalanceL(TInt aLeftPercentage, TInt aRightPercentage); + void GetRecordBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage); + void SetRecordBalanceL(TInt aLeftPercentage, TInt aRightPercentage); + void PlayInitL(); + void RecordInitL(); + void PlayData(); + void RecordData(); + void Stop(); + void Pause(); + TInt SamplesRecorded(); + TInt SamplesPlayed(); + void PlayToneL(TInt aFrequency, const TTimeIntervalMicroSeconds& aDuration); + void PlayDualToneL(TInt aFrequencyOne, TInt aFrequencyTwo, const TTimeIntervalMicroSeconds& aDuration); + void PlayDTMFStringL(const TDesC& aDTMFString); + void PlayToneSequenceL(const TDesC8& aData); + void PlayFixedSequenceL(TInt aSequenceNumber); + void SetToneRepeats(TInt aRepeatCount, + const TTimeIntervalMicroSeconds& aRepeatTrailingSilence); + void SetDTMFLengths(TTimeIntervalMicroSeconds32& aToneOnLength, + TTimeIntervalMicroSeconds32& aToneOffLength, + TTimeIntervalMicroSeconds32& aPauseLength); + + void SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration); + void SetPrioritySettings(const TMMFPrioritySettings& aPrioritySettings); + void ConvertInitL(); + void ConvertData(); + TAny* CustomInterface(TUid aInterfaceId); + TInt FixedSequenceCount(); + const TDesC& FixedSequenceName(TInt aSequenceNumber); + void GetSupportedInputDataTypesL(RArray& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings) const; + void GetSupportedOutputDataTypesL(RArray& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings) const; + + void InitializeComplete(TInt aError); + void ToneFinished(TInt aError); + void BufferToBeFilled(CMMFBuffer* aBuffer); + void PlayError(TInt aError); + void BufferToBeEmptied(CMMFBuffer* aBuffer); + void RecordError(TInt aError); + void ConvertError(TInt aError); + void DeviceMessage(TUid aMessageType, const TDesC8& aMsg); + void SendEventToClient(const TMMFEvent& aEvent); + + TInt RegisterAsClient(TUid aEventType, const TDesC8& aNotificationRegistrationData = KNullDesC8); + TInt CancelRegisterAsClient(TUid aEventType); + TInt GetResourceNotificationData(TUid aEventType, TDes8& aNotificationData); + TInt WillResumePlay(); + +protected: + CMMFDevSoundSession(); + void ConstructL(RServer2& aPolicyServerHandle); + CMMFDevSoundSvrImp* iBody; + +private: + TInt iDevSoundSessionId; + RMmfIpcMessage* iBTBFMessage; + RMmfIpcMessage* iBTBEMessage; + RMmfIpcMessage* iPEMessage; + RMmfIpcMessage* iREMessage; + RMmfIpcMessage* iTFMessage; + RMmfIpcMessage* iICMessage; + RMmfIpcMessage* iSETCMessage; + CMMFDataBuffer* iBufferPlay; + CMMFDataBuffer* iBufferRecord; + RArray iArray; + HBufC* iDTMFString; + HBufC8* iToneSeqBuf; + TBool iClientHasCaps; + }; + + + +#endif