diff -r 16e4b9007960 -r f5508c13dfe0 bluetoothappprofiles/avrcp/remconbeareravrcp/inc/controlbearer.h --- a/bluetoothappprofiles/avrcp/remconbeareravrcp/inc/controlbearer.h Wed Oct 13 13:15:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,195 +0,0 @@ -// Copyright (c) 2008-2010 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 CONTROLBEARER_H -#define CONTROLBEARER_H - -/** -@file -@internalComponent -@released -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "avrcpbearerinterface.h" -#include "remconcommandinterface.h" - -class CControlCommand; -class CRcpRemoteDevice; -class CControlRouter; -class TBTDevAddr; -class CBrowseCommand; -class CAvrcpPlayerInfoManager; -class CAvrcpBulkBearer; - -NONSHARABLE_CLASS(CRemConBearerAvrcp) : public CRemConBearerPlugin, public MRemConBearerInterfaceV3, - public MAvrcpBearer, public MRemConControlCommandInterface - { -public: - static CRemConBearerAvrcp* NewL(TBearerParams& aParams); - virtual ~CRemConBearerAvrcp(); - -public: // Interface to command handlers, from MRemConCommandInterface - void MrcciNewCommand(CAvrcpCommand& aCommand); - void MrcciNewCommand(CAvrcpCommand& aCommand, const TRemConClientId& aClientId); - void MrccciNewNotifyCommand(CAvrcpCommand& aCommand); - void MrccciNewNotifyCommand(CAvrcpCommand& aCommand, const TRemConClientId& aClientId); - - void MrccciNewResponse(CAvrcpCommand& aCommand); - void MrccciNewNotifyResponse(CControlCommand& aCommand); - - TUint MrcciNewTransactionId(); - void MrcciCommandExpired(TUint aTransactionId); - - void MrccciSetAddressedClient(const TRemConClientId& aClient); - void MrccciRegisterForLocalAddressedClientUpdates(); - void MrccciUnregisterForLocalAddressedClientUpdates(); - -private: // MRemConBearerInterfaceV3 functions called from RemCon - virtual TInt GetResponse(TUid& aInterfaceUid, - TUint& aId, - TUint& aOperationId, - RBuf8& aCommandData, - TRemConAddress& aAddr); - - virtual TInt SendCommand(TUid aInterfaceUid, - TUint aOperationId, - TUint aId, - RBuf8& aData, - const TRemConAddress& aAddr); - - virtual TInt GetCommand(TUid& aInterfaceUid, - TUint& aId, - TUint& aOperationId, - RBuf8& aCommandData, - TRemConAddress& aAddr); - - virtual TInt GetNotifyCommand(TUid& aInterfaceUid, - TUint& aId, - TUint& aOperationId, - RBuf8& aCommandData, - TRemConAddress& aAddr); - - virtual CAvrcpCommand* GetFirstCommand(TDblQue& aQue, - TUid& aInterfaceUid, - TUint& aId, - TUint& aOperationId, - RBuf8& aCommandData, - TRemConAddress& aAddr); - - virtual TInt SendResponse(TUid aInterfaceUid, - TUint aOperationId, - TUint aId, - RBuf8& aData, - const TRemConAddress& aAddr); - - virtual void SendReject(TUid aInterfaceUid, - TUint aOperationId, - TUint aTransactionId, - const TRemConAddress& aAddr); - virtual void ConnectRequest(const TRemConAddress& aAddr); - virtual void DisconnectRequest(const TRemConAddress& aAddr); - - virtual TSecurityPolicy SecurityPolicy() const; - void ClientStatus(TBool aControllerPresent, TBool aTargetPresent); - virtual void ClientAvailable(TRemConClientId& aId, TPlayerType aClientType, TPlayerSubType aClientSubType, const TDesC8& aName); - virtual void ClientNotAvailable(TRemConClientId& aId); - virtual void ControllerFeaturesUpdated(RArray& aSupportedInterfaces); - - virtual TInt SetLocalAddressedClient(TRemConClientId& aId); - - virtual void TargetFeaturesUpdated(const TRemConClientId& aId, TPlayerType aPlayerType, TPlayerSubType aPlayerSubType, const TDesC8& aName); - -private: // from CRemConBearerPlugin - TAny* GetInterface(TUid aUid); - -private: - // from MAvrcpBearer called from router - void ConnectIndicate(const TBTDevAddr& aBTDevice); - void ConnectConfirm(const TBTDevAddr& aBTDevice, TInt aError); - void DisconnectIndicate(const TBTDevAddr& aBTDevice); - void DisconnectConfirm(const TBTDevAddr& aBTDevice, TInt aError); - - MIncomingCommandHandler* IncomingHandler(const TBTDevAddr& aAddr); - MOutgoingCommandHandler* OutgoingHandler(const TBTDevAddr& aAddr); - -private: - // MRemConBearerInterfaceV3 plugin functions called from RemCon - virtual TInt SendNotifyCommand(TUid aInterfaceUid, - TUint aOperationId, - TUint aId, - RBuf8& aData, - const TRemConAddress& aAddr); - - virtual TInt GetNotifyResponse(TUid& aInterfaceUid, - TUint& aId, - TUint& aOperationId, - RBuf8& aCommandData, - TRemConAddress& aAddr, - TRemConMessageSubType& aSubMessageType); - -private: - enum TAvrcpRecordType - { - EAvrcpRemoteControlRecord, - EAvrcpRemoteControlTargetRecord, - }; - -private: - CRemConBearerAvrcp(TBearerParams& aParams); - void ConstructL(); - - // utility functions - CRcpRemoteDevice* RemoteDevice(const TBTDevAddr& aAddr); - - void UpdateServiceRecordL(RSdpDatabase& aSdpDatabase, - TBool aController, - TBool aTarget); - void RegisterServiceRecordL(RSdpDatabase& aSdpDatabase, - TAvrcpRecordType aType); - - void HandleUndeliveredCommand(CAvrcpCommand& aCommand, const TRemConAddress& aAddr); - -private: - TDblQue iRemotes; - TDblQue iReadyCommands; - TDblQue iReadyResponses; - TDblQue iReadyNotifyResponses; - TDblQue iReadyNotifyCommands; - CControlRouter* iRouter; - CDeltaTimer* iTimer; - RSdp iSdp; - TSdpServRecordHandle iControllerSdpRecordHandle; - TSdpServRecordHandle iTargetSdpRecordHandle; - TBool iConstructionComplete; - CAvrcpPlayerInfoManager* iPlayerInfoManager; - MIncomingCommandHandler* iInternalHandler; - - CAvrcpBulkBearer* iBulkBearer; - - RAvctp iAvctp; - - TInt iRemotesInterestedInLocalAddressedClient; - }; - -#endif //CONTROLBEARER_H