bluetoothengine/btaudioman/inc/basrvaccstate.h
changeset 0 f63038272f30
child 6 6a29d5ad0713
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetoothengine/btaudioman/inc/basrvaccstate.h	Mon Jan 18 20:28:57 2010 +0200
@@ -0,0 +1,186 @@
+/*
+* 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 base accessory state declaration
+*
+*/
+
+
+#ifndef C_BTASRVACCSTATE_H
+#define C_BTASRVACCSTATE_H
+
+#include <e32base.h> 
+#include <bttypes.h>
+#include <btengconstants.h>
+#include "basrvactive.h"
+#include "basrvacc.h"
+#include "basrvaccman.h"
+#include "basrvpluginman.h"
+#include "btaccPlugin.h"
+#include "btaccTypes.h"
+#include "BTAccInfo.h"
+#include "BTAccFwIf.h"
+
+class CBasrvAccState : public CBase, public MBasrvActiveObserver
+    {
+public:
+
+    virtual ~CBasrvAccState();
+    
+    /**
+     * Entry of this state.
+     *
+     * @since S60 v3.1
+     */
+    virtual void EnterL() = 0;
+    
+    /**
+     * Returns the next state if EnterL leaves.
+     *
+     * @since S60 v3.1
+     * @return the next state
+     */
+    virtual CBasrvAccState* ErrorOnEntry(TInt aReason);
+    
+    virtual TBTEngConnectionStatus ConnectionStatus() const = 0;
+    
+    /**
+    * Connect to an accessory. Default inplementation returns KErrInUse.
+    * @param aAddr BD address of the accessory to be connected
+    * @return an error
+    */
+    virtual void ConnectL(const TBTDevAddr& aAddr);
+    
+    /**
+    * Cancel connecting to accessory
+    */
+    virtual void CancelConnect();
+    
+    /**
+    * Disconnect accessory. Default implementation returns KErrNotFound.
+    * @param aAddr BD address of the accessory to be connected
+    * @return an error
+    */
+    virtual void DisconnectL();
+
+    /**
+    * 
+    * @return an error. Default implementation returns KErrNotFound
+    */
+    virtual void AccessoryConnected(TProfiles aProfile);
+    
+    /**
+    * 
+    * @return an error. Default implementation returns KErrNotFound
+    */
+    virtual void AccOpenedAudio(TProfiles aProfile);
+    
+    /**
+    * 
+    * @return an error. Default implementation returns KErrNotFound
+    */
+    virtual void AccClosedAudio(TProfiles aProfile);
+    
+    /**
+    * Called when the connection is disconnected from remote side or there
+    * is error on reading/writing data packet.
+    * @param aErr the error code of event
+    */
+    virtual void AccessoryDisconnectedL(TProfiles aProfile);
+    
+    /**
+    * Called when an audio open request comes from Acc FW.
+    */
+    virtual void OpenAudioL(TAccAudioType aType);
+
+    /**
+    * Called when an audio close request comes from Acc FW.
+    */
+    virtual 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
+    */
+    CBasrvAccState(CBasrvAcc& aParent, TRequestStatus* aRequest);
+    
+    /**
+     * Gets the owner of the state machine
+     *
+     * @since S60 v3.1
+     * @return the state machine owner
+     */
+    CBasrvAcc& Parent();
+    
+    /**
+     * Completes the pending request in this state with specified error code 
+     * and then zero the pointer.
+     *
+     * @since S60 v3.1
+     * @param aErr the completion error code
+     */
+    void CompleteStateRequest(TInt aErr);
+    
+    /**
+     * Completes the give pending request with specified error code..
+     *
+     * @since S60 v3.1
+     * @param aRequest the request to be completed
+     * @param aErr the completion error code
+     */
+    void CompleteRequest(TRequestStatus* aRequest, TInt aErr);
+
+    void StatePrint(const TDesC& aStateName);
+
+    TAccInfo& AccInfo();
+
+    void NewProfileConnection(TProfiles aProfile);
+
+    void ProfileDisconnected(TProfiles aProfile);
+    
+    TBool IsAvrcpTGCat2SupportedByRemote();
+
+protected:
+
+    CBasrvAcc& iParent;
+
+    /**
+     * Possible to be NULL.
+     * The async request performed in this state if it is not NULL.
+     */
+    TRequestStatus* iRequest;
+    };
+
+#endif      // C_BTASRVACCSTATE_H
+
+// End of File