First public contribution.
1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
16 #ifndef __A2DPBTHEADSETAUDIOIFSERVER_H__
17 #define __A2DPBTHEADSETAUDIOIFSERVER_H__
20 #include <mmf/common/mmfipc.h>
21 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
22 #include <mmf/common/mmfipcserver.h>
24 #include "A2dpBTHeadsetAudioIfClientServer.h"
26 class CA2dpBTHeadsetAudioInterface; // fwd declaration
31 * CA2dpBTHeadsetAudioIfServer definition
33 class CA2dpBTHeadsetAudioIfServer : public CMmfIpcServer
36 IMPORT_C static TInt StartThread(TAny* aParms); // thread entry point
38 static CA2dpBTHeadsetAudioIfServer* NewL();
39 ~CA2dpBTHeadsetAudioIfServer();
40 CMmfIpcSession* NewSessionL(const TVersion &aVersion) const;
42 CA2dpBTHeadsetAudioIfServer();
45 CA2dpBTHeadsetAudioInterface* iBTAudioInterface;
49 * CA2dpBTHeadsetIfEventHandler
51 class CA2dpBTHeadsetIfEventHandler : public CActive
54 static CA2dpBTHeadsetIfEventHandler* NewL();
55 ~CA2dpBTHeadsetIfEventHandler();
56 void StartL(const RMmfIpcMessage& aMessage);
59 CA2dpBTHeadsetIfEventHandler();
64 RMmfIpcMessage* iMessage;
68 * CA2dpBTHeadsetAudioIfSession definition
70 class CA2dpBTHeadsetAudioIfSession : public CMmfIpcSession
73 static CA2dpBTHeadsetAudioIfSession* NewL(CA2dpBTHeadsetAudioInterface* aBTAudioInterface);
74 ~CA2dpBTHeadsetAudioIfSession();
75 void ServiceL(const RMessage2& aMessage);
78 CA2dpBTHeadsetAudioIfSession(CA2dpBTHeadsetAudioInterface* aBTAudioInterface);
81 TBool DoInitializeL(const RMmfIpcMessage& aMessage);
82 TBool DoCancelInitializeL(const RMmfIpcMessage& aMessage);
83 TBool DoCopyFourCCArrayDataL(const RMmfIpcMessage& aMessage);
84 TBool DoCopyUintArrayDataL(const RMmfIpcMessage& aMessage, RArray<TUint> aArray);
85 TBool DoCopyChannelsArrayDataL(const RMmfIpcMessage& aMessage);
86 TInt DoGetSupportedDataTypesL(const RMmfIpcMessage& aMessage);// returns error value
87 TInt DoGetSupportedSampleRatesL(const RMmfIpcMessage& aMessage);
88 TBool DoGetSupportedSampleRatesDiscreteL(const RMmfIpcMessage& aMessage);
89 TBool DoGetSupportedSampleRatesRangeL(const RMmfIpcMessage& aMessage);
90 TInt DoGetSupportedChannelsL(const RMmfIpcMessage& aMessage);
91 TBool DoGetStereoSupportL(const RMmfIpcMessage& aMessage);
92 TInt DoSetDataTypeL(const RMmfIpcMessage& aMessage); // returns error value
93 TInt DoSetSampleRateL(const RMmfIpcMessage& aMessage);// returns error value
94 TInt DoSetChannelsL(const RMmfIpcMessage& aMessage);// returns error value
95 TBool DoOpenDeviceL(const RMmfIpcMessage& aMessage);
96 TBool DoCancelOpenDevice(const RMmfIpcMessage& aMessage);
97 TBool DoCloseDeviceL(const RMmfIpcMessage& aMessage);
98 TBool DoVolumeL(const RMmfIpcMessage& aMessage);
99 TInt DoSetVolumeL(const RMmfIpcMessage& aMessage);// returns error value
100 TBool DoPlayDataL(const RMmfIpcMessage& aMessage);
101 TBool DoCancelPlayDataL(const RMmfIpcMessage& aMessage);
102 TBool DoFlushBufferL(const RMmfIpcMessage& aMessage);
103 TBool DoBytesPlayedL(const RMmfIpcMessage& aMessage);
104 TBool DoResetBytesPlayedL(const RMmfIpcMessage& aMessage);
105 TBool DoPauseBufferL(const RMmfIpcMessage& aMessage);
106 TBool DoResumePlayingL(const RMmfIpcMessage& aMessage);
107 TBool DoNotifyErrorL(const RMmfIpcMessage& aMessage);
108 TBool DoCancelNotifyErrorL(const RMmfIpcMessage& aMessage);
111 CA2dpBTHeadsetAudioInterface* iBTAudioInterface; // Not owned
112 // Hmm - one handler per asynch call and then no need to store messages?
113 CA2dpBTHeadsetIfEventHandler* iInitHandler; // AO to manage asynch calls to the interface
114 CA2dpBTHeadsetIfEventHandler* iOpenDeviceHandler; // AO to manage asynch calls to the interface
115 CA2dpBTHeadsetIfEventHandler* iCloseDeviceHandler; // AO to manage asynch calls to the interface
116 CA2dpBTHeadsetIfEventHandler* iPlayDataHandler; // AO to manage asynch calls to the interface
117 CA2dpBTHeadsetIfEventHandler* iNotifyErrorHandler; // AO to manage asynch calls to the interface
119 RArray<TFourCC> iFourCCArray;
120 RArray<TUint> iDiscreteArray;
121 RArray<TRange> iRangeArray;
122 RArray<TUint> iStereoSupportArray;