30 #include "avrcpplayerinfomanager.h" |
30 #include "avrcpplayerinfomanager.h" |
31 #include "commandhandlerinterface.h" |
31 #include "commandhandlerinterface.h" |
32 |
32 |
33 class CPassthroughHelper; |
33 class CPassthroughHelper; |
34 class CRcpRouter; |
34 class CRcpRouter; |
35 class CRemConBearerAvrcp; |
35 class MRemConControlCommandInterface; |
36 class CAVCFrame; |
36 class CAVCFrame; |
37 class TBTDevAddr; |
37 class TBTDevAddr; |
38 NONSHARABLE_CLASS(CRcpIncomingCommandHandler) : public CBase, public MPlayerChangeObserver, public MIncomingCommandHandler |
38 NONSHARABLE_CLASS(CRcpIncomingCommandHandler) : public CBase, public MPlayerChangeObserver, public MIncomingCommandHandler |
39 { |
39 { |
40 public: |
40 public: |
41 static CRcpIncomingCommandHandler* NewL(CRemConBearerAvrcp& aBearer, |
41 static CRcpIncomingCommandHandler* NewL(MRemConControlCommandInterface& aCommandInterface, |
42 MRemConBearerObserver& aObserver, |
42 MRemConBearerObserver& aObserver, |
43 CRcpRouter& aRouter, |
43 CRcpRouter& aRouter, |
44 CDeltaTimer& aTimer, |
44 CDeltaTimer& aTimer, |
45 CAvrcpPlayerInfoManager& aPlayerInfoManager, TBTDevAddr& aDevice); |
45 CAvrcpPlayerInfoManager& aPlayerInfoManager, TBTDevAddr& aDevice); |
46 void ConstructL(); |
46 void ConstructL(); |
57 |
57 |
58 TInt SendRemConResponse(TUid aInterfaceUid, TUint aId, RBuf8& aData); |
58 TInt SendRemConResponse(TUid aInterfaceUid, TUint aId, RBuf8& aData); |
59 void SendReject(TUid aInterfaceUid, TUint aId); |
59 void SendReject(TUid aInterfaceUid, TUint aId); |
60 |
60 |
61 private: |
61 private: |
62 CRcpIncomingCommandHandler(CRemConBearerAvrcp& aBearer, |
62 CRcpIncomingCommandHandler(MRemConControlCommandInterface& aCommandInterface, |
63 MRemConBearerObserver& aObserver, |
63 MRemConBearerObserver& aObserver, |
64 CRcpRouter& aRouter, |
64 CRcpRouter& aRouter, |
65 CDeltaTimer& aTimer, |
65 CDeltaTimer& aTimer, |
66 CAvrcpPlayerInfoManager& aPlayerInfoManager, |
66 CAvrcpPlayerInfoManager& aPlayerInfoManager, |
67 TBTDevAddr& aDevice); |
67 TBTDevAddr& aDevice); |
90 TInt HandleUidChangedNotification( CControlCommand& aCommand); |
90 TInt HandleUidChangedNotification( CControlCommand& aCommand); |
91 void DoHandleUidChangedNotificationL(RBuf8& aResponseData, TUint16 aUidCounter); |
91 void DoHandleUidChangedNotificationL(RBuf8& aResponseData, TUint16 aUidCounter); |
92 |
92 |
93 void SendInternalResponse(TUint aId, RBuf8& aData); |
93 void SendInternalResponse(TUint aId, RBuf8& aData); |
94 void SendResponse(TDblQue<CControlCommand>& aCommandQueue, TUint aId, RBuf8& aData); |
94 void SendResponse(TDblQue<CControlCommand>& aCommandQueue, TUint aId, RBuf8& aData); |
|
95 |
|
96 void EnterAddressedMode(); |
95 |
97 |
96 // Timer functions |
98 // Timer functions |
97 TBool DuplicateNotify(TDblQue<CControlCommand>& aCommandQueue, const CControlCommand& aCommand) const; |
99 TBool DuplicateNotify(TDblQue<CControlCommand>& aCommandQueue, const CControlCommand& aCommand) const; |
98 CControlCommand* FindNotify(TDblQue<CControlCommand>& aCommandQueue, TUid aInterfaceUid, TUint aOperationId); |
100 CControlCommand* FindNotify(TDblQue<CControlCommand>& aCommandQueue, TUid aInterfaceUid, TUint aOperationId); |
99 private: |
101 private: |
100 TDblQue<CControlCommand> iCommandQueue; |
102 TDblQue<CControlCommand> iCommandQueue; |
101 TDblQue<CControlCommand> iInternalCommandQueue; |
103 TDblQue<CControlCommand> iInternalCommandQueue; |
102 |
104 |
103 CAVRCPFragmenter* iFragmenter; |
105 CAVRCPFragmenter* iFragmenter; |
104 CRemConBearerAvrcp& iBearer; |
106 MRemConControlCommandInterface& iCommandInterface; |
105 MRemConBearerObserver& iObserver; |
107 MRemConBearerObserver& iObserver; |
106 CRcpRouter& iRouter; |
108 CRcpRouter& iRouter; |
107 CDeltaTimer& iTimer; |
109 CDeltaTimer& iTimer; |
108 TRemConClientId iClientId; // We store the client id even if we aren't |
110 TRemConClientId iClientId; // We store the client id even if we aren't |
109 // in addressed mode as we may switch into |
111 // in addressed mode as we may switch into |
110 // it and need to know the current local |
112 // it and need to know the current local |
111 // addressed player |
113 // addressed player |
112 TBool iAddressedMode; |
114 TBool iAddressedMode; |
113 |
115 |
114 CAvrcpPlayerInfoManager& iPlayerInfoManager; |
116 CAvrcpPlayerInfoManager& iPlayerInfoManager; |
115 TBTDevAddr& iDevice; |
117 TBTDevAddr& iDevice; |
116 |
118 |