bluetoothengine/btaudioman/inc/basrvaccstateattached.h
changeset 0 f63038272f30
child 22 613943a21004
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetoothengine/btaudioman/inc/basrvaccstateattached.h	Mon Jan 18 20:28:57 2010 +0200
@@ -0,0 +1,142 @@
+/*
+* 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:  The Connected state declaration
+*
+*/
+
+
+#ifndef C_BTASRVACCSTATECONNECTED_H
+#define C_BTASRVACCSTATECONNECTED_H
+
+#include "basrvaccstate.h"
+#include "btengprivatepskeys.h"
+
+class CBasrvAccStateAttached : public CBasrvAccState
+    {
+public:
+
+    static CBasrvAccStateAttached* NewL(CBasrvAcc& aParent, TBool aShowNote = EFalse);
+
+    virtual ~CBasrvAccStateAttached();
+    
+    /**
+     * Entry of this state.
+     *
+     * @since S60 v3.1
+     */
+    void EnterL();
+    
+    /**
+     * Returns the next state if EnterL leaves.
+     *
+     * @since S60 v3.1
+     * @return the next state
+     */
+    CBasrvAccState* ErrorOnEntry(TInt aReason);
+
+    TBTEngConnectionStatus ConnectionStatus() const;
+
+    void ConnectL(const TBTDevAddr& aAddr);
+        
+    /**
+    * Disconnect accessory.
+    */
+    void DisconnectL();
+
+    /**
+    * 
+    * @return an error. Default implementation returns KErrNotFound
+    */
+    void AccessoryConnected(TProfiles aProfile);
+    
+    /**
+    * 
+    * @return an error. Default implementation returns KErrNotFound
+    */
+    void AccOpenedAudio(TProfiles aProfile);
+    
+    /**
+    * 
+    * @return an error. Default implementation returns KErrNotFound
+    */
+    void AccClosedAudio(TProfiles aProfile);
+    
+    /**
+    * Called when the connection is disconnected from remote side.
+    * @param aErr the error code of event
+    */
+    void AccessoryDisconnectedL(TProfiles aProfile);
+    
+    /**
+    * Called when an audio open request comes from Acc FW.
+    */
+    void OpenAudioL(TAccAudioType aType);
+
+    /**
+    * Called when an audio close request comes from Acc FW.
+    */
+    void CloseAudioL(TAccAudioType aType);
+    
+protected:
+    // From MBasrvActiveObserver
+    
+    /**
+     * Handles the request completion event.
+     *
+     * @since S60 v3.1
+     * @param aActive the Active Object to which the request is assigned to.
+     */
+    virtual void RequestCompletedL(CBasrvActive& aActive);
+    
+    /**
+     * Handles the cancellation of an outstanding request.
+     *
+     * @since S60 v3.1
+     * @param aActive the Active Object to which the request is assigned to.
+     */
+    virtual void CancelRequest(CBasrvActive& aActive);
+
+protected:
+
+    /**
+    * Default constructor
+    */
+    CBasrvAccStateAttached(CBasrvAcc& aParent, TBool aShowNote);
+    
+    void HandleAccOpenedAudio(TProfiles aProfile);
+ 
+    void DoCloseAudioL(TAccAudioType aType);
+    
+    void DoConnectRemConCtIfNeededL();
+    
+private:
+
+	void UpdateAudioState(TBTAudioLinkState aState, TAccAudioType aType);
+
+    RPointerArray<CBasrvActive> iActives;
+    CBasrvActive* iAudioOpener;
+    CBasrvActive* iAudioCloser;
+    
+    RTimer iTimer;
+    CBasrvActive* iTimerActive;
+    TProfiles iCloseAudioProfile;
+    
+    TBool iShowNote;
+    
+    CBasrvActive* iRemConTGConnector;
+    };
+
+#endif      // C_BTASRVACCSTATECONNECTED_H
+
+// End of File