bluetoothengine/btaudioman/inc/BTAccSession.h
changeset 0 f63038272f30
child 6 6a29d5ad0713
--- /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 <e32svr.h>   // access CSession2 declaration
+#include <bttypes.h>
+#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<TBTDevAddr>* 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<TProfileStatus> iProfileStatusCache;
+    RMessagePtr2 iNotifyProfileMsg;
+    
+    CBasrvAudio4Dos* iAudio4Dos;
+    };
+
+#endif      // BTACCSESSION_H
+
+// End of File