2 * Copyright (c) 2012, 2013 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef _PTP_DATACODES_H_
18 #define _PTP_DATACODES_H_
21 * PTP Data type codes.
23 #define PTP_DATATYPE_UNDEFINED 0x0000
24 #define PTP_DATATYPE_INT8 0x0001
25 #define PTP_DATATYPE_UINT8 0x0002
26 #define PTP_DATATYPE_INT16 0x0003
27 #define PTP_DATATYPE_UINT16 0x0004
28 #define PTP_DATATYPE_INT32 0x0005
29 #define PTP_DATATYPE_UINT32 0x0006
30 #define PTP_DATATYPE_INT64 0x0007
31 #define PTP_DATATYPE_UINT64 0x0008
32 #define PTP_DATATYPE_INT128 0x0009
33 #define PTP_DATATYPE_UINT128 0x000A
34 #define PTP_DATATYPE_AINT8 0x4001
35 #define PTP_DATATYPE_AUINT8 0x4002
36 #define PTP_DATATYPE_AINT16 0x4003
37 #define PTP_DATATYPE_AUINT16 0x4004
38 #define PTP_DATATYPE_AINT32 0x4005
39 #define PTP_DATATYPE_AUINT32 0x4006
40 #define PTP_DATATYPE_AINT64 0x4007
41 #define PTP_DATATYPE_AUINT64 0x4008
42 #define PTP_DATATYPE_AINT128 0x4009
43 #define PTP_DATATYPE_AUINT128 0x400A
44 #define PTP_DATATYPE_STRING 0xFFFF
45 #define PTP_DATATYPE_ARRAYMASK 0x4FF0
46 #define PTP_DATATYPE_ARRAY 0x4000
47 #define PTP_DATATYPE_VALUEMASK 0xFFF0
48 #define PTP_DATATYPE_VALUE 0x0000
51 * Data code ranges and masks. Each data code has 16 bits:
53 * 0 -- the code is defined by PTP standard
54 * 1 -- the code is vendor specific
56 * Bit 14 - 12(data type)
58 * 0 0 0 -- undefined data type
60 * 0 1 0 -- response code
61 * 0 1 1 -- format code
63 * 1 0 1 -- property code
67 * Bit 11 - bit 0 (data value)
69 #define PTP_DATACODE_VENDORMASK 0x8000
70 #define PTP_DATACODE_TYPEMASK 0x7000
71 #define PTP_DATACODE_VALUEMASK 0x0FFF
72 #define PTP_DATACODE_TYPE_UNKNOWN 0x0000
73 #define PTP_DATACODE_TYPE_OPERATION 0x1000
74 #define PTP_DATACODE_TYPE_RESPONSE 0x2000
75 #define PTP_DATACODE_TYPE_FORMAT 0x3000
76 #define PTP_DATACODE_TYPE_EVENT 0x4000
77 #define PTP_DATACODE_TYPE_PROPERTY 0x5000
78 #define PTP_DATACODE_TYPE_RESERVED_1 0x6000
79 #define PTP_DATACODE_TYPE_RESERVED_2 0x7000
82 * To verify an op code
83 * (Code & PTP_DATACODE_TYPEMASK) == PTP_DATACODE_TYPE_OPERATION
84 * To verify a response code
85 * (Code & PTP_DATACODE_TYPEMASK) == PTP_DATACODE_TYPE_RESPONSE)
89 * Image format codes receive special treatment.
91 #define PTP_DATACODE_TYPEIMAGEMASK 0x7800;
92 #define PTP_DATACODE_TYPE_IMAGEFORMAT 0x3800;
93 #define PTP_DATACODE_VALUE_IMAGEVMASK 0x07FF;
95 * To verify an image code
96 * (Code & PTP_DATACODE_TYPEIMAGEMASK) == PTP_DATACODE_TYPE_IMAGEFORMAT
100 * PTP specially defined constants
102 #define PTP_OBJECTHANDLE_ALL 0xFFFFFFFF
103 #define PTP_OBJECTHANDLE_UNDEFINED 0x0
104 #define PTP_OBJECTHANDLE_ROOT 0x0
105 #define PTP_PROPERTY_ALL 0xFFFFFFFF
106 #define PTP_PROPERTY_UNDEFINED 0x0
107 #define PTP_STORAGEID_ALL 0xFFFFFFFF
108 #define PTP_STORAGEID_DEFAULT 0
109 #define PTP_STORAGEID_UNDEFINED 0
110 #define PTP_STORAGEID_PHYSICAL 0x0000FFFF
111 #define PTP_STORAGEID_LOGICAL 0xFFFF0000
112 #define PTP_SESSIONID_ALL 0
113 #define PTP_SESSIONID_NOSESSION 0
114 #define PTP_FORMATCODE_NOTUSED 0x0
115 #define PTP_FORMATCODE_ALL 0xFFFFFFFF
116 #define PTP_FORMATCODE_DEFAULT 0x0000
117 #define PTP_TRANSACTIONID_ALL 0xFFFFFFFF
118 #define PTP_TRANSACTIONID_NOSESSION 0
121 * standard operation codes:
123 #define PTP_OPCODE_UNDEFINED 0x1000
124 #define PTP_OPCODE_GETDEVICEINFO 0x1001
125 #define PTP_OPCODE_OPENSESSION 0x1002
126 #define PTP_OPCODE_CLOSESESSION 0x1003
127 #define PTP_OPCODE_GETSTORAGEIDS 0x1004
128 #define PTP_OPCODE_GETSTORAGEINFO 0x1005
129 #define PTP_OPCODE_GETNUMOBJECTS 0x1006
130 #define PTP_OPCODE_GETOBJECTHANDLES 0x1007
131 #define PTP_OPCODE_GETOBJECTINFO 0x1008
132 #define PTP_OPCODE_GETOBJECT 0x1009
133 #define PTP_OPCODE_DELETEOBJECT 0x100B
134 #define PTP_OPCODE_SENDOBJECTINFO 0x100C
135 #define PTP_OPCODE_SENDOBJECT 0x100D
136 #define PTP_OPCODE_INITIATECAPTURE 0x100E
137 #define PTP_OPCODE_FORMATSTORE 0x100F
138 #define PTP_OPCODE_RESETDEVICE 0x1010
139 #define PTP_OPCODE_SELFTEST 0x1011
140 #define PTP_OPCODE_SETOBJECTPROTECTION 0x1012
141 #define PTP_OPCODE_POWERDOWN 0x1013
142 #define PTP_OPCODE_GETDEVICEPROPDESC 0x1014
143 #define PTP_OPCODE_GETDEVICEPROPVALUE 0x1015
144 #define PTP_OPCODE_SETDEVICEPROPVALUE 0x1016
145 #define PTP_OPCODE_RESETDEVICEPROPVALUE 0x1017
146 #define PTP_OPCODE_TERMINATECAPTURE 0x1018
147 #define PTP_OPCODE_MOVEOBJECT 0x1019
148 #define PTP_OPCODE_COPYOBJECT 0x101A
149 #define PTP_OPCODE_GETPARTIALOBJECT 0x101B
150 #define PTP_OPCODE_INITIATEOPENCAPTURE 0x101C
151 #define PTP_OPCODE_VENDOREXTENDEDBASE 0x9000
152 #define PTP_CODE_VENDOR_OP1 0x9001
154 /* MTP extended operations */
155 #define MTP_OPCODE_UNDEFINED 0x9800
156 #define MTP_OPCODE_GETOBJECTPROPSUPPORTED 0x9801
157 #define MTP_OPCODE_GETOBJECTPROPDESC 0x9802
158 #define MTP_OPCODE_GETOBJECTPROPVALUE 0x9803
159 #define MTP_OPCODE_SETOBJECTPROPVALUE 0x9804
160 #define MTP_OPCODE_GETOBJECTPROPLIST 0x9805
161 #define MTP_OPCODE_SETOBJECTPROPLIST 0x9806
162 #define MTP_OPCODE_GETINTERDEPPROPDESC 0x9807
163 #define MTP_OPCODE_SENDOBJECTPROPLIST 0x9808
164 #define MTP_OPCODE_GETOBJECTREFERENCES 0x9810
165 #define MTP_OPCODE_SETOBJECTREFERENCES 0x9811
167 /* MTP Playback control operation */
168 #define MTP_OPCODE_PLAYBACK_SKIP 0x9820
170 /* Operation for Windows Media 10 MTP extension */
171 #define MTP_OPCODE_WMP_UNDEFINED 0x9200
172 #define MTP_OPCODE_WMP_METADATAROUNDTRIP 0x9201
173 #define MTP_OPCODE_WMP_REPORTACQUIREDCONTENT 0x9202
176 * standard event codes:
178 #define PTP_EVENTCODE_UNDEFINED 0x4000
179 #define PTP_EVENTCODE_CANCELTRANSACTION 0x4001
180 #define PTP_EVENTCODE_OBJECTADDED 0x4002
181 #define PTP_EVENTCODE_OBJECTREMOVED 0x4003
182 #define PTP_EVENTCODE_STOREADDED 0x4004
183 #define PTP_EVENTCODE_STOREREMOVED 0x4005
184 #define PTP_EVENTCODE_DEVICEPROPCHANGED 0x4006
185 #define PTP_EVENTCODE_OBJECTINFOCHANGED 0x4007
186 #define PTP_EVENTCODE_DEVICEINFOCHANGED 0x4008
187 #define PTP_EVENTCODE_REQUESTOBJECTTRANSFER 0x4009
188 #define PTP_EVENTCODE_STOREFULL 0x400A
189 #define PTP_EVENTCODE_DEVICERESET 0x400B
190 #define PTP_EVENTCODE_STORAGEINFOCHANGED 0x400C
191 #define PTP_EVENTCODE_CAPTURECOMPLETE 0x400D
192 #define PTP_EVENTCODE_UNREPORTEDSTATUS 0x400E
193 #define PTP_EVENTCODE_VENDOREXTENTION1 0xC001
194 #define PTP_EVENTCODE_VENDOREXTENTION2 0xC002
197 * MTP-extended Events
199 #define MTP_EVENTCODE_UNDEFINED 0xB800
200 #define MTP_EVENTCODE_OBJECTPROPCHANGED 0xC801
201 #define MTP_EVENTCODE_OBJECTPROPDESCCHANGED 0xC802
202 #define MTP_EVENTCODE_OBJECTREFERENCESCHANGED 0xC803
203 #define MTP_EVENTCODE_DEVICEPROPDESCCHANGED 0xB804
205 /* Events for Janus MTP extension */
206 #define MTP_EVENTCODE_JANUS_UNDEFINED 0xC100
207 #define MTP_EVENTCODE_JANUS_EVENT1 0xC101
210 * standard response codes:
212 #define PTP_RESPONSE_UNDEFINED 0x2000
213 #define PTP_RESPONSE_OK 0x2001
214 #define PTP_RESPONSE_GEN_ERROR 0x2002
215 #define PTP_RESPONSE_SESSIONNOTOPEN 0x2003
216 #define PTP_RESPONSE_INVALID_TRANSACTIONID 0x2004
217 #define PTP_RESPONSE_OP_NOT_SUPPORTED 0x2005
218 #define PTP_RESPONSE_PARAM_NOTSUPPORTED 0x2006
219 #define PTP_RESPONSE_INCOMPLETETRANSFER 0x2007
220 #define PTP_RESPONSE_INVALID_STORE_ID 0x2008
221 #define PTP_RESPONSE_INVALID_OBJ_HANDLE 0x2009
222 #define PTP_RESPONSE_PROP_NOTSUPPORTED 0x200A
223 #define PTP_RESPONSE_INVALID_OBJ_FMTCODE 0x200B
224 #define PTP_RESPONSE_STOREFULL 0x200C
225 #define PTP_RESPONSE_OBJ_WRITEPROTECTED 0x200D
226 #define PTP_RESPONSE_STORE_READONLY 0x200E
227 #define PTP_RESPONSE_ACCESSDENIED 0x200F
228 #define PTP_RESPONSE_SELFTEST_FAILED 0x2011
229 #define PTP_RESPONSE_PARTIAL_DELETION 0x2012
230 #define PTP_RESPONSE_STORENOTAVAILABLE 0x2013
231 #define PTP_RESPONSE_NOSPECIFICATIONBYFORMAT 0x2014
232 #define PTP_RESPONSE_NOVALID_OBJINFO 0x2015
233 #define PTP_RESPONSE_INVALIDCODEFORMAT 0x2016
234 #define PTP_RESPONSE_UNKNOWN_VENDORCODE 0x2017
235 #define PTP_RESPONSE_CAPTURE_ALREADYTERMINATED 0x2018
236 #define PTP_RESPONSE_DEVICEBUSY 0x2019
237 #define PTP_RESPONSE_INVALIDPARENT 0x201A
238 #define PTP_RESPONSE_INVALIDPROPFORMAT 0x201B
239 #define PTP_RESPONSE_INVALIDPROPVALUE 0x201C
240 #define PTP_RESPONSE_INVALIDPARAM 0x201D
241 #define PTP_RESPONSE_SESSIONALREADYOPENED 0x201E
242 #define PTP_RESPONSE_TRANSACTIONCANCELLED 0x201F
246 #define MTP_RESPONSE_UNDEFINED 0xA800
247 #define MTP_RESPONSE_INVALIDOBJPROPCODE 0xA801
248 #define MTP_RESPONSE_INVALIDOBJPROPFORMAT 0xA802
249 #define MTP_RESPONSE_INVALIDOBJPROPVALUE 0xA803
250 #define MTP_RESPONSE_INVALIDOBJREFERENCE 0xA804
251 #define MTP_RESPONSE_INVALIDOBJGROUPCODE 0xA805
252 #define MTP_RESPONSECODE_INVALIDDATASET 0xA806
253 #define MTP_RESPONSE_SPECIFICATION_BY_GROUP_UNSUPPORTED 0xA807
254 #define MTP_RESPONSE_SPECIFICATION_BY_DEPTH_UNSUPPORTED 0xA808
255 #define MTP_RESPONSE_OBJECT_TOO_LARGE 0xA809
258 * standard property codes:
260 #define PTP_PROPERTYCODE_UNDEFINED 0x5000
261 #define PTP_PROPERTYCODE_BATTERYLEVEL 0x5001
262 #define PTP_PROPERTYCODE_FUNCTIONMODE 0x5002
263 #define PTP_PROPERTYCODE_IMAGESIZE 0x5003
264 #define PTP_PROPERTYCODE_COMPRESSIONSETTING 0x5004
265 #define PTP_PROPERTYCODE_WHITEBALANCE 0x5005
266 #define PTP_PROPERTYCODE_RGBGAIN 0x5006
267 #define PTP_PROPERTYCODE_FNUMBER 0x5007
268 #define PTP_PROPERTYCODE_FOCALLENGTH 0x5008
269 #define PTP_PROPERTYCODE_FOCUSDISTANCE 0x5009
270 #define PTP_PROPERTYCODE_FOCUSMODE 0x500A
271 #define PTP_PROPERTYCODE_EXPOSUREMETERINGMODE 0x500B
272 #define PTP_PROPERTYCODE_FLASHMODE 0x500C
273 #define PTP_PROPERTYCODE_EXPOSURETIME 0x500D
274 #define PTP_PROPERTYCODE_EXPOSUREPROGRAMMODE 0x500E
275 #define PTP_PROPERTYCODE_EXPOSUREINDEX 0x500F
276 #define PTP_PROPERTYCODE_EXPOSURECOMPENSATION 0x5010
277 #define PTP_PROPERTYCODE_DATETIME 0x5011
278 #define PTP_PROPERTYCODE_CAPTUREDELAY 0x5012
279 #define PTP_PROPERTYCODE_STILLCAPTUREMODE 0x5013
280 #define PTP_PROPERTYCODE_CONTRAST 0x5014
281 #define PTP_PROPERTYCODE_SHARPNESS 0x5015
282 #define PTP_PROPERTYCODE_DIGITALZOOM 0x5016
283 #define PTP_PROPERTYCODE_EFFECTMODE 0x5017
284 #define PTP_PROPERTYCODE_BURSTNUMBER 0x5018
285 #define PTP_PROPERTYCODE_BURSTINTERVAL 0x5019
286 #define PTP_PROPERTYCODE_TIMELAPSENUMBER 0x501A
287 #define PTP_PROPERTYCODE_TIMELAPSEINTERVAL 0x501B
288 #define PTP_PROPERTYCODE_FOCUSMETERINGMODE 0x501C
289 #define PTP_PROPERTYCODE_UPLOADURL 0x501D
290 #define PTP_PROPERTYCODE_ARTIST 0x501E
291 #define PTP_PROPERTYCODE_COPYRIGHT 0x501F
292 #define PTP_PROPERTYCODE_VENDOREXTENTION1 0xD001
293 #define PTP_PROPERTYCODE_VENDOREXTENTION2 0xD002
296 * MTP defined Device properties
298 #define MTP_PROPERTYCODE_UNDEFINED 0xD400
299 #define MTP_PROPERTYCODE_SYNCHRONIZATIONPARTNER 0xD401
300 #define MTP_PROPERTYCODE_DEVICEFRIENDLYNAME 0xD402
302 #define MTP_PROPERTYCODE_SUPPORTEDFORMATSORDERED 0xD404
303 #define MTP_PROPERTYCODE_DEVICEICON 0xD405
305 #ifdef MTP_SUPPORT_DEVICE_CLASS
306 #define MTP_PROPERTYCODE_PERCEIVEDDEVICETYPE 0xD407
309 /* Device properties for MTP Playback */
310 #define MTP_PROPERTYCODE_PLAYBACK_RATE 0xD410
311 #define MTP_PROPERTYCODE_PLAYBACK_OBJECT 0xD411
312 #define MTP_PROPERTYCODE_PLAYBACK_CONT_INDEX 0xD412
313 #define MTP_PROPERTYCODE_PLAYBACK_POSITION 0xD413
315 /* MTP extended object property codes */
316 #define MTP_OBJ_PROPERTYCODE_PURCHASE_ALBTRK 0xD901
318 /* for support OMA DRM, request of Vodafone */
319 #define MTP_OBJ_PROPERTYCODE_OMADRMSTATUS 0xDB01
320 #define MTP_OBJ_PROPERTYCODE_OMADRMRIGHTSOBJECT 0xDB02
322 #define MTP_OBJ_PROPERTYCODE_STORAGEID 0xDC01
323 #define MTP_OBJ_PROPERTYCODE_OBJECTFORMAT 0xDC02
324 #define MTP_OBJ_PROPERTYCODE_PROTECTIONSTATUS 0xDC03
325 #define MTP_OBJ_PROPERTYCODE_OBJECTSIZE 0xDC04
326 #define MTP_OBJ_PROPERTYCODE_ASSOCIATIONTYPE 0xDC05
327 #define MTP_OBJ_PROPERTYCODE_ASSOCIATIONDESC 0xDC06
328 #define MTP_OBJ_PROPERTYCODE_OBJECTFILENAME 0xDC07
329 #define MTP_OBJ_PROPERTYCODE_DATECREATED 0xDC08
330 #define MTP_OBJ_PROPERTYCODE_DATEMODIFIED 0xDC09
331 #define MTP_OBJ_PROPERTYCODE_KEYWORDS 0xDC0A
332 #define MTP_OBJ_PROPERTYCODE_PARENT 0xDC0B
334 #define MTP_OBJ_PROPERTYCODE_PERSISTENTGUID 0xDC41
335 #define MTP_OBJ_PROPERTYCODE_SYNCID 0xDC42
336 #define MTP_OBJ_PROPERTYCODE_PROPERTYBAG 0xDC43
337 #define MTP_OBJ_PROPERTYCODE_NAME 0xDC44
338 #define MTP_OBJ_PROPERTYCODE_CREATEDBY 0xDC45
339 #define MTP_OBJ_PROPERTYCODE_ARTIST 0xDC46
340 #define MTP_OBJ_PROPERTYCODE_DATEAUTHORED 0xDC47
341 #define MTP_OBJ_PROPERTYCODE_DESCRIPTION 0xDC48
342 #define MTP_OBJ_PROPERTYCODE_URLREFERENCE 0xDC49
343 #define MTP_OBJ_PROPERTYCODE_LANGUAGELOCALE 0xDC4A
344 #define MTP_OBJ_PROPERTYCODE_COPYRIGHTINFO 0xDC4B
345 #define MTP_OBJ_PROPERTYCODE_SOURCE 0xDC4C
346 #define MTP_OBJ_PROPERTYCODE_ORIGINLOCATION 0xDC4D
347 #define MTP_OBJ_PROPERTYCODE_DATEADDED 0xDC4E
348 #define MTP_OBJ_PROPERTYCODE_NONCONSUMABLE 0xDC4F
349 #define MTP_OBJ_PROPERTYCODE_CORRUPTUNPLAYABLE 0xDC50
351 #define MTP_OBJ_PROPERTYCODE_SAMPLEFORMAT 0xDC81
352 #define MTP_OBJ_PROPERTYCODE_SAMPLESIZE 0xDC82
353 #define MTP_OBJ_PROPERTYCODE_SAMPLEHEIGHT 0xDC83
354 #define MTP_OBJ_PROPERTYCODE_SAMPLEWIDTH 0xDC84
355 #define MTP_OBJ_PROPERTYCODE_SAMPLEDURATION 0xDC85
356 #define MTP_OBJ_PROPERTYCODE_SAMPLEDATA 0xDC86
357 #define MTP_OBJ_PROPERTYCODE_WIDTH 0xDC87
358 #define MTP_OBJ_PROPERTYCODE_HEIGHT 0xDC88
359 #define MTP_OBJ_PROPERTYCODE_DURATION 0xDC89
360 #define MTP_OBJ_PROPERTYCODE_USERRATING 0xDC8A
361 #define MTP_OBJ_PROPERTYCODE_TRACK 0xDC8B
362 #define MTP_OBJ_PROPERTYCODE_GENRE 0xDC8C
363 #define MTP_OBJ_PROPERTYCODE_CREDITS 0xDC8D
364 #define MTP_OBJ_PROPERTYCODE_LYRICS 0xDC8E
365 #define MTP_OBJ_PROPERTYCODE_SUBSCRIPCONTENTID 0xDC8F
366 #define MTP_OBJ_PROPERTYCODE_PRODUCEDBY 0xDC90
367 #define MTP_OBJ_PROPERTYCODE_USECOUNT 0xDC91
368 #define MTP_OBJ_PROPERTYCODE_SKIPCOUNT 0xDC92
369 #define MTP_OBJ_PROPERTYCODE_LASTACCESSED 0xDC93
370 #define MTP_OBJ_PROPERTYCODE_PARENTALRATING 0xDC94
371 #define MTP_OBJ_PROPERTYCODE_METAGENRE 0xDC95
372 #define MTP_OBJ_PROPERTYCODE_COMPOSER 0xDC96
373 #define MTP_OBJ_PROPERTYCODE_EFFECTIVERATING 0xDC97
374 #define MTP_OBJ_PROPERTYCODE_SUBTITLE 0xDC98
375 #define MTP_OBJ_PROPERTYCODE_ORIGINALRELEASEDATE 0xDC99
376 #define MTP_OBJ_PROPERTYCODE_ALBUMNAME 0xDC9A
377 #define MTP_OBJ_PROPERTYCODE_ALBUMARTIST 0xDC9B
378 #define MTP_OBJ_PROPERTYCODE_MOOD 0xDC9C
379 #define MTP_OBJ_PROPERTYCODE_DRMSTATUS 0xDC9D
380 #define MTP_OBJ_PROPERTYCODE_SUBDESCRIPTION 0xDC9E
382 #define MTP_OBJ_PROPERTYCODE_ISCROPPED 0xDCD1
383 #define MTP_OBJ_PROPERTYCODE_ISCOLORCORRECTED 0xDCD2
385 #define MTP_OBJ_PROPERTYCODE_TOTALBITRATE 0xDE91
386 #define MTP_OBJ_PROPERTYCODE_BITRATETYPE 0xDE92
387 #define MTP_OBJ_PROPERTYCODE_SAMPLERATE 0xDE93
388 #define MTP_OBJ_PROPERTYCODE_NUMBEROFCHANNELS 0xDE94
389 #define MTP_OBJ_PROPERTYCODE_AUDIOBITDEPTH 0xDE95
390 #define MTP_OBJ_PROPERTYCODE_SCANTYPE 0xDE97
391 #define MTP_OBJ_PROPERTYCODE_AUDIOWAVECODEC 0xDE99
392 #define MTP_OBJ_PROPERTYCODE_AUDIOBITRATE 0xDE9A
393 #define MTP_OBJ_PROPERTYCODE_VIDEOFOURCCCODEC 0xDE9B
394 #define MTP_OBJ_PROPERTYCODE_VIDEOBITRATE 0xDE9C
395 #define MTP_OBJ_PROPERTYCODE_FRAMESPER1KSECONDS 0xDE9D
396 #define MTP_OBJ_PROPERTYCODE_KEYFRAMEDISTANCE 0xDE9E
397 #define MTP_OBJ_PROPERTYCODE_BUFFERSIZE 0xDE9F
398 #define MTP_OBJ_PROPERTYCODE_ENCODINGQUALITY 0xDEA0
399 #define MTP_OBJ_PROPERTYCODE_ENCODINGPROFILE 0xDEA1
400 #define MTP_OBJ_PROPERTYCODE_PLAYBACK_RATE 0xDF01
401 #define MTP_OBJ_PROPERTYCODE_PLAYBACK_OBJECT 0xDF02
402 #define MTP_OBJ_PROPERTYCODE_PLAYBACK_CONT_INDEX 0xDF03
403 #define MTP_OBJ_PROPERTYCODE_PLAYBACK_POSITION 0xDF04
405 /* standard format codes */
406 #define PTP_FORMATMASK_IMAGE 0x0800
408 #define PTP_FMT_UNDEF 0x3000
409 #define PTP_FMT_ASSOCIATION 0x3001
410 #define PTP_FMT_SCRIPT 0x3002
411 #define PTP_FMT_EXEC 0x3003
412 #define PTP_FMT_TEXT 0x3004
413 #define PTP_FMT_HTML 0x3005
414 #define PTP_FMT_DPOF 0x3006
415 #define PTP_FMT_AIFF 0x3007
416 #define PTP_FMT_WAVE 0x3008
417 #define PTP_FMT_MP3 0x3009
418 #define PTP_FMT_AVI 0x300A
419 #define PTP_FMT_MPEG 0x300B
420 #define PTP_FMT_ASF 0x300C
422 #define PTP_FMT_IMG_UNDEF 0x3800
423 #define PTP_FMT_IMG_EXIF 0x3801
424 #define PTP_FMT_IMG_TIFFEP 0x3802
425 #define PTP_FMT_IMG_FLASHPIX 0x3803
426 #define PTP_FMT_IMG_BMP 0x3804
427 #define PTP_FMT_IMG_CIFF 0x3805
428 #define PTP_FMT_IMG_GIF 0x3807
429 #define PTP_FMT_IMG_JFIF 0x3808
430 #define PTP_FMT_IMG_PCD 0x3809
431 #define PTP_FMT_IMG_PICT 0x380A
432 #define PTP_FMT_IMG_PNG 0x380B
433 #define PTP_FMT_IMG_TIFF 0x380D
434 #define PTP_FMT_IMG_TIFFIT 0x380E
435 #define PTP_FMT_IMG_JP2 0x380F
436 #define PTP_FMT_IMG_JPX 0x3810
438 /* MTP-defined Object Formats */
439 #define MTP_FMT_UNDEFINED_FIRMWARE 0xB802
440 #define MTP_FMT_WINDOWS_IMG_FORMAT 0xB881
441 #define MTP_FMT_UNDEFINED_AUDIO 0xB900
442 #define MTP_FMT_WMA 0xB901
443 #define MTP_FMT_UNDEFINED_VIDEO 0xB980
444 #define MTP_FMT_WMV 0xB981
445 #define MTP_FMT_UNDEFINED_COLLECTION 0xBA00
446 #define MTP_FMT_ABSTRACT_MULTIMEDIA_ALBUM 0xBA01
447 #define MTP_FMT_ABSTRACT_IMG_ALBUM 0xBA02
448 #define MTP_FMT_ABSTRACT_AUDIO_ALBUM 0xBA03
449 #define MTP_FMT_ABSTRACT_VIDEO_ALBUM 0xBA04
450 #define MTP_FMT_ABSTRACT_CONTACT_GROUP 0xBA06
451 #define MTP_FMT_ABSTRACT_MESSAGE_FOLDER 0xBA07
452 #define MTP_FMT_ABSTRACT_CHAPTERED_PRODUCTION 0xBA08
453 #define MTP_FMT_UNDEFINED_DOC 0xBA80
454 #define MTP_FMT_ABSTRACT_DOC 0xBA81
455 #define MTP_FMT_UNDEFINED_MESSAGE 0xBB00
456 #define MTP_FMT_ABSTRACT_MESSAGE 0xBB01
457 #define MTP_FMT_UNDEFINED_CONTACT 0xBB80
458 #define MTP_FMT_ABSTRACT_CONTACT 0xBB81
459 #define MTP_FMT_VCARD2 0xBB82
460 #define MTP_FMT_VCARD3 0xBB83
461 #define MTP_FMT_UNDEFINED_CALENDAR_ITEM 0xBE00
462 #define MTP_FMT_ABSTRACT_CALENDAR_ITEM 0xBE01
463 #define MTP_FMT_VCALENDAR1 0xBE02
464 #define MTP_FMT_UNDEFINED_WINDOWS_EXECUTABLE 0xBE80
466 #define MTP_FMT_FLAC 0xB906
467 #define MTP_FMT_MP4 0xB982
468 #define MTP_FMT_3GP 0xB984
471 * Property description data set form flags definitions
473 #define PTP_FORMFLAGS_NONE 0x00
474 #define PTP_FORMFLAGS_RANGE 0x01
475 #define PTP_FORMFLAGS_ENUM 0x02
480 #define PTP_POWERSTATE_DEVICEOFF 0x0000
481 #define PTP_POWERSTATE_SLEEP 0x0001
482 #define PTP_POWERSTATE_FULL 0x0002
487 #define PTP_WHITEBALANCE_UNDEFINED 0x0000
488 #define PTP_WHILEBALANCE_MANUAL 0x0001
489 #define PTP_WHITEBALANCE_AUTOMATIC 0x0002
490 #define PTP_WHITEBALANCE_ONEPUSHAUTO 0x0003
491 #define PTP_WHITEBALANCE_DAYLIGHT 0x0004
492 #define PTP_WHITEBALANCE_FLORESCENT 0x0005
493 #define PTP_WHITEBALANCE_TUNGSTEN 0x0006
494 #define PTP_WHITEBALANCE_FLASH 0x0007
499 #define PTP_FOCUSMODE_UNDEFINED 0x0000
500 #define PTP_FOCUSMODE_MANUAL 0x0001
501 #define PTP_FOCUSMODE_AUTO 0x0002
502 #define PTP_FOCUSMODE_MACRO 0x0003
507 #define PTP_FOCUSMETERING_UNDEFINED 0x0000
508 #define PTP_FOCUSMETERING_CENTERSPOT 0x0001
509 #define PTP_FOCUSMETERING_MULTISPOT 0x0002
514 #define PTP_FLASHMODE_UNDEFINED 0x0000
515 #define PTP_FLASHMODE_AUTO 0x0001
516 #define PTP_FLASHMODE_OFF 0x0002
517 #define PTP_FLASHMODE_FILL 0x0003
518 #define PTP_FLASHMODE_REDEYEAUTO 0x0004
519 #define PTP_FLASHMODE_REDEYEFILL 0x0005
520 #define PTP_FLASHMODE_EXTERNALSYNC 0x0006
521 #define PTP_FLASHMODE_MASK 0xFFF0
526 #define PTP_EXPOSUREMODE_UNDEFINED 0x0000
527 #define PTP_EXPOSUREMODE_MANUALSETTING 0x0001
528 #define PTP_EXPOSUREMODE_AUTOPROGRAM 0x0002
529 #define PTP_EXPOSUREMODE_APERTUREPRIORITY 0x0003
530 #define PTP_EXPOSUREMODE_SHUTTERPRIORITY 0x0004
531 #define PTP_EXPOSUREMODE_PROGRAMCREATIVE 0x0005
532 #define PTP_EXPOSUREMODE_PROGRAMACTION 0x0006
533 #define PTP_EXPOSUREMODE_PORTRAIT 0x0007
538 #define PTP_CAPTUREMODE_UNDEFINED 0x0000
539 #define PTP_CAPTUREMODE_NORMAL 0x0001
540 #define PTP_CAPTUREMODE_BURST 0x0002
541 #define PTP_CAPTUREMODE_TIMELAPSE 0x0003
544 * focus metering modes
546 #define PTP_FOCUSMETERMODE_UNDEFINED 0x0000
547 #define PTP_FOCUSMETERMODE_CENTERSPOT 0x0001
548 #define PTP_FOCUSMETERMODE_MULTISPOT 0x0002
553 #define PTP_EFFECTMODE_UNDEFINED 0x0000
554 #define PTP_EFFECTMODE_COLOR 0x0001
555 #define PTP_EFFECTMODE_BW 0x0002
556 #define PTP_EFFECTMODE_SEPIA 0x0003
561 #define PTP_STORAGETYPE_UNDEFINED 0x0000
562 #define PTP_STORAGETYPE_FIXEDROM 0x0001
563 #define PTP_STORAGETYPE_REMOVABLEROM 0x0002
564 #define PTP_STORAGETYPE_FIXEDRAM 0x0003
565 #define PTP_STORAGETYPE_REMOVABLERAM 0x0004
568 * storage access capabilities
570 #define PTP_STORAGEACCESS_RWD 0x0000
571 #define PTP_STORAGEACCESS_R 0x0001
572 #define PTP_STORAGEACCESS_RD 0x0002
577 #define PTP_ASSOCIATIONTYPE_UNDEFINED 0x0000
578 #define PTP_ASSOCIATIONTYPE_FOLDER 0x0001
579 #define PTP_ASSOCIATIONTYPE_ALBUM 0x0002
580 #define PTP_ASSOCIATIONTYPE_BURST 0x0003
581 #define PTP_ASSOCIATIONTYPE_HPANORAMA 0x0004
582 #define PTP_ASSOCIATIONTYPE_VPANORAMA 0x0005
583 #define PTP_ASSOCIATIONTYPE_2DPANORAMA 0x0006
584 #define PTP_ASSOCIATIONTYPE_ANCILLARYDATA 0x0007
585 #define PTP_ASSOCIATIONTYPE_MASK 0xFFF0
590 #define PTP_PROTECTIONSTATUS_NOPROTECTION 0x0000
591 #define PTP_PROTECTIONSTATUS_READONLY 0x0001
592 #define MTP_PROTECTIONSTATUS_READONLY_DATA 0x8002
593 #define MTP_PROTECTIONSTATUS_NONTRANSFERABLE_DATA 0x8003
595 /* file system types */
596 #define PTP_FILESYSTEMTYPE_UNDEFINED 0x0000
597 #define PTP_FILESYSTEMTYPE_FLAT 0x0001
598 #define PTP_FILESYSTEMTYPE_HIERARCHICAL 0x0002
599 #define PTP_FILESYSTEMTYPE_DCF 0x0003
604 #define PTP_FUNCTIONMODE_STANDARD 0x0000
605 #define PTP_FUNCTIONMODE_SLEEP 0x0001
610 #define PTP_PROPGETSET_GETONLY 0x00
611 #define PTP_PROPGETSET_GETSET 0x01
612 #define PTP_PROPGETSET_GETSET2 0x02
614 /* Common Audio Sample Rate */
615 #define MTP_AUDIO_SAMPLERATE_UNKNOWN 0
616 #define MTP_AUDIO_SAMPLERATE_8K 8000
617 #define MTP_AUDIO_SAMPLERATE_32K 32000
618 #define MTP_AUDIO_SAMPLERATE_CD 44100
619 #define MTP_AUDIO_SAMPLERATE_48K 48000
620 #define MTP_AUDIO_SAMPLERATE_DVD 96000
622 /* Common Audio Bit Rate */
623 #define MTP_AUDIO_BITRATE_UNKNOWN 0
624 #define MTP_AUDIO_BITRATE_GSM 13000
625 #define MTP_AUDIO_BITRATE_16K 16999
626 #define MTP_AUDIO_BITRATE_G721 32000
627 #define MTP_AUDIO_BITRATE_G711 64000
628 #define MTP_AUDIO_BITRATE_128K 128999
629 #define MTP_AUDIO_BITRATE_CDDA 144100
630 #define MTP_AUDIO_BITRATE_160K 160999
631 #define MTP_AUDIO_BITRATE_192K 192999
632 #define MTP_AUDIO_BITRATE_256K 256999
633 #define MTP_AUDIO_BITRATE_STUDIO 384999
634 #define MTP_AUDIO_BITRATE_BLUERAY 10000000
637 /* Common Video Bit Rate */
638 #define MTP_VIDEO_BITRATE_MINIMUM 1000
639 #define MTP_VIDEO_BITRATE_BLUERAY 40000000
641 /* Common Metagenre defined */
642 #define MTP_METAGENRE_NOT_USED 0x0000
643 #define MTP_METAGENRE_GENERIC_MUSIC_AUDIO_FILE 0x0001
644 #define MTP_METAGENRE_GENERIC_NONMUSIC_AUDIO_FILE 0x0011
645 #define MTP_METAGENRE_SPOKEN_WORD_AUDIO_BOOK_FILES 0x0012
646 #define MTP_METAGENRE_SPOKEN_WORD_NONAUDIO_BOOK_FILES 0x0013
647 #define MTP_METAGENRE_SPOKEN_WORD_NEWS 0x0014
648 #define MTP_METAGENRE_SPOKEN_WORD_TALK_SHOWS 0x0015
649 #define MTP_METAGENRE_GENERIC_VIDEO_FILE 0x0021
650 #define MTP_METAGENRE_NEWS_VIDEO_FILE 0x0022
651 #define MTP_METAGENRE_MUSIC_VIDEO_FILE 0x0023
652 #define MTP_METAGENRE_HOME_VIDEO_FILE 0x0024
653 #define MTP_METAGENRE_FEATURE_FILM_VIDEO_FILE 0x0025
654 #define MTP_METAGENRE_TV_SHOW_VIDEO_FILE 0x0026
655 #define MTP_METAGENRE_TRAINING_VIDEO_FILE 0x0027
656 #define MTP_METAGENRE_PHOTO_MONTAGE_VIDEO_FILE 0x0028
657 #define MTP_METAGENRE_GENERIC_NONAUDIO_NONVIDEO_FILE 0x0030
658 #define MTP_METAGENRE_AUDIO_MEDIA_CAST_FILE 0x0040
659 #define MTP_METAGENRE_VIDEO_MEDIA_CAST_FILE 0x0041
660 #define MTP_METAGENRE_MIXED_MEDIA_CAST_FILE 0x0042
661 #define MTP_METAGENRE_VENDOR_DEFINED_MASK 0x8000
663 /* Common NumberOfChannels defined */
664 #define MTP_CHANNELS_NOT_USED 0x0000
665 #define MTP_CHANNELS_MONO 0x0001
666 #define MTP_CHANNELS_STEREO 0x0002
667 #define MTP_CHANNELS_2DOT1 0x0003
668 #define MTP_CHANNELS_3 0x0004
669 #define MTP_CHANNELS_3DOT1 0x0005
670 #define MTP_CHANNELS_4 0x0006
671 #define MTP_CHANNELS_4DOT1 0x0007
672 #define MTP_CHANNELS_5 0x0008
673 #define MTP_CHANNELS_5DOT1 0x0009
674 #define MTP_CHANNELS_6 0x000A
675 #define MTP_CHANNELS_6DOT1 0x000B
676 #define MTP_CHANNELS_7 0x000C
677 #define MTP_CHANNELS_7DOT1 0x000D
678 #define MTP_CHANNELS_8 0x000E
679 #define MTP_CHANNELS_8DOT1 0x000F
680 #define MTP_CHANNELS_9 0x0010
681 #define MTP_CHANNELS_9DOT1 0x0011
683 /* Common ScanTypes defined */
684 #define MTP_SCANTYPE_NOT_USED 0x0000
685 #define MTP_SCANTYPE_PROGESSIVE 0x0001
686 #define MTP_SCANTYPE_FIELDINTERLEAVEDUPPERFIRST 0x0002
687 #define MTP_SCANTYPE_FIELDINTERLEAVEDLOWERFIRST 0x0003
688 #define MTP_SCANTYPE_FIELDSINGLEUPPERFIRST 0x0004
689 #define MTP_SCANTYPE_FIELDSINGLELOWERFIRST 0x0005
690 #define MTP_SCANTYPE_MIXEDINTERLACE 0x0006
691 #define MTP_SCANTYPE_MIXEDINTERLACEANDPROGRESSIVE 0x0007
693 /* Selected Audio Wave Formats */
694 #define MTP_WAVEFORMAT_UNKNOWN 0x0000
695 #define MTP_WAVEFORMAT_PCM 0x0001
696 #define MTP_WAVEFORMAT_ADPCM 0x0002
697 #define MTP_WAVEFORMAT_IEEEFLOAT 0x0003
698 #define MTP_WAVEFORMAT_DTS 0x0008
699 #define MTP_WAVEFORMAT_DRM 0x0009
700 #define MTP_WAVEFORMAT_WMSP2 0x000B
701 #define MTP_WAVEFORMAT_GSM610 0x0031
702 #define MTP_WAVEFORMAT_MSNAUDIO 0x0032
703 #define MTP_WAVEFORMAT_MPEG 0x0050
704 #define MTP_WAVEFORMAT_MPEGLAYER3 0x0055
705 #define MTP_WAVEFORMAT_MSAUDIO1 0x0160
706 #define MTP_WAVEFORMAT_MSAUDIO2 0x0161
707 #define MTP_WAVEFORMAT_MSAUDIO3 0x0162
708 #define MTP_WAVEFORMAT_WMAUDIOLOSSLESS 0x0163
709 #define MTP_WAVEFORMAT_WMASPDIF 0x0164
710 #define MTP_WAVEFORMAT_AAC 0xA106
711 #define MTP_WAVEFORMAT_AMR_WB 0xA104
712 #define MTP_WAVEFORMAT_RAW_AAC1 0x00FF
713 #define MTP_WAVEFORMAT_MPEG_HEAAC 0x1610
717 * Check Supported codec on Device
718 * Check Registered name on this site
719 * http://msdn.microsoft.com/en-us/library/aa904731.aspx
720 * Convert the name using this macro GST_MAKE_FOURCC(a, b, c, d)
722 #define MTP_VIDEOFOURCC_UNKNOWN 0
723 #define MTP_VIDEOFOURCC_MP42 0x3234504D
724 #define MTP_VIDEOFOURCC_MP43 0x3334504D
725 #define MTP_VIDEOFOURCC_WMV1 0x31564D57
726 #define MTP_VIDEOFOURCC_WMV2 0x32564D57
727 #define MTP_VIDEOFOURCC_WMV3 0x33564D57
728 #define MTP_VIDEOFOURCC_DIVX 0x58564944
729 #define MTP_VIDEOFOURCC_XVID 0x44495658
730 #define MTP_VIDEOFOURCC_M4S2 0x3253344D
731 #define MTP_VIDEOFOURCC_MP4V 0x5634504D
732 #define MTP_VIDEOFOURCC_h264 0x34363268
733 #define MTP_VIDEOFOURCC_H263 0x33363268
734 #define MTP_VIDEOFOURCC_AVC1 0x31435641
735 #define MTP_VIDEOFOURCC_H264 0x34363248
736 #define MTP_VIDEOFOURCC_X264 0x34363258
737 #define MTP_VIDEOFOURCC_N264 0x34363278
740 #define MTP_MIN_VIDEO_BITRATE 0x0FA0
741 #define MTP_MAX_VIDEO_BITRATE 0x1312D00
744 #define MTP_MIN_VIDEO_FPS 0
745 #define MTP_MAX_VIDEO_FPS 0x7652
747 #define MTP_VIDEO_HEIGHT_WIDTH_INTERVAL 0x2
748 #define MTP_AUDIO_SAMPLE_RATE_INTERVAL 0x19
751 * USB class-specific requests
753 #define USB_PTPREQUEST_TYPE_OUT 0x21 /* Host to Device */
754 #define USB_PTPREQUEST_TYPE_IN 0xA1 /* Device to Host */
755 #define USB_PTPREQUEST_CANCELIO 0x64 /* Cancel request */
756 #define USB_PTPREQUEST_GETEVENT 0x65 /* Get extened event data */
757 #define USB_PTPREQUEST_RESET 0x66 /* Reset Device */
758 #define USB_PTPREQUEST_GETSTATUS 0x67 /* Get Device Status */
760 #define USB_PTPCANCELIO_ID 0x4001
761 #define USB_PTPREQUEST_CANCELIO_SIZE 6
763 #define MAX_PTP_STRING_CHARS 255
764 #define MAX_PTP_TIME_STRING_CHARS 20 /* eg: 20050526T171236 */
767 * Enumerated type that defines the data witin the PTP array.
768 * Defines four types to be used with the PTP array. The types include
769 * unsigned 8-bit, unsigned 16-bit, unsigned 32-bit, and pointers.
780 * brief A PTP array structure.
781 * The PTP array structure contains a variable length of data defined by the
794 mtp_word day_of_week;
799 mtp_word millisecond;
803 * brief The PTP string structure.
804 * The PTP string structure contains a Unicode string (16-bit) that is limited
805 * to MAX_PTP_STRING_CHARS in length. The default string length is defined as
806 * 255 including the NUL terminating character.
809 /* Num of chars in string including the NUL */
811 /* Holds actual Unicode string with 2 bytes chars,'\0' terminated*/
812 mtp_wchar str[MAX_PTP_STRING_CHARS];
816 /* Num of chars in string including the NUL */
818 /* Holds actual Unicode string with 2 bytes chars,'\0' terminated*/
819 mtp_wchar str[MAX_PTP_TIME_STRING_CHARS];
822 #endif /* _PTP_DATACODES_H_ */