remotecontrol/avrcp/remconbeareravrcp/inc/avrcpcommand.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) 2008-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 AVRCPCOMMAND_H
20ac952a623c 201040_02
hgs
parents:
diff changeset
    17
#define AVRCPCOMMAND_H
20ac952a623c 201040_02
hgs
parents:
diff changeset
    18
20ac952a623c 201040_02
hgs
parents:
diff changeset
    19
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    20
@file
20ac952a623c 201040_02
hgs
parents:
diff changeset
    21
@internalComponent
20ac952a623c 201040_02
hgs
parents:
diff changeset
    22
@released
20ac952a623c 201040_02
hgs
parents:
diff changeset
    23
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    24
20ac952a623c 201040_02
hgs
parents:
diff changeset
    25
#include <e32base.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    26
#include <bluetoothav.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    27
#include <bluetooth/avctptypes.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    28
#include "avrcputils.h"
20ac952a623c 201040_02
hgs
parents:
diff changeset
    29
20ac952a623c 201040_02
hgs
parents:
diff changeset
    30
class CAvrcpPlayerInfoManager;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    31
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    32
This class is a base class for all AVRCP commands.  It provides 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    33
the functionality that is common between the AV/C and Browse 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    34
commands.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    35
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    36
NONSHARABLE_CLASS(CAvrcpCommand) : public CBase
20ac952a623c 201040_02
hgs
parents:
diff changeset
    37
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    38
public:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    39
	// called from Router
20ac952a623c 201040_02
hgs
parents:
diff changeset
    40
	void Sent();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    41
	virtual SymbianAvctp::TMessageType MessageType() const = 0;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    42
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    43
	// Called by users of command
20ac952a623c 201040_02
hgs
parents:
diff changeset
    44
	void DecrementUsers();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    45
	void IncrementUsers();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    46
20ac952a623c 201040_02
hgs
parents:
diff changeset
    47
	// Called from bearer
20ac952a623c 201040_02
hgs
parents:
diff changeset
    48
	void GetCommandInfo(TUid& aInterfaceUid, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    49
		TUint& aId, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    50
		TUint& aOperationId, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    51
		RBuf8& aCommandData, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    52
		TBTDevAddr& aAddr);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    53
20ac952a623c 201040_02
hgs
parents:
diff changeset
    54
	virtual const TDesC8& Data() const = 0;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    55
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    56
	const TBTDevAddr& RemoteAddress() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    57
	SymbianAvctp::TTransactionLabel TransactionLabel() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    58
	TUint RemConCommandId() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    59
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    60
	const TUid& RemConInterfaceUid() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    61
	TUint RemConOperationId() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    62
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    63
	TBool KnownToBearer() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    64
20ac952a623c 201040_02
hgs
parents:
diff changeset
    65
protected:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    66
	explicit CAvrcpCommand(TUint aRemConId,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    67
			SymbianAvctp::TTransactionLabel aTransactionLabel, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    68
			const TBTDevAddr& aAddr);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    69
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    70
public:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    71
	TAvrcpDblQueLink	iHandlingLink;	// Used to form handling queue in command handlers
20ac952a623c 201040_02
hgs
parents:
diff changeset
    72
	TAvrcpDblQueLink	iReadyLink;		// Used to form ready command queue in CRemConBearerAvrcp
20ac952a623c 201040_02
hgs
parents:
diff changeset
    73
	TAvrcpDblQueLink	iSendLink;		// Used to form send queue in CRcpRouter
20ac952a623c 201040_02
hgs
parents:
diff changeset
    74
20ac952a623c 201040_02
hgs
parents:
diff changeset
    75
protected:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    76
	TUint							iRemConId;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    77
	SymbianAvctp::TTransactionLabel	iTransactionLabel;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    78
		
20ac952a623c 201040_02
hgs
parents:
diff changeset
    79
	TBTDevAddr						iRemoteAddr;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    80
20ac952a623c 201040_02
hgs
parents:
diff changeset
    81
	TUid							iInterfaceUid;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    82
	TUint							iOperationId;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    83
	RBuf8							iCommandData;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    84
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    85
	TUint							iUsers;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    86
	TBool							iKnownToBearer;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    87
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    88
	CAvrcpPlayerInfoManager*  		iPlayerInfoManager;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    89
	};
20ac952a623c 201040_02
hgs
parents:
diff changeset
    90
20ac952a623c 201040_02
hgs
parents:
diff changeset
    91
#endif //AVRCPCOMMAND_H