remotecontrol/avrcp/remconbeareravrcp/inc/internalhelper.h
author hgs
Wed, 13 Oct 2010 16:20:29 +0300
changeset 51 20ac952a623c
permissions -rw-r--r--
201040_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51
20ac952a623c 201040_02
hgs
parents:
diff changeset
     1
// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
20ac952a623c 201040_02
hgs
parents:
diff changeset
     2
// All rights reserved.
20ac952a623c 201040_02
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
20ac952a623c 201040_02
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
20ac952a623c 201040_02
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
20ac952a623c 201040_02
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
20ac952a623c 201040_02
hgs
parents:
diff changeset
     7
//
20ac952a623c 201040_02
hgs
parents:
diff changeset
     8
// Initial Contributors:
20ac952a623c 201040_02
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    10
//
20ac952a623c 201040_02
hgs
parents:
diff changeset
    11
// Contributors:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    12
//
20ac952a623c 201040_02
hgs
parents:
diff changeset
    13
// Description:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    14
//
20ac952a623c 201040_02
hgs
parents:
diff changeset
    15
20ac952a623c 201040_02
hgs
parents:
diff changeset
    16
#ifndef INTERNALHELPER_H
20ac952a623c 201040_02
hgs
parents:
diff changeset
    17
#define INTERNALHELPER_H
20ac952a623c 201040_02
hgs
parents:
diff changeset
    18
20ac952a623c 201040_02
hgs
parents:
diff changeset
    19
#include <e32base.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    20
#include "avrcpplayerinfomanager.h"
20ac952a623c 201040_02
hgs
parents:
diff changeset
    21
20ac952a623c 201040_02
hgs
parents:
diff changeset
    22
class CControlCommand;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    23
class CRemConBearerAvrcp;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    24
class CRcpRouter;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    25
NONSHARABLE_CLASS(CInternalCommandHelper) : public CBase, public MPlayerChangeObserver
20ac952a623c 201040_02
hgs
parents:
diff changeset
    26
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    27
public:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    28
	static CInternalCommandHelper* NewL(CRemConBearerAvrcp& aBearer, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    29
			CRcpRouter& aRouter, TRemConClientId& aClientId, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    30
			CAvrcpPlayerInfoManager& aPlayerInfoManager);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    31
	~CInternalCommandHelper();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    32
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    33
	void Disconnect();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    34
	void HandleInternalCommand(CControlCommand& aCommand);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    35
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    36
private:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    37
	CInternalCommandHelper(CRemConBearerAvrcp& aBearer, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    38
			CRcpRouter& aRouter, TRemConClientId& aClientId,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    39
			CAvrcpPlayerInfoManager& aPlayerInfoManager);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    40
	void ConstructL();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    41
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    42
	// From MPlayerChangeObserver
20ac952a623c 201040_02
hgs
parents:
diff changeset
    43
	void MpcoAvailablePlayersChanged();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    44
	void MpcoAddressedPlayerChangedLocally(TRemConClientId aClientId);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    45
	void MpcoUidCounterChanged(TRemConClientId aClientId);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    46
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    47
	void Respond(CControlCommand& aCommand, TInt aErr);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    48
	void HandledCommand(CControlCommand& aCommand);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    49
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    50
	TInt HandleSetAddressedPlayer(TUint aId, RBuf8& aCommandData);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    51
	void DoHandleSetAddressedPlayerL(RBuf8& aCommandData);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    52
	void AddressedPlayerChangedL(TRemConClientId aClientId);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    53
20ac952a623c 201040_02
hgs
parents:
diff changeset
    54
	TInt HandleRegisterAvailablePlayersNotification(CControlCommand& aCommand);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    55
	void DoHandleRegisterAvailablePlayersNotificationL(RBuf8& aResponseData, CControlCommand& aCommand);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    56
20ac952a623c 201040_02
hgs
parents:
diff changeset
    57
	TInt HandleRegisterAddressedPlayerNotification(CControlCommand& aCommand);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    58
	void DoHandleRegisterAddressedPlayerNotificationL(RBuf8& aResponseData, CControlCommand& aCommand);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    59
20ac952a623c 201040_02
hgs
parents:
diff changeset
    60
	TInt HandleUidChangedNotification( CControlCommand& aCommand);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    61
	void DoHandleUidChangedNotificationL(RBuf8& aResponseData, TUint16 aUidCounter);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    62
20ac952a623c 201040_02
hgs
parents:
diff changeset
    63
	void SendResponse(TUint aId, RBuf8& aData);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    64
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    65
private:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    66
	CRemConBearerAvrcp& iBearer;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    67
	CRcpRouter& iRouter;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    68
	TRemConClientId& iClientId; 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    69
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    70
	CAvrcpPlayerInfoManager& iPlayerInfoManager;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    71
20ac952a623c 201040_02
hgs
parents:
diff changeset
    72
	TDblQue<CControlCommand> iInternalCommandQueue;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    73
	};
20ac952a623c 201040_02
hgs
parents:
diff changeset
    74
20ac952a623c 201040_02
hgs
parents:
diff changeset
    75
#endif // INTERNALHELPER_H