williamr@2
|
1 |
// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
|
williamr@2
|
2 |
// All rights reserved.
|
williamr@2
|
3 |
// This component and the accompanying materials are made available
|
williamr@4
|
4 |
// under the terms of "Eclipse Public License v1.0"
|
williamr@2
|
5 |
// which accompanies this distribution, and is available
|
williamr@4
|
6 |
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
williamr@2
|
7 |
//
|
williamr@2
|
8 |
// Initial Contributors:
|
williamr@2
|
9 |
// Nokia Corporation - initial contribution.
|
williamr@2
|
10 |
//
|
williamr@2
|
11 |
// Contributors:
|
williamr@2
|
12 |
//
|
williamr@2
|
13 |
// Description:
|
williamr@2
|
14 |
//
|
williamr@2
|
15 |
|
williamr@2
|
16 |
/**
|
williamr@2
|
17 |
@file
|
williamr@2
|
18 |
@publishedAll
|
williamr@2
|
19 |
@released
|
williamr@2
|
20 |
*/
|
williamr@2
|
21 |
|
williamr@2
|
22 |
#ifndef REMCONCOREAPI_H
|
williamr@2
|
23 |
#define REMCONCOREAPI_H
|
williamr@2
|
24 |
|
williamr@2
|
25 |
#include <e32base.h>
|
williamr@2
|
26 |
|
williamr@2
|
27 |
/**
|
williamr@2
|
28 |
The operation-specific data field for operations in the Core API has the
|
williamr@2
|
29 |
following format.
|
williamr@2
|
30 |
For commands, there is 1 byte containing the button action. There is optional
|
williamr@2
|
31 |
further data, depending on the operation itself. For instance, Play carries an
|
williamr@2
|
32 |
extra 4 bytes of 'play speed' information. Hence the operation-specific data
|
williamr@2
|
33 |
for a Play command is 5 bytes long.
|
williamr@2
|
34 |
For responses, there are 4 bytes of 'results' data. This is followed by
|
williamr@2
|
35 |
whatever operation-specific data was attached to the originating command (so
|
williamr@2
|
36 |
that the client can identify if necessary what the response is a response to).
|
williamr@2
|
37 |
Hence the operation-specific data for a Play response is 9 bytes long.
|
williamr@2
|
38 |
*/
|
williamr@2
|
39 |
|
williamr@2
|
40 |
/** A buffer size for Core API operations' operation-specific data. */
|
williamr@2
|
41 |
const TUint KRemConCoreApiMaxOperationSpecificDataSize = 16;
|
williamr@2
|
42 |
|
williamr@2
|
43 |
/** Length of the results data in bytes. */
|
williamr@2
|
44 |
const TUint KRemConCoreApiResultDataLength = 4;
|
williamr@2
|
45 |
|
williamr@2
|
46 |
/** String of same length as result data.*/
|
williamr@2
|
47 |
_LIT8(KRemConCoreApiResultPad, " ");
|
williamr@2
|
48 |
|
williamr@2
|
49 |
/** Offset for operation data for commands */
|
williamr@2
|
50 |
const TUint KRemConCoreApiCommandDataOffset = 0;
|
williamr@2
|
51 |
|
williamr@2
|
52 |
/** Offset for operation data for responses */
|
williamr@2
|
53 |
const TUint KRemConCoreApiResponseDataOffset = KRemConCoreApiResultDataLength;
|
williamr@2
|
54 |
|
williamr@2
|
55 |
/** Offset of button data from beginning of data section.
|
williamr@2
|
56 |
ie the offset of the data for commands is KRemConCoreApiCommandDataOffset
|
williamr@2
|
57 |
+KRemConCoreApiButtonDataOffset. The offset of the button data for
|
williamr@2
|
58 |
responses is KRemConCoreApiResponseDataOffset+KRemConCoreApiButtonDataOffset.
|
williamr@2
|
59 |
*/
|
williamr@2
|
60 |
const TUint KRemConCoreApiButtonDataOffset = 0;
|
williamr@2
|
61 |
|
williamr@2
|
62 |
/** Length of the button action data in bytes. */
|
williamr@2
|
63 |
const TUint KRemConCoreApiButtonDataLength = 1;
|
williamr@2
|
64 |
|
williamr@2
|
65 |
/** Button actions. */
|
williamr@2
|
66 |
enum TRemConCoreApiButtonAction
|
williamr@2
|
67 |
{
|
williamr@2
|
68 |
/** A button has been pressed. */
|
williamr@2
|
69 |
ERemConCoreApiButtonPress = 0,
|
williamr@2
|
70 |
|
williamr@2
|
71 |
/** A button has been released. */
|
williamr@2
|
72 |
ERemConCoreApiButtonRelease = 1,
|
williamr@2
|
73 |
|
williamr@2
|
74 |
/** A button has been clicked. */
|
williamr@2
|
75 |
ERemConCoreApiButtonClick = 2,
|
williamr@2
|
76 |
};
|
williamr@2
|
77 |
|
williamr@2
|
78 |
/** Button press refresh interval.
|
williamr@2
|
79 |
If the client wants to emulate a button being held down, they send a press.
|
williamr@2
|
80 |
The client must re-post the press within this time, and continue to re-post
|
williamr@2
|
81 |
at least this frequently, otherwise the bearer may assume that the hold has
|
williamr@2
|
82 |
finished. The client may finish the hold by sending a release.*/
|
williamr@2
|
83 |
const TUint KRemConCoreApiPressRefreshInterval = 1000000;
|
williamr@2
|
84 |
|
williamr@2
|
85 |
/**
|
williamr@2
|
86 |
The UID identifying this outer-layer RemCon interface.
|
williamr@2
|
87 |
*/
|
williamr@2
|
88 |
const TInt KRemConCoreApiUid = 0x10205E60;
|
williamr@2
|
89 |
|
williamr@2
|
90 |
/**
|
williamr@2
|
91 |
Operation ids belonging to the Core API.
|
williamr@2
|
92 |
These values are not numbered sequentially as a facility to AVRCP, which may
|
williamr@2
|
93 |
assume that they are numbered the same as the operation IDs in the AV/C Panel
|
williamr@2
|
94 |
Subunit Specification 1.21 Table 9.21.
|
williamr@2
|
95 |
*/
|
williamr@2
|
96 |
enum TRemConCoreApiOperationId
|
williamr@2
|
97 |
{
|
williamr@2
|
98 |
/** Select. */
|
williamr@2
|
99 |
ERemConCoreApiSelect = 0x00,
|
williamr@2
|
100 |
/** Up. */
|
williamr@2
|
101 |
ERemConCoreApiUp = 0x01,
|
williamr@2
|
102 |
/** Down. */
|
williamr@2
|
103 |
ERemConCoreApiDown = 0x02,
|
williamr@2
|
104 |
/** Left. */
|
williamr@2
|
105 |
ERemConCoreApiLeft = 0x03,
|
williamr@2
|
106 |
/** Right. */
|
williamr@2
|
107 |
ERemConCoreApiRight = 0x04,
|
williamr@2
|
108 |
/** RightUp. */
|
williamr@2
|
109 |
ERemConCoreApiRightUp = 0x05,
|
williamr@2
|
110 |
/** RightDown. */
|
williamr@2
|
111 |
ERemConCoreApiRightDown = 0x06,
|
williamr@2
|
112 |
/** LeftUp. */
|
williamr@2
|
113 |
ERemConCoreApiLeftUp = 0x07,
|
williamr@2
|
114 |
/** LeftDown. */
|
williamr@2
|
115 |
ERemConCoreApiLeftDown = 0x08,
|
williamr@2
|
116 |
/** RootMenu. */
|
williamr@2
|
117 |
ERemConCoreApiRootMenu = 0x09,
|
williamr@2
|
118 |
/** SetupMenu. */
|
williamr@2
|
119 |
ERemConCoreApiSetupMenu = 0x0a,
|
williamr@2
|
120 |
/** ContentsMenu. */
|
williamr@2
|
121 |
ERemConCoreApiContentsMenu = 0x0b,
|
williamr@2
|
122 |
/** FavoriteMenu. */
|
williamr@2
|
123 |
ERemConCoreApiFavoriteMenu = 0x0c,
|
williamr@2
|
124 |
/** Exit. */
|
williamr@2
|
125 |
ERemConCoreApiExit = 0x0d,
|
williamr@2
|
126 |
/** 0. */
|
williamr@2
|
127 |
ERemConCoreApi0 = 0x20,
|
williamr@2
|
128 |
/** 1. */
|
williamr@2
|
129 |
ERemConCoreApi1 = 0x21,
|
williamr@2
|
130 |
/** 2. */
|
williamr@2
|
131 |
ERemConCoreApi2 = 0x22,
|
williamr@2
|
132 |
/** 3. */
|
williamr@2
|
133 |
ERemConCoreApi3 = 0x23,
|
williamr@2
|
134 |
/** 4. */
|
williamr@2
|
135 |
ERemConCoreApi4 = 0x24,
|
williamr@2
|
136 |
/** 5. */
|
williamr@2
|
137 |
ERemConCoreApi5 = 0x25,
|
williamr@2
|
138 |
/** 6. */
|
williamr@2
|
139 |
ERemConCoreApi6 = 0x26,
|
williamr@2
|
140 |
/** 7. */
|
williamr@2
|
141 |
ERemConCoreApi7 = 0x27,
|
williamr@2
|
142 |
/** 8. */
|
williamr@2
|
143 |
ERemConCoreApi8 = 0x28,
|
williamr@2
|
144 |
/** 9. */
|
williamr@2
|
145 |
ERemConCoreApi9 = 0x29,
|
williamr@2
|
146 |
/** Dot. */
|
williamr@2
|
147 |
ERemConCoreApiDot = 0x2a,
|
williamr@2
|
148 |
/** Enter. */
|
williamr@2
|
149 |
ERemConCoreApiEnter = 0x2b,
|
williamr@2
|
150 |
/** Clear. */
|
williamr@2
|
151 |
ERemConCoreApiClear = 0x2c,
|
williamr@2
|
152 |
/** ChannelUp. */
|
williamr@2
|
153 |
ERemConCoreApiChannelUp = 0x30,
|
williamr@2
|
154 |
/** ChannelDown. */
|
williamr@2
|
155 |
ERemConCoreApiChannelDown = 0x31,
|
williamr@2
|
156 |
/** PreviousChannel. */
|
williamr@2
|
157 |
ERemConCoreApiPreviousChannel = 0x32,
|
williamr@2
|
158 |
/** SoundSelect. */
|
williamr@2
|
159 |
ERemConCoreApiSoundSelect = 0x33,
|
williamr@2
|
160 |
/** InputSelect. */
|
williamr@2
|
161 |
ERemConCoreApiInputSelect = 0x34,
|
williamr@2
|
162 |
/** DisplayInformation. */
|
williamr@2
|
163 |
ERemConCoreApiDisplayInformation = 0x35,
|
williamr@2
|
164 |
/** Help. */
|
williamr@2
|
165 |
ERemConCoreApiHelp = 0x36,
|
williamr@2
|
166 |
/** PageUp. */
|
williamr@2
|
167 |
ERemConCoreApiPageUp = 0x37,
|
williamr@2
|
168 |
/** PageDown. */
|
williamr@2
|
169 |
ERemConCoreApiPageDown = 0x38,
|
williamr@2
|
170 |
/** Power. */
|
williamr@2
|
171 |
ERemConCoreApiPower = 0x40,
|
williamr@2
|
172 |
/** VolumeUp. */
|
williamr@2
|
173 |
ERemConCoreApiVolumeUp = 0x41,
|
williamr@2
|
174 |
/** VolumeDown. */
|
williamr@2
|
175 |
ERemConCoreApiVolumeDown = 0x42,
|
williamr@2
|
176 |
/** Mute. */
|
williamr@2
|
177 |
ERemConCoreApiMute = 0x43,
|
williamr@2
|
178 |
/** Play. */
|
williamr@2
|
179 |
ERemConCoreApiPlay = 0x44,
|
williamr@2
|
180 |
/** Stop. */
|
williamr@2
|
181 |
ERemConCoreApiStop = 0x45,
|
williamr@2
|
182 |
/** Pause. */
|
williamr@2
|
183 |
ERemConCoreApiPause = 0x46,
|
williamr@2
|
184 |
/** Record. */
|
williamr@2
|
185 |
ERemConCoreApiRecord = 0x47,
|
williamr@2
|
186 |
/** Rewind. */
|
williamr@2
|
187 |
ERemConCoreApiRewind = 0x48,
|
williamr@2
|
188 |
/** FastForward. */
|
williamr@2
|
189 |
ERemConCoreApiFastForward = 0x49,
|
williamr@2
|
190 |
/** Eject. */
|
williamr@2
|
191 |
ERemConCoreApiEject = 0x4a,
|
williamr@2
|
192 |
/** Forward. */
|
williamr@2
|
193 |
ERemConCoreApiForward = 0x4b,
|
williamr@2
|
194 |
/** Backward. */
|
williamr@2
|
195 |
ERemConCoreApiBackward = 0x4c,
|
williamr@2
|
196 |
/** Angle. */
|
williamr@2
|
197 |
ERemConCoreApiAngle = 0x50,
|
williamr@2
|
198 |
/** Subpicture. */
|
williamr@2
|
199 |
ERemConCoreApiSubpicture = 0x51,
|
williamr@2
|
200 |
/** PausePlayFunction. */
|
williamr@2
|
201 |
ERemConCoreApiPausePlayFunction = 0x61,
|
williamr@2
|
202 |
/** RestoreVolumeFunction. */
|
williamr@2
|
203 |
ERemConCoreApiRestoreVolumeFunction = 0x66,
|
williamr@2
|
204 |
/** TuneFunction. */
|
williamr@2
|
205 |
ERemConCoreApiTuneFunction = 0x67,
|
williamr@2
|
206 |
/** SelectDiskFunction. */
|
williamr@2
|
207 |
ERemConCoreApiSelectDiskFunction = 0x68,
|
williamr@2
|
208 |
/** SelectAvInputFunction. */
|
williamr@2
|
209 |
ERemConCoreApiSelectAvInputFunction = 0x69,
|
williamr@2
|
210 |
/** SelectAudioInputFunction. */
|
williamr@2
|
211 |
ERemConCoreApiSelectAudioInputFunction = 0x6a,
|
williamr@2
|
212 |
/** F1. */
|
williamr@2
|
213 |
ERemConCoreApiF1 = 0x71,
|
williamr@2
|
214 |
/** F2. */
|
williamr@2
|
215 |
ERemConCoreApiF2 = 0x72,
|
williamr@2
|
216 |
/** F3. */
|
williamr@2
|
217 |
ERemConCoreApiF3 = 0x73,
|
williamr@2
|
218 |
/** F4. */
|
williamr@2
|
219 |
ERemConCoreApiF4 = 0x74,
|
williamr@2
|
220 |
/** F5. */
|
williamr@2
|
221 |
ERemConCoreApiF5 = 0x75,
|
williamr@2
|
222 |
|
williamr@2
|
223 |
/* No-operation */
|
williamr@2
|
224 |
ENop = 0x76,
|
williamr@2
|
225 |
|
williamr@2
|
226 |
/**
|
williamr@2
|
227 |
* This enum is created for internal purpose to have the largest value in TRemConCoreApiOperationId.
|
williamr@2
|
228 |
* If anyone needs an value for no-operation then we suggest to use 'ENop' instead.
|
williamr@2
|
229 |
* If new enums values are added in TRemConCoreApiOperationId then value of ELargestOperationId
|
williamr@2
|
230 |
* may change resulting in a BC break.
|
williamr@2
|
231 |
* */
|
williamr@2
|
232 |
ELargestOperationId = 0x76,
|
williamr@2
|
233 |
};
|
williamr@2
|
234 |
|
williamr@2
|
235 |
/** Speeds associated with Play APIs.
|
williamr@2
|
236 |
These values are not numbered sequentially as a facility to AVRCP, which may
|
williamr@2
|
237 |
assume that they are numbered the same as the playback speeds in the AV/C
|
williamr@2
|
238 |
Panel Subunit Specification 1.21 Table 9.26.
|
williamr@2
|
239 |
*/
|
williamr@2
|
240 |
enum TRemConCoreApiPlaybackSpeed
|
williamr@2
|
241 |
{
|
williamr@2
|
242 |
/** NextFrame. */
|
williamr@2
|
243 |
ERemConCoreApiPlaybackSpeedNextFrame = 0x30,
|
williamr@2
|
244 |
/** SlowestForward. */
|
williamr@2
|
245 |
ERemConCoreApiPlaybackSpeedSlowestForward = 0x31,
|
williamr@2
|
246 |
/** SlowForward6. */
|
williamr@2
|
247 |
ERemConCoreApiPlaybackSpeedSlowForward6 = 0x32,
|
williamr@2
|
248 |
/** SlowForward5. */
|
williamr@2
|
249 |
ERemConCoreApiPlaybackSpeedSlowForward5 = 0x33,
|
williamr@2
|
250 |
/** SlowForward4. */
|
williamr@2
|
251 |
ERemConCoreApiPlaybackSpeedSlowForward4 = 0x34,
|
williamr@2
|
252 |
/** SlowForward3. */
|
williamr@2
|
253 |
ERemConCoreApiPlaybackSpeedSlowForward3 = 0x35,
|
williamr@2
|
254 |
/** SlowForward2. */
|
williamr@2
|
255 |
ERemConCoreApiPlaybackSpeedSlowForward2 = 0x36,
|
williamr@2
|
256 |
/** SlowForward1. */
|
williamr@2
|
257 |
ERemConCoreApiPlaybackSpeedSlowForward1 = 0x37,
|
williamr@2
|
258 |
/** X1. */
|
williamr@2
|
259 |
ERemConCoreApiPlaybackSpeedX1 = 0x38,
|
williamr@2
|
260 |
/** FastForward1. */
|
williamr@2
|
261 |
ERemConCoreApiPlaybackSpeedFastForward1 = 0x39,
|
williamr@2
|
262 |
/** FastForward2. */
|
williamr@2
|
263 |
ERemConCoreApiPlaybackSpeedFastForward2 = 0x3a,
|
williamr@2
|
264 |
/** FastForward3. */
|
williamr@2
|
265 |
ERemConCoreApiPlaybackSpeedFastForward3 = 0x3b,
|
williamr@2
|
266 |
/** FastForward4. */
|
williamr@2
|
267 |
ERemConCoreApiPlaybackSpeedFastForward4 = 0x3c,
|
williamr@2
|
268 |
/** FastForward5. */
|
williamr@2
|
269 |
ERemConCoreApiPlaybackSpeedFastForward5 = 0x3d,
|
williamr@2
|
270 |
/** FastForward6. */
|
williamr@2
|
271 |
ERemConCoreApiPlaybackSpeedFastForward6 = 0x3e,
|
williamr@2
|
272 |
/** FastestForward. */
|
williamr@2
|
273 |
ERemConCoreApiPlaybackSpeedFastestForward = 0x3f,
|
williamr@2
|
274 |
/** PreviousFrame. */
|
williamr@2
|
275 |
ERemConCoreApiPlaybackSpeedPreviousFrame = 0x40,
|
williamr@2
|
276 |
/** SlowestReverse. */
|
williamr@2
|
277 |
ERemConCoreApiPlaybackSpeedSlowestReverse = 0x41,
|
williamr@2
|
278 |
/** SlowReverse6. */
|
williamr@2
|
279 |
ERemConCoreApiPlaybackSpeedSlowReverse6 = 0x42,
|
williamr@2
|
280 |
/** SlowReverse5. */
|
williamr@2
|
281 |
ERemConCoreApiPlaybackSpeedSlowReverse5 = 0x43,
|
williamr@2
|
282 |
/** SlowReverse4. */
|
williamr@2
|
283 |
ERemConCoreApiPlaybackSpeedSlowReverse4 = 0x44,
|
williamr@2
|
284 |
/** SlowReverse3. */
|
williamr@2
|
285 |
ERemConCoreApiPlaybackSpeedSlowReverse3 = 0x45,
|
williamr@2
|
286 |
/** SlowReverse2. */
|
williamr@2
|
287 |
ERemConCoreApiPlaybackSpeedSlowReverse2 = 0x46,
|
williamr@2
|
288 |
/** SlowReverse1. */
|
williamr@2
|
289 |
ERemConCoreApiPlaybackSpeedSlowReverse1 = 0x47,
|
williamr@2
|
290 |
/** X1Reverse. */
|
williamr@2
|
291 |
ERemConCoreApiPlaybackSpeedX1Reverse = 0x48,
|
williamr@2
|
292 |
/** FastReverse1. */
|
williamr@2
|
293 |
ERemConCoreApiPlaybackSpeedFastReverse1 = 0x49,
|
williamr@2
|
294 |
/** FastReverse2. */
|
williamr@2
|
295 |
ERemConCoreApiPlaybackSpeedFastReverse2 = 0x4a,
|
williamr@2
|
296 |
/** FastReverse3. */
|
williamr@2
|
297 |
ERemConCoreApiPlaybackSpeedFastReverse3 = 0x4b,
|
williamr@2
|
298 |
/** FastReverse4. */
|
williamr@2
|
299 |
ERemConCoreApiPlaybackSpeedFastReverse4 = 0x4c,
|
williamr@2
|
300 |
/** FastReverse5. */
|
williamr@2
|
301 |
ERemConCoreApiPlaybackSpeedFastReverse5 = 0x4d,
|
williamr@2
|
302 |
/** FastReverse6. */
|
williamr@2
|
303 |
ERemConCoreApiPlaybackSpeedFastReverse6 = 0x4e,
|
williamr@2
|
304 |
/** FastestReverse. */
|
williamr@2
|
305 |
ERemConCoreApiPlaybackSpeedFastestReverse = 0x4f,
|
williamr@2
|
306 |
/** Reverse. */
|
williamr@2
|
307 |
ERemConCoreApiPlaybackSpeedReverse = 0x65,
|
williamr@2
|
308 |
/** ReversePause. */
|
williamr@2
|
309 |
ERemConCoreApiPlaybackSpeedReversePause = 0x6d,
|
williamr@2
|
310 |
/** Forward. */
|
williamr@2
|
311 |
ERemConCoreApiPlaybackSpeedForward = 0x75,
|
williamr@2
|
312 |
/** ForwardPause. */
|
williamr@2
|
313 |
ERemConCoreApiPlaybackSpeedForwardPause = 0x7d,
|
williamr@2
|
314 |
};
|
williamr@2
|
315 |
|
williamr@2
|
316 |
#endif // REMCONCOREAPI_H
|