diff -r 000000000000 -r bde4ae8d615e os/mm/devsound/sounddevbt/src/A2dpBlueTooth/server/A2dpBTHeadsetAudioIfServer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/mm/devsound/sounddevbt/src/A2dpBlueTooth/server/A2dpBTHeadsetAudioIfServer.h Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,124 @@ +// Copyright (c) 2005-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 __A2DPBTHEADSETAUDIOIFSERVER_H__ +#define __A2DPBTHEADSETAUDIOIFSERVER_H__ + +#include +#include +#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS +#include +#endif +#include "A2dpBTHeadsetAudioIfClientServer.h" + +class CA2dpBTHeadsetAudioInterface; // fwd declaration +class TFourCC; +class TRange; + +/** + * CA2dpBTHeadsetAudioIfServer definition + */ +class CA2dpBTHeadsetAudioIfServer : public CMmfIpcServer + { +public: + IMPORT_C static TInt StartThread(TAny* aParms); // thread entry point + + static CA2dpBTHeadsetAudioIfServer* NewL(); + ~CA2dpBTHeadsetAudioIfServer(); + CMmfIpcSession* NewSessionL(const TVersion &aVersion) const; +private: + CA2dpBTHeadsetAudioIfServer(); + void ConstructL(); +private: + CA2dpBTHeadsetAudioInterface* iBTAudioInterface; + }; + +/** + * CA2dpBTHeadsetIfEventHandler + */ +class CA2dpBTHeadsetIfEventHandler : public CActive + { +public: + static CA2dpBTHeadsetIfEventHandler* NewL(); + ~CA2dpBTHeadsetIfEventHandler(); + void StartL(const RMmfIpcMessage& aMessage); + void Stop(); +private: + CA2dpBTHeadsetIfEventHandler(); + void RunL(); + void DoCancel(); + void ConstructL(); +private: + RMmfIpcMessage* iMessage; + }; + +/** + * CA2dpBTHeadsetAudioIfSession definition + */ +class CA2dpBTHeadsetAudioIfSession : public CMmfIpcSession + { +public: + static CA2dpBTHeadsetAudioIfSession* NewL(CA2dpBTHeadsetAudioInterface* aBTAudioInterface); + ~CA2dpBTHeadsetAudioIfSession(); + void ServiceL(const RMessage2& aMessage); + +private: + CA2dpBTHeadsetAudioIfSession(CA2dpBTHeadsetAudioInterface* aBTAudioInterface); + void ConstructL(); + + TBool DoInitializeL(const RMmfIpcMessage& aMessage); + TBool DoCancelInitializeL(const RMmfIpcMessage& aMessage); + TBool DoCopyFourCCArrayDataL(const RMmfIpcMessage& aMessage); + TBool DoCopyUintArrayDataL(const RMmfIpcMessage& aMessage, RArray aArray); + TBool DoCopyChannelsArrayDataL(const RMmfIpcMessage& aMessage); + TInt DoGetSupportedDataTypesL(const RMmfIpcMessage& aMessage);// returns error value + TInt DoGetSupportedSampleRatesL(const RMmfIpcMessage& aMessage); + TBool DoGetSupportedSampleRatesDiscreteL(const RMmfIpcMessage& aMessage); + TBool DoGetSupportedSampleRatesRangeL(const RMmfIpcMessage& aMessage); + TInt DoGetSupportedChannelsL(const RMmfIpcMessage& aMessage); + TBool DoGetStereoSupportL(const RMmfIpcMessage& aMessage); + TInt DoSetDataTypeL(const RMmfIpcMessage& aMessage); // returns error value + TInt DoSetSampleRateL(const RMmfIpcMessage& aMessage);// returns error value + TInt DoSetChannelsL(const RMmfIpcMessage& aMessage);// returns error value + TBool DoOpenDeviceL(const RMmfIpcMessage& aMessage); + TBool DoCancelOpenDevice(const RMmfIpcMessage& aMessage); + TBool DoCloseDeviceL(const RMmfIpcMessage& aMessage); + TBool DoVolumeL(const RMmfIpcMessage& aMessage); + TInt DoSetVolumeL(const RMmfIpcMessage& aMessage);// returns error value + TBool DoPlayDataL(const RMmfIpcMessage& aMessage); + TBool DoCancelPlayDataL(const RMmfIpcMessage& aMessage); + TBool DoFlushBufferL(const RMmfIpcMessage& aMessage); + TBool DoBytesPlayedL(const RMmfIpcMessage& aMessage); + TBool DoResetBytesPlayedL(const RMmfIpcMessage& aMessage); + TBool DoPauseBufferL(const RMmfIpcMessage& aMessage); + TBool DoResumePlayingL(const RMmfIpcMessage& aMessage); + TBool DoNotifyErrorL(const RMmfIpcMessage& aMessage); + TBool DoCancelNotifyErrorL(const RMmfIpcMessage& aMessage); + +private: + CA2dpBTHeadsetAudioInterface* iBTAudioInterface; // Not owned + // Hmm - one handler per asynch call and then no need to store messages? + CA2dpBTHeadsetIfEventHandler* iInitHandler; // AO to manage asynch calls to the interface + CA2dpBTHeadsetIfEventHandler* iOpenDeviceHandler; // AO to manage asynch calls to the interface + CA2dpBTHeadsetIfEventHandler* iCloseDeviceHandler; // AO to manage asynch calls to the interface + CA2dpBTHeadsetIfEventHandler* iPlayDataHandler; // AO to manage asynch calls to the interface + CA2dpBTHeadsetIfEventHandler* iNotifyErrorHandler; // AO to manage asynch calls to the interface + + RArray iFourCCArray; + RArray iDiscreteArray; + RArray iRangeArray; + RArray iStereoSupportArray; + }; +#endif