diff -r 000000000000 -r f63038272f30 bluetoothengine/btaudioman/inc/BTAccSession.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetoothengine/btaudioman/inc/BTAccSession.h Mon Jan 18 20:28:57 2010 +0200 @@ -0,0 +1,139 @@ +/* +* Copyright (c) 2005-2006 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: +* Server class creates the session. This class then recieves the messages from +* client and forward them to server class to be handled. Messages are completed +* with return values recieved from server. +* +*/ + + +#ifndef BTACCSESSION_H +#define BTACCSESSION_H + +// INCLUDES +#include // access CSession2 declaration +#include +#include "btaccTypes.h" + +// CLASS DECLARATION +class CBTAccServer; +class CBasrvAccMan; +class TAccInfo; +class CBasrvAudio4Dos; + +/** +* CBTSession class represent session on server side +* +*/ +NONSHARABLE_CLASS(CBTAccSession) : public CSession2 + { +public: // Constructors and destructor + /** + * Constructor. + */ + static CBTAccSession* NewL(CBasrvAccMan& aAccMan); + + /** + * Destructor. + */ + ~CBTAccSession(); + + void ConnectCompleted(TInt aErr, TInt aProfile, const RArray* aConflicts); + + void DisconnectCompleted(TInt aProfile, TInt aErr); + + void DisconnectAllCompleted(TInt aErr); + + void NotifyClientNewProfile(TInt aProfile, const TBTDevAddr& aAddr); + void NotifyClientNoProfile(TInt aProfile, const TBTDevAddr& aAddr); + + // For DosServer version only + void AudioToPhone(const RMessage2& aMessage); + void AudioToAccessory(const RMessage2& aMessage); + void CancelAudioToAccessory(); + void AudioToPhoneComplete(); + void AudioToAccessoryComplete(TInt aErr); + +private: + /** + * connect an accessory + * @param aMessage Message from client containing BT Device address + * @return KErrNone if successful otherwise one of the system wide error cdes + */ + void ConnectToAccessory(const RMessage2& aMessage); + + /** + * cancel connecting + */ + void CancelConnectToAccessory(); + + /** + * disconnect an accessory + * @param aMessage Message from client containing BT Device address + * @return KErrNone if successful otherwise one of the system wide error cdes + */ + void DisconnectAccessory(const RMessage2& aMessage); + + void GetConnections(const RMessage2& aMessage); + + void DisconnectAllGracefully(const RMessage2& aMessage); + + void NotifyProfileStatus(const RMessage2& aMessage); + + /** + * + * @param + * @return + */ + void GetInfoOfConnectedAcc(const RMessage2& aMessage); + + void IsConnected(const RMessage2& aMessage); + +private: // Functions from base classes + void ServiceL(const RMessage2 &aMessage); + + CBTAccServer& Server(); + + void CreateL(); + +private: + /** + * C++ default constructor. + */ + CBTAccSession(CBasrvAccMan& aAccMan); + + void HandleAudio4DosRequest(const RMessage2 &aMessage); + + void DestructVariant(); + + void UpdateProfileStatusCache(const TProfileStatus& aStatus); + +private: // Data + CBasrvAccMan& iAccMan; // not own + + TBTDevAddr iConnectingAddr; + RMessagePtr2 iConnectMsg; + RMessagePtr2 iDisconnectMsg; + RMessagePtr2 iDisconnectAllMsg; + + RArray iProfileStatusCache; + RMessagePtr2 iNotifyProfileMsg; + + CBasrvAudio4Dos* iAudio4Dos; + }; + +#endif // BTACCSESSION_H + +// End of File