diff -r 000000000000 -r f63038272f30 bluetoothappprofiles/avrcp/remconbeareravrcp/inc/avrcprouter.h --- /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 +#include +#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 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