bluetoothmgmt/bluetoothclientlib/inc/avctptypes.h
author hgs
Thu, 23 Sep 2010 17:06:47 +0300
changeset 48 22de2e391156
parent 0 29b1cd4cb562
permissions -rw-r--r--
201036

// Copyright (c) 2009 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 AVCTPTYPES_H
#define AVCTPTYPES_H

#include <bt_sock.h>

//
//
// AVCTP
//
//

/**
The Symbian Avctp namespace
@internalTechnology
*/
namespace SymbianAvctp
{
	
const static TInt KErrBase = -6421;
const static TInt KErrBadAddress = KErrBase;
const static TInt KErrPacketTooShort = KErrBase - 1;
const static TInt KErrMalformedPacketFromRemote = KErrBase - 2;
const static TInt KErrUnknownPacketType = KErrBase - 3;
const static TInt KErrRemoteDeviceDecreasedMtuDuringFragmentation = KErrBase - 4;
const static TInt KErrProtocolAlreadyBound = KErrBase - 5;
const static TInt KErrRepeatConnectionAttempt = KErrBase - 6;
const static TInt KErrSynchronousMuxerError = KErrBase - 7;
const static TInt KErrInvalidTransactionLabel = KErrBase - 8;
const static TInt KErrSapAlreadyBound = KErrBase - 9;
const static TInt KErrRemoteSentTooManyIpidSdus = KErrBase - 10;
const static TInt KErrDeniedRemoteAttemptedReconnection = KErrBase - 11;
const static TInt KErrFirstChannelNotAttached = KErrBase - 12;
const static TInt KErrSecondChannelNotAttached = KErrBase - 13;
const static TInt KErrMuxerBlocked = KErrBase - 14;
const static TInt KErrMuxerShutDown = KErrBase - 15;
const static TInt KErrMuxerNotFound = KErrBase - 16;
const static TInt KErrInvalidChannel = KErrBase - 17;

// max AVCTP error is -6421 - 28

/**
The Avctp Profile ID
*/
typedef TUint16 TPid;

const static TPid KAvrcpPid = 0x110e;
const static TPid KUndefinedPid = 0x0000;	

/**
AVCTP Transaction Label
Must be < KMaxTransactionLabel.
*/
typedef TUint8 TTransactionLabel;

/**
The maximum AVCTP Transaction Label
All Transaction Labels must be < this value.
*/
const static TUint8 KMaxTransactionLabel	= 16;
							        
/**
  AVCTP Message Types
*/
enum TMessageType
	{
	EUndefined	= 0x0,		/*! Unknown */
	ECommand	= 0x1,		/*! AVCTP command */
	EResponse	= 0x2		/*! AVCTP response */
	};										        					        
		
IMPORT_C void AssertValidTransactionLabel(TTransactionLabel aLabel);
IMPORT_C TBool IsValidTransactionLabel(TTransactionLabel aLabel);
					
} // end of namespace SymbianAvctp

/**
AVCTP Socket Address.

Use this class to specify a local or remote AVCTP connection end-point,
that is: the BT device address and PID.
@internalTechnology
*/
NONSHARABLE_CLASS(TAvctpSockAddr) : public TBTSockAddr
	{
public:
	IMPORT_C TAvctpSockAddr();
	IMPORT_C TAvctpSockAddr(const TSockAddr& aSockAddr);
	IMPORT_C static TAvctpSockAddr& Cast(const TSockAddr& aSockAddr);
	IMPORT_C SymbianAvctp::TPid Pid() const;
	IMPORT_C void SetPid(SymbianAvctp::TPid aPid);
	IMPORT_C TInt Channel() const;
	IMPORT_C void SetChannel(TInt aChannel);
	};

const TInt KAvctpBaseOutboundMTU = 0;
const TInt KAvctpExtendOutboundMTU = 1;

#endif // AVCTPTYPES_H