remotecontrol/avrcp/remconbeareravrcp/inc/browsecommand.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 BROWSECOMMAND_H
20ac952a623c 201040_02
hgs
parents:
diff changeset
    17
#define BROWSECOMMAND_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 <avctpservices.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    26
#include <e32base.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    27
#include <remcon/remconbearerplugin.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    28
#include "avrcpcommand.h"
20ac952a623c 201040_02
hgs
parents:
diff changeset
    29
#include "avrcpplayerinfomanager.h"
20ac952a623c 201040_02
hgs
parents:
diff changeset
    30
20ac952a623c 201040_02
hgs
parents:
diff changeset
    31
const TInt KMinLengthSetBrowsedPlayerPdu = 2; // PDU 0x70
20ac952a623c 201040_02
hgs
parents:
diff changeset
    32
const TInt KMinLengthGetFolderItemsPdu = 10; // PDU 0x71
20ac952a623c 201040_02
hgs
parents:
diff changeset
    33
const TInt KMinLengthChangePathPdu = 3; // PDU 0x72
20ac952a623c 201040_02
hgs
parents:
diff changeset
    34
const TInt KMinLengthGetItemAttributesPdu = 12; // PDU 0x73
20ac952a623c 201040_02
hgs
parents:
diff changeset
    35
const TInt KMinLengthSearchPdu = 4; // PDU 0x80
20ac952a623c 201040_02
hgs
parents:
diff changeset
    36
const TInt KMinLengthGeneralReject = 4; // PDU 0xa0
20ac952a623c 201040_02
hgs
parents:
diff changeset
    37
20ac952a623c 201040_02
hgs
parents:
diff changeset
    38
class CRcpRemoteDevice;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    39
class MRemConBearerObserver;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    40
NONSHARABLE_CLASS(CBrowseCommand) : public CAvrcpCommand
20ac952a623c 201040_02
hgs
parents:
diff changeset
    41
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    42
public:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    43
	static CBrowseCommand* NewL(const TDesC8& aMessageInformation, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    44
		TUint aRemConId,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    45
		SymbianAvctp::TTransactionLabel aTransLabel, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    46
		const TBTDevAddr& aAddr,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    47
		CAvrcpPlayerInfoManager* aPlayerInfoManager);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    48
			
20ac952a623c 201040_02
hgs
parents:
diff changeset
    49
	// Called from handlers
20ac952a623c 201040_02
hgs
parents:
diff changeset
    50
	TInt ProcessIncomingCommandL(TInt aMaxResponse);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    51
	void ProcessOutgoingResponse(RBuf8& aCommandData);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    52
	void SetResult(TInt aErr);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    53
	const TDesC8& CommandData() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    54
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    55
	const TDesC8& Data() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    56
	virtual SymbianAvctp::TMessageType MessageType() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    57
20ac952a623c 201040_02
hgs
parents:
diff changeset
    58
private:		
20ac952a623c 201040_02
hgs
parents:
diff changeset
    59
	CBrowseCommand(TUint aRemConId,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    60
		SymbianAvctp::TTransactionLabel aTransLabel, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    61
		const TBTDevAddr& aAddr,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    62
		CAvrcpPlayerInfoManager* aPlayerInfoManager);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    63
		
20ac952a623c 201040_02
hgs
parents:
diff changeset
    64
	~CBrowseCommand();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    65
	void ConstructL(const TDesC8& aMessageInformation);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    66
		
20ac952a623c 201040_02
hgs
parents:
diff changeset
    67
	TInt HandleSetBrowsedPlayer();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    68
	TInt HandleGetFolderItems();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    69
	TInt HandleChangePath();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    70
	TInt HandleGetItemAttributes();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    71
	TInt HandleSearch();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    72
	TInt HandleUnknownPdu();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    73
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    74
	TInt AppendIncomingPayload(const TPtrC8& aPayload);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    75
	void GenerateRejectPayloadL(TInt aErr);	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    76
			
20ac952a623c 201040_02
hgs
parents:
diff changeset
    77
private:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    78
	RBuf8							iFrame;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    79
	TInt 							iMaxResponse;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    80
	};
20ac952a623c 201040_02
hgs
parents:
diff changeset
    81
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    82
#endif //BROWSECOMMAND_H