remotecontrol/avrcp/avc/avcframe.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) 2004-2010 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 AVCFRAME_H
20ac952a623c 201040_02
hgs
parents:
diff changeset
    17
#define AVCFRAME_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
@released
20ac952a623c 201040_02
hgs
parents:
diff changeset
    22
@publishedPartner
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 <avcpanel.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    26
#include <e32base.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    27
20ac952a623c 201040_02
hgs
parents:
diff changeset
    28
static const TInt	KAVCFrameMaxLength			= 0x200;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    29
static const TInt	KAVCFrameHeaderLength		= 0x3;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    30
static const TInt	KAVCPassthroughFrameLength	= 0x5;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    31
static const TUint8	KAVCCommandTypeMask			= 0x0f;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    32
static const TUint8	KAVCResponseTypeMask		= 0x0f;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    33
static const TUint8	KAVCSubunitTypeMask			= 0xf8;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    34
static const TUint8	KAVCSubunitIDMask			= 0x07;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    35
static const TUint8	KAVCCommandMaxRangeLength	= 0x7;  
20ac952a623c 201040_02
hgs
parents:
diff changeset
    36
20ac952a623c 201040_02
hgs
parents:
diff changeset
    37
static const TUint KAVCVendorUniquePassthroughHeader = 7;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    38
static const TUint KAVCVendorIdBaseOffset = 5;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    39
static const TUint KAVCVendorIdLength = 3;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    40
20ac952a623c 201040_02
hgs
parents:
diff changeset
    41
static const TInt KAVCMaxVendorDependentPayload = KAVCFrameMaxLength-KAVCFrameHeaderLength-KAVCVendorIdLength;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    42
20ac952a623c 201040_02
hgs
parents:
diff changeset
    43
namespace AVC
20ac952a623c 201040_02
hgs
parents:
diff changeset
    44
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    45
	enum TFrameType
20ac952a623c 201040_02
hgs
parents:
diff changeset
    46
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    47
		ECommand,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    48
		EResponse
20ac952a623c 201040_02
hgs
parents:
diff changeset
    49
		};
20ac952a623c 201040_02
hgs
parents:
diff changeset
    50
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    51
	As per section 7.3.1, AV/C Digital Interface Command Set General Specification v4.0
20ac952a623c 201040_02
hgs
parents:
diff changeset
    52
	As per section 7.3.2, AV/C Digital Interface Command Set General Specification v4.0
20ac952a623c 201040_02
hgs
parents:
diff changeset
    53
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    54
	enum TCType
20ac952a623c 201040_02
hgs
parents:
diff changeset
    55
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    56
		EControl			= 0x0,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    57
		EStatus				= 0x1,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    58
		ESpecificEnquiry	= 0x2,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    59
		ENotify				= 0x3,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    60
		EGeneralEnquiry		= 0x4,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    61
		EReserved1			= 0x5,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    62
		EReserved2			= 0x6,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    63
		EReserved3			= 0x7,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    64
		ENotImplemented		= 0x8,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    65
		EAccepted			= 0x9,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    66
		ERejected			= 0xa,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    67
		EInTransition		= 0xb,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    68
		EImplemented		= 0xc,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    69
		EStable				= 0xc,	// NB: EImplemented and EStable are the same!
20ac952a623c 201040_02
hgs
parents:
diff changeset
    70
		EChanged			= 0xd,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    71
		EReserved4			= 0xe,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    72
		EInterim			= 0xf
20ac952a623c 201040_02
hgs
parents:
diff changeset
    73
		};
20ac952a623c 201040_02
hgs
parents:
diff changeset
    74
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    75
	As per sections 7.3.4.1 and 7.3.4.3, AV/C Digital Interface Command Set General Specification v4.0
20ac952a623c 201040_02
hgs
parents:
diff changeset
    76
20ac952a623c 201040_02
hgs
parents:
diff changeset
    77
	Extended subunit types should be coded as 0xXYY in this enumeration where
20ac952a623c 201040_02
hgs
parents:
diff changeset
    78
	X is the nth extension and YY is the type number.  e.g. 0x101 would correspond
20ac952a623c 201040_02
hgs
parents:
diff changeset
    79
	to example 3 in table 7.9 and 0x201 would correspond to example 4.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    80
	*/		
20ac952a623c 201040_02
hgs
parents:
diff changeset
    81
	enum TSubunitType
20ac952a623c 201040_02
hgs
parents:
diff changeset
    82
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    83
		EMonitor			= 0x00,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    84
		EAudio				= 0x01,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    85
		EPrinter			= 0x02,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    86
		EDisc				= 0x03,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    87
		ETape				= 0x04,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    88
		ETuner				= 0x05,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    89
		ECA					= 0x06,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    90
		ECamera				= 0x07,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    91
		EPanel				= 0x09,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    92
		EBulletinBoard		= 0x0a,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    93
		ECameraStorage		= 0x0b,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    94
		EVendorUnique		= 0x1c,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    95
		ETypeExtended1		= 0x1e,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    96
		EUnit				= 0x1f,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    97
		ETypeExtended2		= 0xff
20ac952a623c 201040_02
hgs
parents:
diff changeset
    98
		};
20ac952a623c 201040_02
hgs
parents:
diff changeset
    99
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   100
	As per sections 7.3.4.1 and 7.3.4.3, AV/C Digital Interface Command Set General Specification v4.0
20ac952a623c 201040_02
hgs
parents:
diff changeset
   101
20ac952a623c 201040_02
hgs
parents:
diff changeset
   102
	Extended subunit IDs should be coded as 0xXYY in this enumeration where
20ac952a623c 201040_02
hgs
parents:
diff changeset
   103
	X is the nth extension and YY is the ID number.  e.g. 0x102 would correspond
20ac952a623c 201040_02
hgs
parents:
diff changeset
   104
	to example 2 in table 7.10 and 0x201 would correspond to example 3.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   105
	*/	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   106
	enum TSubunitID
20ac952a623c 201040_02
hgs
parents:
diff changeset
   107
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   108
		EID0				= 0x00,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   109
		EID1				= 0x01,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   110
		EID2				= 0x02,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   111
		EID3				= 0x04,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   112
		EIDExtended1		= 0x05,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   113
		EIgnore				= 0x07,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   114
		EIDExtended2		= 0xff
20ac952a623c 201040_02
hgs
parents:
diff changeset
   115
		};
20ac952a623c 201040_02
hgs
parents:
diff changeset
   116
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   117
	As per section 10.1.2, AV/C Digital Interface Command Set General Specification v4.0
20ac952a623c 201040_02
hgs
parents:
diff changeset
   118
20ac952a623c 201040_02
hgs
parents:
diff changeset
   119
	AV/C unit source plug addresses
20ac952a623c 201040_02
hgs
parents:
diff changeset
   120
	*/	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   121
	enum TUnitInputPlug
20ac952a623c 201040_02
hgs
parents:
diff changeset
   122
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   123
		ESerialIsochronousInput0	= 0x00,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   124
		ESerialIsochronousInput1	= 0x01,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   125
		ESerialIsochronousInput2	= 0x02,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   126
		ESerialIsochronousInput3	= 0x03,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   127
		ESerialIsochronousInput4	= 0x04,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   128
		ESerialIsochronousInput5	= 0x05,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   129
		ESerialIsochronousInput6	= 0x06,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   130
		ESerialIsochronousInput7	= 0x07,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   131
		ESerialIsochronousInput8	= 0x08,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   132
		ESerialIsochronousInput9	= 0x09,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   133
		ESerialIsochronousInput10	= 0x0a,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   134
		ESerialIsochronousInput11	= 0x0b,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   135
		ESerialIsochronousInput12	= 0x0c,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   136
		ESerialIsochronousInput13	= 0x0d,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   137
		ESerialIsochronousInput14	= 0x0e,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   138
		ESerialIsochronousInput15	= 0x0f,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   139
		ESerialIsochronousInput16	= 0x10,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   140
		ESerialIsochronousInput17	= 0x11,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   141
		ESerialIsochronousInput18	= 0x12,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   142
		ESerialIsochronousInput19	= 0x13,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   143
		ESerialIsochronousInput20	= 0x14,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   144
		ESerialIsochronousInput21	= 0x15,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   145
		ESerialIsochronousInput22	= 0x16,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   146
		ESerialIsochronousInput23	= 0x17,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   147
		ESerialIsochronousInput24	= 0x18,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   148
		ESerialIsochronousInput25	= 0x19,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   149
		ESerialIsochronousInput26	= 0x1a,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   150
		ESerialIsochronousInput27	= 0x1b,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   151
		ESerialIsochronousInput28	= 0x1c,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   152
		ESerialIsochronousInput29	= 0x1d,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   153
		ESerialIsochronousInput30	= 0x1e,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   154
		EAnySerialIsochronousInput	= 0x7f,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   155
		EExternalInput0				= 0x80,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   156
		EExternalInput1				= 0x81,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   157
		EExternalInput2				= 0x82,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   158
		EExternalInput3				= 0x83,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   159
		EExternalInput4				= 0x84,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   160
		EExternalInput5				= 0x85,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   161
		EExternalInput6				= 0x86,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   162
		EExternalInput7				= 0x87,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   163
		EExternalInput8				= 0x88,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   164
		EExternalInput9				= 0x89,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   165
		EExternalInput10			= 0x8a,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   166
		EExternalInput11			= 0x8b,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   167
		EExternalInput12			= 0x8c,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   168
		EExternalInput13			= 0x8d,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   169
		EExternalInput14			= 0x8e,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   170
		EExternalInput15			= 0x8f,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   171
		EExternalInput16			= 0x90,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   172
		EExternalInput17			= 0x91,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   173
		EExternalInput18			= 0x92,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   174
		EExternalInput19			= 0x93,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   175
		EExternalInput20			= 0x94,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   176
		EExternalInput21			= 0x95,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   177
		EExternalInput22			= 0x96,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   178
		EExternalInput23			= 0x97,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   179
		EExternalInput24			= 0x98,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   180
		EExternalInput25			= 0x99,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   181
		EExternalInput26			= 0x9a,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   182
		EExternalInput27			= 0x9b,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   183
		EExternalInput28			= 0x9c,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   184
		EExternalInput29			= 0x9d,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   185
		EExternalInput30			= 0x9e,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   186
		ESerialAsynchronousInput0	= 0xa0,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   187
		ESerialAsynchronousInput1	= 0xa1,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   188
		ESerialAsynchronousInput2	= 0xa2,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   189
		ESerialAsynchronousInput3	= 0xa3,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   190
		ESerialAsynchronousInput4	= 0xa4,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   191
		ESerialAsynchronousInput5	= 0xa5,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   192
		ESerialAsynchronousInput6	= 0xa6,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   193
		ESerialAsynchronousInput7	= 0xa7,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   194
		ESerialAsynchronousInput8	= 0xa8,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   195
		ESerialAsynchronousInput9	= 0xa9,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   196
		ESerialAsynchronousInput10	= 0xaa,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   197
		ESerialAsynchronousInput11	= 0xab,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   198
		ESerialAsynchronousInput12	= 0xac,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   199
		ESerialAsynchronousInput13	= 0xad,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   200
		ESerialAsynchronousInput14	= 0xae,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   201
		ESerialAsynchronousInput15	= 0xaf,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   202
		ESerialAsynchronousInput16	= 0xb0,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   203
		ESerialAsynchronousInput17	= 0xb1,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   204
		ESerialAsynchronousInput18	= 0xb2,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   205
		ESerialAsynchronousInput19	= 0xb3,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   206
		ESerialAsynchronousInput20	= 0xb4,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   207
		ESerialAsynchronousInput21	= 0xb5,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   208
		ESerialAsynchronousInput22	= 0xb6,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   209
		ESerialAsynchronousInput23	= 0xb7,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   210
		ESerialAsynchronousInput24	= 0xb8,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   211
		ESerialAsynchronousInput25	= 0xb9,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   212
		ESerialAsynchronousInput26	= 0xba,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   213
		ESerialAsynchronousInput27	= 0xbb,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   214
		ESerialAsynchronousInput28	= 0xbc,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   215
		ESerialAsynchronousInput29	= 0xbd,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   216
		ESerialAsynchronousInput30	= 0xbe,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   217
		EAnySerialAsynchronousInput	= 0xbf,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   218
		EInvalidInput				= 0xfe,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   219
		EAnyExternalInput			= 0xff
20ac952a623c 201040_02
hgs
parents:
diff changeset
   220
		};
20ac952a623c 201040_02
hgs
parents:
diff changeset
   221
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   222
	As per section 10.1.2, AV/C Digital Interface Command Set General Specification v4.0
20ac952a623c 201040_02
hgs
parents:
diff changeset
   223
20ac952a623c 201040_02
hgs
parents:
diff changeset
   224
	AV/C unit destination plug addresses	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   225
	*/	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   226
	enum TUnitOutputPlug
20ac952a623c 201040_02
hgs
parents:
diff changeset
   227
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   228
		ESerialIsochronousOutput0	= 0x00,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   229
		ESerialIsochronousOutput1	= 0x01,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   230
		ESerialIsochronousOutput2	= 0x02,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   231
		ESerialIsochronousOutput3	= 0x03,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   232
		ESerialIsochronousOutput4	= 0x04,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   233
		ESerialIsochronousOutput5	= 0x05,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   234
		ESerialIsochronousOutput6	= 0x06,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   235
		ESerialIsochronousOutput7	= 0x07,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   236
		ESerialIsochronousOutput8	= 0x08,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   237
		ESerialIsochronousOutput9	= 0x09,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   238
		ESerialIsochronousOutput10	= 0x0a,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   239
		ESerialIsochronousOutput11	= 0x0b,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   240
		ESerialIsochronousOutput12	= 0x0c,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   241
		ESerialIsochronousOutput13	= 0x0d,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   242
		ESerialIsochronousOutput14	= 0x0e,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   243
		ESerialIsochronousOutput15	= 0x0f,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   244
		ESerialIsochronousOutput16	= 0x10,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   245
		ESerialIsochronousOutput17	= 0x11,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   246
		ESerialIsochronousOutput18	= 0x12,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   247
		ESerialIsochronousOutput19	= 0x13,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   248
		ESerialIsochronousOutput20	= 0x14,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   249
		ESerialIsochronousOutput21	= 0x15,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   250
		ESerialIsochronousOutput22	= 0x16,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   251
		ESerialIsochronousOutput23	= 0x17,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   252
		ESerialIsochronousOutput24	= 0x18,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   253
		ESerialIsochronousOutput25	= 0x19,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   254
		ESerialIsochronousOutput26	= 0x1a,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   255
		ESerialIsochronousOutput27	= 0x1b,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   256
		ESerialIsochronousOutput28	= 0x1c,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   257
		ESerialIsochronousOutput29	= 0x1d,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   258
		ESerialIsochronousOutput30	= 0x1e,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   259
		EAnySerialIsochronousOutput	= 0x7f,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   260
		EExternalOutput0			= 0x80,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   261
		EExternalOutput1			= 0x81,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   262
		EExternalOutput2			= 0x82,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   263
		EExternalOutput3			= 0x83,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   264
		EExternalOutput4			= 0x84,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   265
		EExternalOutput5			= 0x85,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   266
		EExternalOutput6			= 0x86,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   267
		EExternalOutput7			= 0x87,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   268
		EExternalOutput8			= 0x88,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   269
		EExternalOutput9			= 0x89,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   270
		EExternalOutput10			= 0x8a,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   271
		EExternalOutput11			= 0x8b,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   272
		EExternalOutput12			= 0x8c,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   273
		EExternalOutput13			= 0x8d,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   274
		EExternalOutput14			= 0x8e,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   275
		EExternalOutput15			= 0x8f,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   276
		EExternalOutput16			= 0x90,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   277
		EExternalOutput17			= 0x91,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   278
		EExternalOutput18			= 0x92,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   279
		EExternalOutput19			= 0x93,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   280
		EExternalOutput20			= 0x94,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   281
		EExternalOutput21			= 0x95,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   282
		EExternalOutput22			= 0x96,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   283
		EExternalOutput23			= 0x97,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   284
		EExternalOutput24			= 0x98,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   285
		EExternalOutput25			= 0x99,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   286
		EExternalOutput26			= 0x9a,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   287
		EExternalOutput27			= 0x9b,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   288
		EExternalOutput28			= 0x9c,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   289
		EExternalOutput29			= 0x9d,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   290
		EExternalOutput30			= 0x9e,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   291
		ESerialAsynchronousOutput0	= 0xa0,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   292
		ESerialAsynchronousOutput1	= 0xa1,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   293
		ESerialAsynchronousOutput2	= 0xa2,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   294
		ESerialAsynchronousOutput3	= 0xa3,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   295
		ESerialAsynchronousOutput4	= 0xa4,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   296
		ESerialAsynchronousOutput5	= 0xa5,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   297
		ESerialAsynchronousOutput6	= 0xa6,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   298
		ESerialAsynchronousOutput7	= 0xa7,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   299
		ESerialAsynchronousOutput8	= 0xa8,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   300
		ESerialAsynchronousOutput9	= 0xa9,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   301
		ESerialAsynchronousOutput10	= 0xaa,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   302
		ESerialAsynchronousOutput11	= 0xab,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   303
		ESerialAsynchronousOutput12	= 0xac,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   304
		ESerialAsynchronousOutput13	= 0xad,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   305
		ESerialAsynchronousOutput14	= 0xae,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   306
		ESerialAsynchronousOutput15	= 0xaf,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   307
		ESerialAsynchronousOutput16	= 0xb0,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   308
		ESerialAsynchronousOutput17	= 0xb1,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   309
		ESerialAsynchronousOutput18	= 0xb2,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   310
		ESerialAsynchronousOutput19	= 0xb3,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   311
		ESerialAsynchronousOutput20	= 0xb4,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   312
		ESerialAsynchronousOutput21	= 0xb5,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   313
		ESerialAsynchronousOutput22	= 0xb6,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   314
		ESerialAsynchronousOutput23	= 0xb7,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   315
		ESerialAsynchronousOutput24	= 0xb8,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   316
		ESerialAsynchronousOutput25	= 0xb9,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   317
		ESerialAsynchronousOutput26	= 0xba,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   318
		ESerialAsynchronousOutput27	= 0xbb,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   319
		ESerialAsynchronousOutput28	= 0xbc,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   320
		ESerialAsynchronousOutput29	= 0xbd,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   321
		ESerialAsynchronousOutput30	= 0xbe,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   322
		EAnySerialAsynchronousOutput= 0xbf,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   323
		EMultipleOutputs			= 0xfd,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   324
		EInvalidOutput				= 0xfe,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   325
		EAnyExternalOutput			= 0xff
20ac952a623c 201040_02
hgs
parents:
diff changeset
   326
		};
20ac952a623c 201040_02
hgs
parents:
diff changeset
   327
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   328
	As per section 10.2.3, AV/C Digital Interface Command Set General Specification v4.0
20ac952a623c 201040_02
hgs
parents:
diff changeset
   329
20ac952a623c 201040_02
hgs
parents:
diff changeset
   330
	AV/C subunit source plug addresses 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   331
	subunit does not have to implement any subunit plug if it does not send or receive any signals		
20ac952a623c 201040_02
hgs
parents:
diff changeset
   332
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   333
	enum TSubunitSourcePlug
20ac952a623c 201040_02
hgs
parents:
diff changeset
   334
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   335
		ESource0			= 0x00,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   336
		ESource1			= 0x01,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   337
		ESource2			= 0x02,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   338
		ESource3			= 0x03,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   339
		ESource4			= 0x04,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   340
		ESource5			= 0x05,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   341
		ESource6			= 0x06,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   342
		ESource7			= 0x07,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   343
		ESource8			= 0x08,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   344
		ESource9			= 0x09,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   345
		ESource10			= 0x0a,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   346
		ESource11			= 0x0b,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   347
		ESource12			= 0x0c,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   348
		ESource13			= 0x0d,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   349
		ESource14			= 0x0e,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   350
		ESource15			= 0x0f,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   351
		ESource16			= 0x10,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   352
		ESource17			= 0x11,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   353
		ESource18			= 0x12,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   354
		ESource19			= 0x13,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   355
		ESource20			= 0x14,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   356
		ESource21			= 0x15,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   357
		ESource22			= 0x16,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   358
		ESource23			= 0x17,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   359
		ESource24			= 0x18,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   360
		ESource25			= 0x19,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   361
		ESource26			= 0x1a,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   362
		ESource27			= 0x1b,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   363
		ESource28			= 0x1c,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   364
		ESource29			= 0x1d,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   365
		ESource30			= 0x1e,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   366
		EInvalidSource		= 0xfe,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   367
		EAnySource			= 0xff
20ac952a623c 201040_02
hgs
parents:
diff changeset
   368
		};
20ac952a623c 201040_02
hgs
parents:
diff changeset
   369
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   370
	As per section 10.2.3, AV/C Digital Interface Command Set General Specification v4.0
20ac952a623c 201040_02
hgs
parents:
diff changeset
   371
20ac952a623c 201040_02
hgs
parents:
diff changeset
   372
	AV/C subunit destination plug		
20ac952a623c 201040_02
hgs
parents:
diff changeset
   373
	subunit does not have to implement any subunit plug if it does not send or receive any signals	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   374
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   375
	enum TSubunitDestinationPlug
20ac952a623c 201040_02
hgs
parents:
diff changeset
   376
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   377
		EDestination0			= 0x00,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   378
		EDestination1			= 0x01,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   379
		EDestination2			= 0x02,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   380
		EDestination3			= 0x03,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   381
		EDestination4			= 0x04,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   382
		EDestination5			= 0x05,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   383
		EDestination6			= 0x06,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   384
		EDestination7			= 0x07,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   385
		EDestination8			= 0x08,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   386
		EDestination9			= 0x09,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   387
		EDestination10			= 0x0a,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   388
		EDestination11			= 0x0b,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   389
		EDestination12			= 0x0c,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   390
		EDestination13			= 0x0d,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   391
		EDestination14			= 0x0e,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   392
		EDestination15			= 0x0f,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   393
		EDestination16			= 0x10,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   394
		EDestination17			= 0x11,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   395
		EDestination18			= 0x12,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   396
		EDestination19			= 0x13,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   397
		EDestination20			= 0x14,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   398
		EDestination21			= 0x15,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   399
		EDestination22			= 0x16,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   400
		EDestination23			= 0x17,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   401
		EDestination24			= 0x18,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   402
		EDestination25			= 0x19,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   403
		EDestination26			= 0x1a,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   404
		EDestination27			= 0x1b,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   405
		EDestination28			= 0x1c,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   406
		EDestination29			= 0x1d,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   407
		EDestination30			= 0x1e,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   408
		EMultipleDestinations	= 0xfe,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   409
		EInvalidDestination		= 0xfe,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   410
		EAnyDestination			= 0xff
20ac952a623c 201040_02
hgs
parents:
diff changeset
   411
		};
20ac952a623c 201040_02
hgs
parents:
diff changeset
   412
	/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   413
	As per sections 11 and 12, AV/C Digital Interface Command Set General Specification v4.0
20ac952a623c 201040_02
hgs
parents:
diff changeset
   414
	Other commands are defined by the various subunit specifications		
20ac952a623c 201040_02
hgs
parents:
diff changeset
   415
	*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   416
	enum TOpcode
20ac952a623c 201040_02
hgs
parents:
diff changeset
   417
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   418
		EPower						= 0xb2,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   419
		EUnitInfo					= 0x30,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   420
		ESubunitInfo				= 0x31,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   421
		EReserve					= 0x01,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   422
		EVersion					= 0xb0,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   423
		EVendorDependent			= 0x00,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   424
		EPlugInfo					= 0x02,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   425
		EChannelUsage				= 0x12, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   426
		EConnect					= 0x24,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   427
		EConnectAV					= 0x20,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   428
		EConnections				= 0x22,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   429
		EDigitalInput				= 0x11,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   430
		EDigitalOutput				= 0x10,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   431
		EDisconnect					= 0x25,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   432
		EDisconnectAV				= 0x21,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   433
		EInputPlugSignalFormat		= 0x19,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   434
		EOutputPlugSignalFormat		= 0x18,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   435
		EPassThrough				= 0x7c
20ac952a623c 201040_02
hgs
parents:
diff changeset
   436
		};
20ac952a623c 201040_02
hgs
parents:
diff changeset
   437
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   438
	enum TPacketType
20ac952a623c 201040_02
hgs
parents:
diff changeset
   439
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   440
		EASingle      = 0x00,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   441
		EStart        = 0x01,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   442
		EContinue     = 0x10,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   443
		EEnd          = 0x11,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   444
		};
20ac952a623c 201040_02
hgs
parents:
diff changeset
   445
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   446
		typedef TUint TAVCVendorId;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   447
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   448
20ac952a623c 201040_02
hgs
parents:
diff changeset
   449
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   450
AVC frame creation and utilities.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   451
@released
20ac952a623c 201040_02
hgs
parents:
diff changeset
   452
@publishedPartner
20ac952a623c 201040_02
hgs
parents:
diff changeset
   453
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   454
NONSHARABLE_CLASS(CAVCFrame) : public CBase
20ac952a623c 201040_02
hgs
parents:
diff changeset
   455
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   456
public:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   457
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   458
	// Construction / destruction
20ac952a623c 201040_02
hgs
parents:
diff changeset
   459
	// TBH this acts as a factory now and could (eventually!) return a derived class
20ac952a623c 201040_02
hgs
parents:
diff changeset
   460
	// the caller could check by calling Opcode
20ac952a623c 201040_02
hgs
parents:
diff changeset
   461
	// at the moment we are going to use the derived classes just for outbound responses
20ac952a623c 201040_02
hgs
parents:
diff changeset
   462
	IMPORT_C static CAVCFrame* NewL(AVC::TFrameType aFrameType, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   463
		AVC::TCType aType, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   464
		AVC::TSubunitType aSubunitType, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   465
		AVC::TSubunitID aSubunitID);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   466
		
20ac952a623c 201040_02
hgs
parents:
diff changeset
   467
	IMPORT_C static CAVCFrame* NewL(const TDesC8& aBuffer, AVC::TFrameType aType);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   468
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   469
	IMPORT_C virtual ~CAVCFrame();
20ac952a623c 201040_02
hgs
parents:
diff changeset
   470
20ac952a623c 201040_02
hgs
parents:
diff changeset
   471
	// Utility
20ac952a623c 201040_02
hgs
parents:
diff changeset
   472
	IMPORT_C AVC::TFrameType FrameType() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   473
	IMPORT_C static AVC::TFrameType FrameType(const TDesC8& aFrame);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   474
	IMPORT_C void SetFrameType(AVC::TFrameType aFrameType);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   475
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   476
	IMPORT_C AVC::TCType Type() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   477
	IMPORT_C void SetType(AVC::TCType aType);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   478
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   479
	IMPORT_C AVC::TSubunitType SubunitType() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   480
	IMPORT_C AVC::TSubunitID SubunitID() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   481
	IMPORT_C TUint8 Opcode() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   482
	IMPORT_C TInt OperationId(TUint8& aOpId) const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   483
	IMPORT_C TInt ButtonAct(AVCPanel::TButtonAction& aButtonAction) const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   484
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   485
	IMPORT_C const TUint8& operator[](TInt aIndex) const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   486
	IMPORT_C const TDesC8& Data() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   487
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   488
	IMPORT_C void Append(const TDesC8& aDes);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   489
	IMPORT_C void Append(TChar aChar);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   490
	IMPORT_C TInt DataLength() const;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   491
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   492
	IMPORT_C static AVC::TOpcode OpcodeL(const TDesC8& aBuffer);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   493
20ac952a623c 201040_02
hgs
parents:
diff changeset
   494
private:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   495
	CAVCFrame(AVC::TFrameType aFrameType);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   496
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   497
	void ConstructL(AVC::TCType aType, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   498
		AVC::TSubunitType aSubunitType, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   499
		AVC::TSubunitID aSubunitID);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   500
	void ConstructL(const TDesC8& aBuffer);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   501
	static void FindExtensionL(const TDesC8& aBuffer, TInt& aSubunitTypeExtensionBytes, TInt& aSubunitIDExtensionBytes);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   502
20ac952a623c 201040_02
hgs
parents:
diff changeset
   503
private:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   504
	RBuf8			iBuffer;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   505
20ac952a623c 201040_02
hgs
parents:
diff changeset
   506
	AVC::TFrameType	iFrameType;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   507
	TInt			iSubunitTypeExtensionBytes;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   508
	TInt			iSubunitIDExtensionBytes;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   509
	};
20ac952a623c 201040_02
hgs
parents:
diff changeset
   510
20ac952a623c 201040_02
hgs
parents:
diff changeset
   511
20ac952a623c 201040_02
hgs
parents:
diff changeset
   512
// Factory pattern stuff - these are useful to do donkey work,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   513
// but have existing clients treat them as the base class
20ac952a623c 201040_02
hgs
parents:
diff changeset
   514
20ac952a623c 201040_02
hgs
parents:
diff changeset
   515
class CAVCVendorDependentResponse			// codescanner::missingcclass
20ac952a623c 201040_02
hgs
parents:
diff changeset
   516
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   517
public:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   518
	IMPORT_C static CAVCFrame* NewL(TUint aVendorId);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   519
	};
20ac952a623c 201040_02
hgs
parents:
diff changeset
   520
20ac952a623c 201040_02
hgs
parents:
diff changeset
   521
class CAVCPassthroughCommand				// codescanner::missingcclass
20ac952a623c 201040_02
hgs
parents:
diff changeset
   522
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   523
public:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   524
	};
20ac952a623c 201040_02
hgs
parents:
diff changeset
   525
20ac952a623c 201040_02
hgs
parents:
diff changeset
   526
// likely not have newl because dont allocate on parse pattern
20ac952a623c 201040_02
hgs
parents:
diff changeset
   527
class CAVCVendorDependentCommand			// codescanner::missingcclass
20ac952a623c 201040_02
hgs
parents:
diff changeset
   528
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   529
public:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   530
	IMPORT_C static TPtrC8 GetPayloadAndVID(const CAVCFrame& aFrame, TUint& aVID);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   531
	};
20ac952a623c 201040_02
hgs
parents:
diff changeset
   532
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   533
// likely not have newl because dont allocate on parse pattern
20ac952a623c 201040_02
hgs
parents:
diff changeset
   534
class CAVCVendorUniquePassthroughCommand	// codescanner::missingcclass
20ac952a623c 201040_02
hgs
parents:
diff changeset
   535
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   536
public:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   537
	IMPORT_C static TPtrC8 GetPayloadAndVID(const CAVCFrame& aFrame, TUint& aVID);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   538
	};
20ac952a623c 201040_02
hgs
parents:
diff changeset
   539
20ac952a623c 201040_02
hgs
parents:
diff changeset
   540
#endif // AVCFRAME_H