Code Sync up from tizen_2.4
[platform/core/connectivity/mtp-responder.git] / include / ptp_datacodes.h
1 /*
2  * Copyright (c) 2012, 2013 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 #ifndef _PTP_DATACODES_H_
18 #define _PTP_DATACODES_H_
19
20 /*
21  * PTP Data type codes.
22  */
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
49
50 /*
51  * Data code ranges and masks. Each data code has 16 bits:
52  * Bit 15(std/vendor)
53  * 0 -- the code is defined by PTP standard
54  * 1 -- the code is vendor specific
55  *
56  * Bit 14 - 12(data type)
57  * 14 13 12
58  * 0  0  0    -- undefined data type
59  * 0  0  1    -- op code
60  * 0  1  0    -- response code
61  * 0  1  1    -- format code
62  * 1  0  0    -- event code
63  * 1  0  1    -- property code
64  * 1  1  0    -- reserved
65  * 1  1  1    -- reserved
66  *
67  * Bit 11 - bit 0 (data value)
68  */
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
80
81 /*
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)
86  */
87
88 /*
89  * Image format codes receive special treatment.
90  */
91 #define  PTP_DATACODE_TYPEIMAGEMASK     0x7800;
92 #define  PTP_DATACODE_TYPE_IMAGEFORMAT  0x3800;
93 #define  PTP_DATACODE_VALUE_IMAGEVMASK  0x07FF;
94 /*
95  * To verify an image code
96  * (Code & PTP_DATACODE_TYPEIMAGEMASK) == PTP_DATACODE_TYPE_IMAGEFORMAT
97  */
98
99 /*
100  * PTP specially defined constants
101  */
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
119
120 /*
121  * standard operation codes:
122  */
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
153
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
166
167 /* MTP Playback control operation */
168 #define MTP_OPCODE_PLAYBACK_SKIP                0x9820
169
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
174
175 /*
176  * standard event codes:
177  */
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
195
196 /*
197  * MTP-extended Events
198  */
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
204
205 /* Events for Janus MTP extension */
206 #define MTP_EVENTCODE_JANUS_UNDEFINED           0xC100
207 #define MTP_EVENTCODE_JANUS_EVENT1              0xC101
208
209 /*
210  * standard response codes:
211  */
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
243 /*
244  * MTP responses
245  */
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
256
257 /*
258  * standard property codes:
259  */
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
294
295 /*
296  * MTP defined Device properties
297  */
298 #define MTP_PROPERTYCODE_UNDEFINED                      0xD400
299 #define MTP_PROPERTYCODE_SYNCHRONIZATIONPARTNER         0xD401
300 #define MTP_PROPERTYCODE_DEVICEFRIENDLYNAME             0xD402
301
302 #define MTP_PROPERTYCODE_SUPPORTEDFORMATSORDERED        0xD404
303 #define MTP_PROPERTYCODE_DEVICEICON                     0xD405
304
305 #ifdef MTP_SUPPORT_DEVICE_CLASS
306 #define MTP_PROPERTYCODE_PERCEIVEDDEVICETYPE            0xD407
307 #endif
308
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
314
315 /* MTP extended object property codes */
316 #define MTP_OBJ_PROPERTYCODE_PURCHASE_ALBTRK                    0xD901
317
318 /* for support OMA DRM, request of Vodafone */
319 #define MTP_OBJ_PROPERTYCODE_OMADRMSTATUS                       0xDB01
320 #define MTP_OBJ_PROPERTYCODE_OMADRMRIGHTSOBJECT                 0xDB02
321
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
333
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
350
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
381
382 #define MTP_OBJ_PROPERTYCODE_ISCROPPED                          0xDCD1
383 #define MTP_OBJ_PROPERTYCODE_ISCOLORCORRECTED                   0xDCD2
384
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
404
405 /* standard format codes */
406 #define  PTP_FORMATMASK_IMAGE           0x0800
407
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
421
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
437
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
465
466 #define  MTP_FMT_FLAC                           0xB906
467 #define  MTP_FMT_MP4                            0xB982
468 #define  MTP_FMT_3GP                            0xB984
469
470 /*
471  * Property description data set form flags definitions
472  */
473 #define PTP_FORMFLAGS_NONE                      0x00
474 #define PTP_FORMFLAGS_RANGE                     0x01
475 #define PTP_FORMFLAGS_ENUM                      0x02
476
477 /*
478  * power states:
479  */
480 #define PTP_POWERSTATE_DEVICEOFF                0x0000
481 #define PTP_POWERSTATE_SLEEP                    0x0001
482 #define PTP_POWERSTATE_FULL                     0x0002
483
484 /*
485  * white balances:
486  */
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
495
496 /*
497  * focus modes:
498  */
499 #define PTP_FOCUSMODE_UNDEFINED                 0x0000
500 #define PTP_FOCUSMODE_MANUAL                    0x0001
501 #define PTP_FOCUSMODE_AUTO                      0x0002
502 #define PTP_FOCUSMODE_MACRO                     0x0003
503
504 /*
505  * focus metering:
506  */
507 #define  PTP_FOCUSMETERING_UNDEFINED            0x0000
508 #define  PTP_FOCUSMETERING_CENTERSPOT           0x0001
509 #define  PTP_FOCUSMETERING_MULTISPOT            0x0002
510
511 /*
512  * flash modes:
513  */
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
522
523 /*
524  * exposure modes:
525  */
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
534
535 /*
536  * capturing modes
537  */
538 #define  PTP_CAPTUREMODE_UNDEFINED              0x0000
539 #define  PTP_CAPTUREMODE_NORMAL                 0x0001
540 #define  PTP_CAPTUREMODE_BURST                  0x0002
541 #define  PTP_CAPTUREMODE_TIMELAPSE              0x0003
542
543 /*
544  * focus metering modes
545  */
546 #define  PTP_FOCUSMETERMODE_UNDEFINED           0x0000
547 #define  PTP_FOCUSMETERMODE_CENTERSPOT          0x0001
548 #define  PTP_FOCUSMETERMODE_MULTISPOT           0x0002
549
550 /*
551  * effect modes
552  */
553 #define PTP_EFFECTMODE_UNDEFINED                0x0000
554 #define PTP_EFFECTMODE_COLOR                    0x0001
555 #define PTP_EFFECTMODE_BW                       0x0002
556 #define PTP_EFFECTMODE_SEPIA                    0x0003
557
558 /*
559  * storage types
560  */
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
566
567 /*
568  * storage access capabilities
569  */
570 #define PTP_STORAGEACCESS_RWD                   0x0000
571 #define PTP_STORAGEACCESS_R                     0x0001
572 #define PTP_STORAGEACCESS_RD                    0x0002
573
574 /*
575  * association types:
576  */
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
586
587 /*
588  * protection status:
589  */
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
594
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
600
601 /*
602  * functional modes:
603  */
604 #define  PTP_FUNCTIONMODE_STANDARD                      0x0000
605 #define  PTP_FUNCTIONMODE_SLEEP                         0x0001
606
607 /*
608  * Get/Set
609  */
610 #define  PTP_PROPGETSET_GETONLY                         0x00
611 #define  PTP_PROPGETSET_GETSET                          0x01
612 #define  PTP_PROPGETSET_GETSET2                         0x02
613
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
621
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
635
636
637 /* Common Video Bit Rate */
638 #define MTP_VIDEO_BITRATE_MINIMUM        1000
639 #define MTP_VIDEO_BITRATE_BLUERAY        40000000
640
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
662
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
682
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
692
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
714
715
716 /*
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)
721  */
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
738
739 /* BIT RATE */
740 #define MTP_MIN_VIDEO_BITRATE                   0x0FA0
741 #define MTP_MAX_VIDEO_BITRATE                   0x1312D00
742
743 /* FPS */
744 #define MTP_MIN_VIDEO_FPS                       0
745 #define MTP_MAX_VIDEO_FPS                       0x7652
746
747 #define MTP_VIDEO_HEIGHT_WIDTH_INTERVAL         0x2
748 #define MTP_AUDIO_SAMPLE_RATE_INTERVAL          0x19
749
750 /*
751  * USB class-specific requests
752  */
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 */
759
760 #define USB_PTPCANCELIO_ID                      0x4001
761 #define USB_PTPREQUEST_CANCELIO_SIZE            6
762
763 #define MAX_PTP_STRING_CHARS                    255
764 #define MAX_PTP_TIME_STRING_CHARS               20      /* eg: 20050526T171236 */
765
766 /*
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.
770  */
771 typedef enum {
772         UINT8_TYPE,
773         UINT16_TYPE,
774         UINT32_TYPE,
775         PTR_TYPE,
776         UINT128_TYPE
777 } data_type_t;
778
779 /*
780  * brief A PTP array structure.
781  * The PTP array structure contains a variable length of data defined by the
782  * type field.
783  */
784 typedef struct {
785         data_type_t type;
786         mtp_uint32 arr_size;
787         mtp_uint32 num_ele;
788         void *array_entry;
789 } ptp_array_t;
790
791 typedef struct {
792         mtp_word year;
793         mtp_word month;
794         mtp_word day_of_week;
795         mtp_word day;
796         mtp_word hour;
797         mtp_word minute;
798         mtp_word second;
799         mtp_word millisecond;
800 } system_time_t;
801
802 /*
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.
807  */
808 typedef struct {
809         /* Num of chars in string including the NUL */
810         mtp_uchar num_chars;
811         /* Holds actual Unicode string with 2 bytes chars,'\0' terminated*/
812         mtp_wchar str[MAX_PTP_STRING_CHARS];
813 } ptp_string_t;
814
815 typedef struct {
816         /* Num of chars in string including the NUL */
817         mtp_uchar num_chars;
818         /* Holds actual Unicode string with 2 bytes chars,'\0' terminated*/
819         mtp_wchar str[MAX_PTP_TIME_STRING_CHARS];
820 } ptp_time_string_t;
821
822 #endif /* _PTP_DATACODES_H_ */