--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetoothappprofiles/avrcp/remconbeareravrcp/inc/avrcprouter.h Mon Jan 18 20:28:57 2010 +0200
@@ -0,0 +1,123 @@
+// Copyright (c) 2004-2009 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:
+//
+
+#ifndef AVRCPROUTER_H
+#define AVRCPROUTER_H
+
+/**
+@file
+@internalComponent
+@released
+*/
+
+#include <avctpservices.h>
+#include <e32base.h>
+#include "avrcp.h"
+#include "avrcpbearerinterface.h"
+
+
+class CAvrcpCommand;
+class CBrowseCommand;
+
+NONSHARABLE_CLASS(CRcpRouter) : public CBase, public MAvctpEventNotify
+ {
+private:
+ enum TAvrcpRouterState
+ {
+ EAvrcpRouterSending,
+ EAvrcpRouterCanSend
+ };
+
+public:
+ ~CRcpRouter();
+
+ // Data functions called from command handlers
+ void AddToSendQueue(CAvrcpCommand& aCommand);
+ void RemoveFromSendQueue(CAvrcpCommand& aCommand);
+
+ // Control functions called from bearer
+ TInt ConnectRequest(const TBTDevAddr& aAddr);
+ TInt DisconnectRequest(const TBTDevAddr& aAddr);
+
+ // MAvctpEventNotify functions
+ virtual void MaenAttachIndicate(const TBTDevAddr& aBTDevice, TInt aMtu, TBool& aAccept);
+
+ virtual void MaenAttachConfirm(const TBTDevAddr& aBTDevice, TInt aMtu, TInt aConnectResult);
+
+ virtual void MaenDetachIndicate(const TBTDevAddr& aBTDevice);
+
+ virtual void MaenDetachConfirm(const TBTDevAddr& aBTDevice, TInt aDisconnectResult);
+
+ virtual void MaenMessageReceivedIndicate(const TBTDevAddr& aBTDevice,
+ SymbianAvctp::TTransactionLabel aTransactionLabel,
+ SymbianAvctp::TMessageType aType,
+ TBool aIpidBitSet,
+ const TDesC8& aMessageInformation);
+
+ virtual void MaenMessageSendComplete(const TBTDevAddr& aBTDevice,
+ SymbianAvctp::TTransactionLabel aTransactionLabel,
+ TInt aSendResult);
+
+ virtual void MaenCloseComplete();
+
+ virtual void MaenErrorNotify(const TBTDevAddr& aBTDevice, TInt aError);
+
+ virtual void MaenExtensionInterfaceL(TUid aInterface, void*& aObject);
+
+protected:
+ explicit CRcpRouter(MAvrcpBearer& aBearer);
+
+private:
+ // Utility functions
+ void Send();
+
+protected:
+ MAvctpChannel* iChannel;
+ MAvrcpBearer& iBearer;
+
+ TDblQue<CAvrcpCommand> iSendQueue;
+ TAvrcpRouterState iState;
+// TAvctpChannel iChannel;
+
+ };
+
+NONSHARABLE_CLASS(CControlRouter) : public CRcpRouter
+ {
+public:
+ static CControlRouter* NewL(RAvctp& aAvctp, MAvrcpBearer& aBearer);
+ ~CControlRouter();
+
+private:
+ explicit CControlRouter(RAvctp& aAvctp, MAvrcpBearer& aBearer);
+ void ConstructL();
+
+private:
+ RAvctp& iAvctp;
+ };
+
+NONSHARABLE_CLASS(CBulkRouter) : public CRcpRouter
+ {
+public:
+ static CBulkRouter* NewL(RAvctp& aAvctp, MAvrcpBearer& aBearer);
+ ~CBulkRouter();
+
+private:
+ explicit CBulkRouter(RAvctp& aAvctp, MAvrcpBearer& aBearer);
+ void ConstructL();
+
+private:
+ RAvctp& iAvctp;
+ };
+#endif // AVRCPROUTER_H