1/*
2 * Copyright (C) 2010 The Android Open Source Project
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
17package android.mtp;
18
19/**
20 * A class containing constants in the MTP and PTP specifications.
21 */
22public final class MtpConstants {
23
24    // MTP Data Types
25    /** @hide */
26    public static final int TYPE_UNDEFINED = 0x0000;
27    /** @hide */
28    public static final int TYPE_INT8 = 0x0001;
29    /** @hide */
30    public static final int TYPE_UINT8 = 0x0002;
31    /** @hide */
32    public static final int TYPE_INT16 = 0x0003;
33    /** @hide */
34    public static final int TYPE_UINT16 = 0x0004;
35    /** @hide */
36    public static final int TYPE_INT32 = 0x0005;
37    /** @hide */
38    public static final int TYPE_UINT32 = 0x0006;
39    /** @hide */
40    public static final int TYPE_INT64 = 0x0007;
41    /** @hide */
42    public static final int TYPE_UINT64 = 0x0008;
43    /** @hide */
44    public static final int TYPE_INT128 = 0x0009;
45    /** @hide */
46    public static final int TYPE_UINT128 = 0x000A;
47    /** @hide */
48    public static final int TYPE_AINT8 = 0x4001;
49    /** @hide */
50    public static final int TYPE_AUINT8 = 0x4002;
51    /** @hide */
52    public static final int TYPE_AINT16 = 0x4003;
53    /** @hide */
54    public static final int TYPE_AUINT16 = 0x4004;
55    /** @hide */
56    public static final int TYPE_AINT32 = 0x4005;
57    /** @hide */
58    public static final int TYPE_AUINT32 = 0x4006;
59    /** @hide */
60    public static final int TYPE_AINT64 = 0x4007;
61    /** @hide */
62    public static final int TYPE_AUINT64 = 0x4008;
63    /** @hide */
64    public static final int TYPE_AINT128 = 0x4009;
65    /** @hide */
66    public static final int TYPE_AUINT128 = 0x400A;
67    /** @hide */
68    public static final int TYPE_STR = 0xFFFF;
69
70    // MTP Response Codes
71    /** @hide */
72    public static final int RESPONSE_UNDEFINED = 0x2000;
73    /** @hide */
74    public static final int RESPONSE_OK = 0x2001;
75    /** @hide */
76    public static final int RESPONSE_GENERAL_ERROR = 0x2002;
77    /** @hide */
78    public static final int RESPONSE_SESSION_NOT_OPEN = 0x2003;
79    /** @hide */
80    public static final int RESPONSE_INVALID_TRANSACTION_ID = 0x2004;
81    /** @hide */
82    public static final int RESPONSE_OPERATION_NOT_SUPPORTED = 0x2005;
83    /** @hide */
84    public static final int RESPONSE_PARAMETER_NOT_SUPPORTED = 0x2006;
85    /** @hide */
86    public static final int RESPONSE_INCOMPLETE_TRANSFER = 0x2007;
87    /** @hide */
88    public static final int RESPONSE_INVALID_STORAGE_ID = 0x2008;
89    /** @hide */
90    public static final int RESPONSE_INVALID_OBJECT_HANDLE = 0x2009;
91    /** @hide */
92    public static final int RESPONSE_DEVICE_PROP_NOT_SUPPORTED = 0x200A;
93    /** @hide */
94    public static final int RESPONSE_INVALID_OBJECT_FORMAT_CODE = 0x200B;
95    /** @hide */
96    public static final int RESPONSE_STORAGE_FULL = 0x200C;
97    /** @hide */
98    public static final int RESPONSE_OBJECT_WRITE_PROTECTED = 0x200D;
99    /** @hide */
100    public static final int RESPONSE_STORE_READ_ONLY = 0x200E;
101    /** @hide */
102    public static final int RESPONSE_ACCESS_DENIED = 0x200F;
103    /** @hide */
104    public static final int RESPONSE_NO_THUMBNAIL_PRESENT = 0x2010;
105    /** @hide */
106    public static final int RESPONSE_SELF_TEST_FAILED = 0x2011;
107    /** @hide */
108    public static final int RESPONSE_PARTIAL_DELETION = 0x2012;
109    /** @hide */
110    public static final int RESPONSE_STORE_NOT_AVAILABLE = 0x2013;
111    /** @hide */
112    public static final int RESPONSE_SPECIFICATION_BY_FORMAT_UNSUPPORTED = 0x2014;
113    /** @hide */
114    public static final int RESPONSE_NO_VALID_OBJECT_INFO = 0x2015;
115    /** @hide */
116    public static final int RESPONSE_INVALID_CODE_FORMAT = 0x2016;
117    /** @hide */
118    public static final int RESPONSE_UNKNOWN_VENDOR_CODE = 0x2017;
119    /** @hide */
120    public static final int RESPONSE_CAPTURE_ALREADY_TERMINATED = 0x2018;
121    /** @hide */
122    public static final int RESPONSE_DEVICE_BUSY = 0x2019;
123    /** @hide */
124    public static final int RESPONSE_INVALID_PARENT_OBJECT = 0x201A;
125    /** @hide */
126    public static final int RESPONSE_INVALID_DEVICE_PROP_FORMAT = 0x201B;
127    /** @hide */
128    public static final int RESPONSE_INVALID_DEVICE_PROP_VALUE = 0x201C;
129    /** @hide */
130    public static final int RESPONSE_INVALID_PARAMETER = 0x201D;
131    /** @hide */
132    public static final int RESPONSE_SESSION_ALREADY_OPEN = 0x201E;
133    /** @hide */
134    public static final int RESPONSE_TRANSACTION_CANCELLED = 0x201F;
135    /** @hide */
136    public static final int RESPONSE_SPECIFICATION_OF_DESTINATION_UNSUPPORTED = 0x2020;
137    /** @hide */
138    public static final int RESPONSE_INVALID_OBJECT_PROP_CODE = 0xA801;
139    /** @hide */
140    public static final int RESPONSE_INVALID_OBJECT_PROP_FORMAT = 0xA802;
141    /** @hide */
142    public static final int RESPONSE_INVALID_OBJECT_PROP_VALUE = 0xA803;
143    /** @hide */
144    public static final int RESPONSE_INVALID_OBJECT_REFERENCE = 0xA804;
145    /** @hide */
146    public static final int RESPONSE_GROUP_NOT_SUPPORTED = 0xA805;
147    /** @hide */
148    public static final int RESPONSE_INVALID_DATASET = 0xA806;
149    /** @hide */
150    public static final int RESPONSE_SPECIFICATION_BY_GROUP_UNSUPPORTED = 0xA807;
151    /** @hide */
152    public static final int RESPONSE_SPECIFICATION_BY_DEPTH_UNSUPPORTED = 0xA808;
153    /** @hide */
154    public static final int RESPONSE_OBJECT_TOO_LARGE = 0xA809;
155    /** @hide */
156    public static final int RESPONSE_OBJECT_PROP_NOT_SUPPORTED = 0xA80A;
157
158    // MTP format codes
159    /** Undefined format code */
160    public static final int FORMAT_UNDEFINED = 0x3000;
161    /** Format code for associations (folders and directories) */
162    public static final int FORMAT_ASSOCIATION = 0x3001;
163    /** Format code for script files */
164    public static final int FORMAT_SCRIPT = 0x3002;
165    /** Format code for executable files */
166    public static final int FORMAT_EXECUTABLE = 0x3003;
167    /** Format code for text files */
168    public static final int FORMAT_TEXT = 0x3004;
169    /** Format code for HTML files */
170    public static final int FORMAT_HTML = 0x3005;
171    /** Format code for DPOF files */
172    public static final int FORMAT_DPOF = 0x3006;
173    /** Format code for AIFF audio files */
174    public static final int FORMAT_AIFF = 0x3007;
175    /** Format code for WAV audio files */
176    public static final int FORMAT_WAV = 0x3008;
177    /** Format code for MP3 audio files */
178    public static final int FORMAT_MP3 = 0x3009;
179    /** Format code for AVI video files */
180    public static final int FORMAT_AVI = 0x300A;
181    /** Format code for MPEG video files */
182    public static final int FORMAT_MPEG = 0x300B;
183    /** Format code for ASF files */
184    public static final int FORMAT_ASF = 0x300C;
185    /**
186     * Format code for unknown image files.
187     * <p>
188     * Will be used for the formats which are not specified in PTP specification.
189     * For instance, WEBP and WBMP.
190     */
191    public static final int FORMAT_DEFINED = 0x3800;
192    /** Format code for JPEG image files */
193    public static final int FORMAT_EXIF_JPEG = 0x3801;
194    /** Format code for TIFF EP image files */
195    public static final int FORMAT_TIFF_EP = 0x3802;
196    /** Format code for BMP image files */
197    public static final int FORMAT_BMP = 0x3804;
198    /** Format code for GIF image files */
199    public static final int FORMAT_GIF = 0x3807;
200    /** Format code for JFIF image files */
201    public static final int FORMAT_JFIF = 0x3808;
202    /** Format code for PICT image files */
203    public static final int FORMAT_PICT = 0x380A;
204    /** Format code for PNG image files */
205    public static final int FORMAT_PNG = 0x380B;
206    /** Format code for TIFF image files */
207    public static final int FORMAT_TIFF = 0x380D;
208    /** Format code for JP2 files */
209    public static final int FORMAT_JP2 = 0x380F;
210    /** Format code for JPX files */
211    public static final int FORMAT_JPX = 0x3810;
212    /** Format code for DNG files */
213    public static final int FORMAT_DNG = 0x3811;
214    /** Format code for HEIF files {@hide} */
215    public static final int FORMAT_HEIF = 0x3812;
216    /** Format code for firmware files */
217    public static final int FORMAT_UNDEFINED_FIRMWARE = 0xB802;
218    /** Format code for Windows image files */
219    public static final int FORMAT_WINDOWS_IMAGE_FORMAT = 0xB881;
220    /** Format code for undefined audio files files */
221    public static final int FORMAT_UNDEFINED_AUDIO = 0xB900;
222    /** Format code for WMA audio files */
223    public static final int FORMAT_WMA = 0xB901;
224    /** Format code for OGG audio files */
225    public static final int FORMAT_OGG = 0xB902;
226    /** Format code for AAC audio files */
227    public static final int FORMAT_AAC = 0xB903;
228    /** Format code for Audible audio files */
229    public static final int FORMAT_AUDIBLE = 0xB904;
230    /** Format code for FLAC audio files */
231    public static final int FORMAT_FLAC = 0xB906;
232    /** Format code for undefined video files */
233    public static final int FORMAT_UNDEFINED_VIDEO = 0xB980;
234    /** Format code for WMV video files */
235    public static final int FORMAT_WMV = 0xB981;
236    /** Format code for MP4 files */
237    public static final int FORMAT_MP4_CONTAINER = 0xB982;
238    /** Format code for MP2 files */
239    public static final int FORMAT_MP2 = 0xB983;
240    /** Format code for 3GP files */
241    public static final int FORMAT_3GP_CONTAINER = 0xB984;
242    /** Format code for undefined collections */
243    public static final int FORMAT_UNDEFINED_COLLECTION = 0xBA00;
244    /** Format code for multimedia albums */
245    public static final int FORMAT_ABSTRACT_MULTIMEDIA_ALBUM = 0xBA01;
246    /** Format code for image albums */
247    public static final int FORMAT_ABSTRACT_IMAGE_ALBUM = 0xBA02;
248    /** Format code for audio albums */
249    public static final int FORMAT_ABSTRACT_AUDIO_ALBUM = 0xBA03;
250    /** Format code for video albums */
251    public static final int FORMAT_ABSTRACT_VIDEO_ALBUM = 0xBA04;
252    /** Format code for abstract AV playlists */
253    public static final int FORMAT_ABSTRACT_AV_PLAYLIST = 0xBA05;
254    /** Format code for abstract audio playlists */
255    public static final int FORMAT_ABSTRACT_AUDIO_PLAYLIST = 0xBA09;
256    /** Format code for abstract video playlists */
257    public static final int FORMAT_ABSTRACT_VIDEO_PLAYLIST = 0xBA0A;
258    /** Format code for abstract mediacasts */
259    public static final int FORMAT_ABSTRACT_MEDIACAST = 0xBA0B;
260    /** Format code for WPL playlist files */
261    public static final int FORMAT_WPL_PLAYLIST = 0xBA10;
262    /** Format code for M3u playlist files */
263    public static final int FORMAT_M3U_PLAYLIST = 0xBA11;
264    /** Format code for MPL playlist files */
265    public static final int FORMAT_MPL_PLAYLIST = 0xBA12;
266    /** Format code for ASX playlist files */
267    public static final int FORMAT_ASX_PLAYLIST = 0xBA13;
268    /** Format code for PLS playlist files */
269    public static final int FORMAT_PLS_PLAYLIST = 0xBA14;
270    /** Format code for undefined document files */
271    public static final int FORMAT_UNDEFINED_DOCUMENT = 0xBA80;
272    /** Format code for abstract documents */
273    public static final int FORMAT_ABSTRACT_DOCUMENT = 0xBA81;
274    /** Format code for XML documents */
275    public static final int FORMAT_XML_DOCUMENT = 0xBA82;
276    /** Format code for MS Word documents */
277    public static final int FORMAT_MS_WORD_DOCUMENT = 0xBA83;
278    /** Format code for MS Excel spreadsheets */
279    public static final int FORMAT_MS_EXCEL_SPREADSHEET = 0xBA85;
280    /** Format code for MS PowerPoint presentatiosn */
281    public static final int FORMAT_MS_POWERPOINT_PRESENTATION = 0xBA86;
282
283    /**
284     * Returns true if the object is abstract (that is, it has no representation
285     * in the underlying file system).
286     *
287     * @param format the format of the object
288     * @return true if the object is abstract
289     */
290    public static boolean isAbstractObject(int format) {
291        switch (format) {
292            case FORMAT_ABSTRACT_MULTIMEDIA_ALBUM:
293            case FORMAT_ABSTRACT_IMAGE_ALBUM:
294            case FORMAT_ABSTRACT_AUDIO_ALBUM:
295            case FORMAT_ABSTRACT_VIDEO_ALBUM:
296            case FORMAT_ABSTRACT_AV_PLAYLIST:
297            case FORMAT_ABSTRACT_AUDIO_PLAYLIST:
298            case FORMAT_ABSTRACT_VIDEO_PLAYLIST:
299            case FORMAT_ABSTRACT_MEDIACAST:
300            case FORMAT_ABSTRACT_DOCUMENT:
301                return true;
302            default:
303                return false;
304        }
305    }
306
307    // MTP object properties
308    /** @hide */
309    public static final int PROPERTY_STORAGE_ID = 0xDC01;
310    /** @hide */
311    public static final int PROPERTY_OBJECT_FORMAT = 0xDC02;
312    /** @hide */
313    public static final int PROPERTY_PROTECTION_STATUS = 0xDC03;
314    /** @hide */
315    public static final int PROPERTY_OBJECT_SIZE = 0xDC04;
316    /** @hide */
317    public static final int PROPERTY_ASSOCIATION_TYPE = 0xDC05;
318    /** @hide */
319    public static final int PROPERTY_ASSOCIATION_DESC = 0xDC06;
320    /** @hide */
321    public static final int PROPERTY_OBJECT_FILE_NAME = 0xDC07;
322    /** @hide */
323    public static final int PROPERTY_DATE_CREATED = 0xDC08;
324    /** @hide */
325    public static final int PROPERTY_DATE_MODIFIED = 0xDC09;
326    /** @hide */
327    public static final int PROPERTY_KEYWORDS = 0xDC0A;
328    /** @hide */
329    public static final int PROPERTY_PARENT_OBJECT = 0xDC0B;
330    /** @hide */
331    public static final int PROPERTY_ALLOWED_FOLDER_CONTENTS = 0xDC0C;
332    /** @hide */
333    public static final int PROPERTY_HIDDEN = 0xDC0D;
334    /** @hide */
335    public static final int PROPERTY_SYSTEM_OBJECT = 0xDC0E;
336    /** @hide */
337    public static final int PROPERTY_PERSISTENT_UID = 0xDC41;
338    /** @hide */
339    public static final int PROPERTY_SYNC_ID = 0xDC42;
340    /** @hide */
341    public static final int PROPERTY_PROPERTY_BAG = 0xDC43;
342    /** @hide */
343    public static final int PROPERTY_NAME = 0xDC44;
344    /** @hide */
345    public static final int PROPERTY_CREATED_BY = 0xDC45;
346    /** @hide */
347    public static final int PROPERTY_ARTIST = 0xDC46;
348    /** @hide */
349    public static final int PROPERTY_DATE_AUTHORED = 0xDC47;
350    /** @hide */
351    public static final int PROPERTY_DESCRIPTION = 0xDC48;
352    /** @hide */
353    public static final int PROPERTY_URL_REFERENCE = 0xDC49;
354    /** @hide */
355    public static final int PROPERTY_LANGUAGE_LOCALE = 0xDC4A;
356    /** @hide */
357    public static final int PROPERTY_COPYRIGHT_INFORMATION = 0xDC4B;
358    /** @hide */
359    public static final int PROPERTY_SOURCE = 0xDC4C;
360    /** @hide */
361    public static final int PROPERTY_ORIGIN_LOCATION = 0xDC4D;
362    /** @hide */
363    public static final int PROPERTY_DATE_ADDED = 0xDC4E;
364    /** @hide */
365    public static final int PROPERTY_NON_CONSUMABLE = 0xDC4F;
366    /** @hide */
367    public static final int PROPERTY_CORRUPT_UNPLAYABLE = 0xDC50;
368    /** @hide */
369    public static final int PROPERTY_PRODUCER_SERIAL_NUMBER = 0xDC51;
370    /** @hide */
371    public static final int PROPERTY_REPRESENTATIVE_SAMPLE_FORMAT = 0xDC81;
372    /** @hide */
373    public static final int PROPERTY_REPRESENTATIVE_SAMPLE_SIZE = 0xDC82;
374    /** @hide */
375    public static final int PROPERTY_REPRESENTATIVE_SAMPLE_HEIGHT = 0xDC83;
376    /** @hide */
377    public static final int PROPERTY_REPRESENTATIVE_SAMPLE_WIDTH = 0xDC84;
378    /** @hide */
379    public static final int PROPERTY_REPRESENTATIVE_SAMPLE_DURATION = 0xDC85;
380    /** @hide */
381    public static final int PROPERTY_REPRESENTATIVE_SAMPLE_DATA = 0xDC86;
382    /** @hide */
383    public static final int PROPERTY_WIDTH = 0xDC87;
384    /** @hide */
385    public static final int PROPERTY_HEIGHT = 0xDC88;
386    /** @hide */
387    public static final int PROPERTY_DURATION = 0xDC89;
388    /** @hide */
389    public static final int PROPERTY_RATING = 0xDC8A;
390    /** @hide */
391    public static final int PROPERTY_TRACK = 0xDC8B;
392    /** @hide */
393    public static final int PROPERTY_GENRE = 0xDC8C;
394    /** @hide */
395    public static final int PROPERTY_CREDITS = 0xDC8D;
396    /** @hide */
397    public static final int PROPERTY_LYRICS = 0xDC8E;
398    /** @hide */
399    public static final int PROPERTY_SUBSCRIPTION_CONTENT_ID = 0xDC8F;
400    /** @hide */
401    public static final int PROPERTY_PRODUCED_BY = 0xDC90;
402    /** @hide */
403    public static final int PROPERTY_USE_COUNT = 0xDC91;
404    /** @hide */
405    public static final int PROPERTY_SKIP_COUNT = 0xDC92;
406    /** @hide */
407    public static final int PROPERTY_LAST_ACCESSED = 0xDC93;
408    /** @hide */
409    public static final int PROPERTY_PARENTAL_RATING = 0xDC94;
410    /** @hide */
411    public static final int PROPERTY_META_GENRE = 0xDC95;
412    /** @hide */
413    public static final int PROPERTY_COMPOSER = 0xDC96;
414    /** @hide */
415    public static final int PROPERTY_EFFECTIVE_RATING = 0xDC97;
416    /** @hide */
417    public static final int PROPERTY_SUBTITLE = 0xDC98;
418    /** @hide */
419    public static final int PROPERTY_ORIGINAL_RELEASE_DATE = 0xDC99;
420    /** @hide */
421    public static final int PROPERTY_ALBUM_NAME = 0xDC9A;
422    /** @hide */
423    public static final int PROPERTY_ALBUM_ARTIST = 0xDC9B;
424    /** @hide */
425    public static final int PROPERTY_MOOD = 0xDC9C;
426    /** @hide */
427    public static final int PROPERTY_DRM_STATUS = 0xDC9D;
428    /** @hide */
429    public static final int PROPERTY_SUB_DESCRIPTION = 0xDC9E;
430    /** @hide */
431    public static final int PROPERTY_IS_CROPPED = 0xDCD1;
432    /** @hide */
433    public static final int PROPERTY_IS_COLOUR_CORRECTED = 0xDCD2;
434    /** @hide */
435    public static final int PROPERTY_IMAGE_BIT_DEPTH = 0xDCD3;
436    /** @hide */
437    public static final int PROPERTY_F_NUMBER = 0xDCD4;
438    /** @hide */
439    public static final int PROPERTY_EXPOSURE_TIME = 0xDCD5;
440    /** @hide */
441    public static final int PROPERTY_EXPOSURE_INDEX = 0xDCD6;
442    /** @hide */
443    public static final int PROPERTY_TOTAL_BITRATE = 0xDE91;
444    /** @hide */
445    public static final int PROPERTY_BITRATE_TYPE = 0xDE92;
446    /** @hide */
447    public static final int PROPERTY_SAMPLE_RATE = 0xDE93;
448    /** @hide */
449    public static final int PROPERTY_NUMBER_OF_CHANNELS = 0xDE94;
450    /** @hide */
451    public static final int PROPERTY_AUDIO_BIT_DEPTH = 0xDE95;
452    /** @hide */
453    public static final int PROPERTY_SCAN_TYPE = 0xDE97;
454    /** @hide */
455    public static final int PROPERTY_AUDIO_WAVE_CODEC = 0xDE99;
456    /** @hide */
457    public static final int PROPERTY_AUDIO_BITRATE = 0xDE9A;
458    /** @hide */
459    public static final int PROPERTY_VIDEO_FOURCC_CODEC = 0xDE9B;
460    /** @hide */
461    public static final int PROPERTY_VIDEO_BITRATE = 0xDE9C;
462    /** @hide */
463    public static final int PROPERTY_FRAMES_PER_THOUSAND_SECONDS = 0xDE9D;
464    /** @hide */
465    public static final int PROPERTY_KEYFRAME_DISTANCE = 0xDE9E;
466    /** @hide */
467    public static final int PROPERTY_BUFFER_SIZE = 0xDE9F;
468    /** @hide */
469    public static final int PROPERTY_ENCODING_QUALITY = 0xDEA0;
470    /** @hide */
471    public static final int PROPERTY_ENCODING_PROFILE = 0xDEA1;
472    /** @hide */
473    public static final int PROPERTY_DISPLAY_NAME = 0xDCE0;
474
475    // MTP device properties
476    /** @hide */
477    public static final int DEVICE_PROPERTY_UNDEFINED = 0x5000;
478    /** @hide */
479    public static final int DEVICE_PROPERTY_BATTERY_LEVEL = 0x5001;
480    /** @hide */
481    public static final int DEVICE_PROPERTY_FUNCTIONAL_MODE = 0x5002;
482    /** @hide */
483    public static final int DEVICE_PROPERTY_IMAGE_SIZE = 0x5003;
484    /** @hide */
485    public static final int DEVICE_PROPERTY_COMPRESSION_SETTING = 0x5004;
486    /** @hide */
487    public static final int DEVICE_PROPERTY_WHITE_BALANCE = 0x5005;
488    /** @hide */
489    public static final int DEVICE_PROPERTY_RGB_GAIN = 0x5006;
490    /** @hide */
491    public static final int DEVICE_PROPERTY_F_NUMBER = 0x5007;
492    /** @hide */
493    public static final int DEVICE_PROPERTY_FOCAL_LENGTH = 0x5008;
494    /** @hide */
495    public static final int DEVICE_PROPERTY_FOCUS_DISTANCE = 0x5009;
496    /** @hide */
497    public static final int DEVICE_PROPERTY_FOCUS_MODE = 0x500A;
498    /** @hide */
499    public static final int DEVICE_PROPERTY_EXPOSURE_METERING_MODE = 0x500B;
500    /** @hide */
501    public static final int DEVICE_PROPERTY_FLASH_MODE = 0x500C;
502    /** @hide */
503    public static final int DEVICE_PROPERTY_EXPOSURE_TIME = 0x500D;
504    /** @hide */
505    public static final int DEVICE_PROPERTY_EXPOSURE_PROGRAM_MODE = 0x500E;
506    /** @hide */
507    public static final int DEVICE_PROPERTY_EXPOSURE_INDEX = 0x500F;
508    /** @hide */
509    public static final int DEVICE_PROPERTY_EXPOSURE_BIAS_COMPENSATION = 0x5010;
510    /** @hide */
511    public static final int DEVICE_PROPERTY_DATETIME = 0x5011;
512    /** @hide */
513    public static final int DEVICE_PROPERTY_CAPTURE_DELAY = 0x5012;
514    /** @hide */
515    public static final int DEVICE_PROPERTY_STILL_CAPTURE_MODE = 0x5013;
516    /** @hide */
517    public static final int DEVICE_PROPERTY_CONTRAST = 0x5014;
518    /** @hide */
519    public static final int DEVICE_PROPERTY_SHARPNESS = 0x5015;
520    /** @hide */
521    public static final int DEVICE_PROPERTY_DIGITAL_ZOOM = 0x5016;
522    /** @hide */
523    public static final int DEVICE_PROPERTY_EFFECT_MODE = 0x5017;
524    /** @hide */
525    public static final int DEVICE_PROPERTY_BURST_NUMBER= 0x5018;
526    /** @hide */
527    public static final int DEVICE_PROPERTY_BURST_INTERVAL = 0x5019;
528    /** @hide */
529    public static final int DEVICE_PROPERTY_TIMELAPSE_NUMBER = 0x501A;
530    /** @hide */
531    public static final int DEVICE_PROPERTY_TIMELAPSE_INTERVAL = 0x501B;
532    /** @hide */
533    public static final int DEVICE_PROPERTY_FOCUS_METERING_MODE = 0x501C;
534    /** @hide */
535    public static final int DEVICE_PROPERTY_UPLOAD_URL = 0x501D;
536    /** @hide */
537    public static final int DEVICE_PROPERTY_ARTIST = 0x501E;
538    /** @hide */
539    public static final int DEVICE_PROPERTY_COPYRIGHT_INFO = 0x501F;
540    /** @hide */
541    public static final int DEVICE_PROPERTY_SYNCHRONIZATION_PARTNER = 0xD401;
542    /** @hide */
543    public static final int DEVICE_PROPERTY_DEVICE_FRIENDLY_NAME = 0xD402;
544    /** @hide */
545    public static final int DEVICE_PROPERTY_VOLUME = 0xD403;
546    /** @hide */
547    public static final int DEVICE_PROPERTY_SUPPORTED_FORMATS_ORDERED = 0xD404;
548    /** @hide */
549    public static final int DEVICE_PROPERTY_DEVICE_ICON = 0xD405;
550    /** @hide */
551    public static final int DEVICE_PROPERTY_PLAYBACK_RATE = 0xD410;
552    /** @hide */
553    public static final int DEVICE_PROPERTY_PLAYBACK_OBJECT = 0xD411;
554    /** @hide */
555    public static final int DEVICE_PROPERTY_PLAYBACK_CONTAINER_INDEX = 0xD412;
556    /** @hide */
557    public static final int DEVICE_PROPERTY_SESSION_INITIATOR_VERSION_INFO = 0xD406;
558    /** @hide */
559    public static final int DEVICE_PROPERTY_PERCEIVED_DEVICE_TYPE = 0xD407;
560
561    /**
562     * Object is not protected. It may be modified and deleted, and its properties
563     * may be modified.
564     */
565    public static final int PROTECTION_STATUS_NONE = 0;
566
567    /**
568     * Object can not be modified or deleted and its properties can not be modified.
569     */
570    public static final int PROTECTION_STATUS_READ_ONLY = 0x8001;
571
572    /**
573     * Object can not be modified or deleted but its properties are modifiable.
574     */
575    public static final int PROTECTION_STATUS_READ_ONLY_DATA = 0x8002;
576
577    /**
578     * Object's contents can not be transfered from the device, but the object
579     * may be moved or deleted and its properties may be modified.
580     */
581    public static final int PROTECTION_STATUS_NON_TRANSFERABLE_DATA = 0x8003;
582
583    /**
584     * Association type for objects representing file system directories.
585     */
586    public static final int ASSOCIATION_TYPE_GENERIC_FOLDER = 0x0001;
587
588    /** Operation code for GetDeviceInfo */
589    public static final int OPERATION_GET_DEVICE_INFO = 0x1001;
590    /** Operation code for OpenSession */
591    public static final int OPERATION_OPEN_SESSION = 0x1002;
592    /** Operation code for CloseSession */
593    public static final int OPERATION_CLOSE_SESSION = 0x1003;
594    /** Operation code for GetStorageIDs */
595    public static final int OPERATION_GET_STORAGE_I_DS = 0x1004;
596    /** Operation code for GetStorageInfo */
597    public static final int OPERATION_GET_STORAGE_INFO = 0x1005;
598    /** Operation code for GetNumObjects */
599    public static final int OPERATION_GET_NUM_OBJECTS = 0x1006;
600    /** Operation code for GetObjectHandles */
601    public static final int OPERATION_GET_OBJECT_HANDLES = 0x1007;
602    /** Operation code for GetObjectInfo */
603    public static final int OPERATION_GET_OBJECT_INFO = 0x1008;
604    /** Operation code for GetObject */
605    public static final int OPERATION_GET_OBJECT = 0x1009;
606    /** Operation code for GetThumb */
607    public static final int OPERATION_GET_THUMB = 0x100A;
608    /** Operation code for DeleteObject */
609    public static final int OPERATION_DELETE_OBJECT = 0x100B;
610    /** Operation code for SendObjectInfo */
611    public static final int OPERATION_SEND_OBJECT_INFO = 0x100C;
612    /** Operation code for SendObject */
613    public static final int OPERATION_SEND_OBJECT = 0x100D;
614    /** Operation code for InitiateCapture */
615    public static final int OPERATION_INITIATE_CAPTURE = 0x100E;
616    /** Operation code for FormatStore */
617    public static final int OPERATION_FORMAT_STORE = 0x100F;
618    /** Operation code for ResetDevice */
619    public static final int OPERATION_RESET_DEVICE = 0x1010;
620    /** Operation code for SelfTest */
621    public static final int OPERATION_SELF_TEST = 0x1011;
622    /** Operation code for SetObjectProtection */
623    public static final int OPERATION_SET_OBJECT_PROTECTION = 0x1012;
624    /** Operation code for PowerDown */
625    public static final int OPERATION_POWER_DOWN = 0x1013;
626    /** Operation code for GetDevicePropDesc */
627    public static final int OPERATION_GET_DEVICE_PROP_DESC = 0x1014;
628    /** Operation code for GetDevicePropValue */
629    public static final int OPERATION_GET_DEVICE_PROP_VALUE = 0x1015;
630    /** Operation code for SetDevicePropValue */
631    public static final int OPERATION_SET_DEVICE_PROP_VALUE = 0x1016;
632    /** Operation code for ResetDevicePropValue */
633    public static final int OPERATION_RESET_DEVICE_PROP_VALUE = 0x1017;
634    /** Operation code for TerminateOpenCapture */
635    public static final int OPERATION_TERMINATE_OPEN_CAPTURE = 0x1018;
636    /** Operation code for MoveObject */
637    public static final int OPERATION_MOVE_OBJECT = 0x1019;
638    /** Operation code for CopyObject */
639    public static final int OPERATION_COPY_OBJECT = 0x101A;
640    /** Operation code for GetPartialObject */
641    public static final int OPERATION_GET_PARTIAL_OBJECT = 0x101B;
642    /** Operation code for InitiateOpenCapture */
643    public static final int OPERATION_INITIATE_OPEN_CAPTURE = 0x101C;
644    /** Operation code for GetObjectPropsSupported */
645    public static final int OPERATION_GET_OBJECT_PROPS_SUPPORTED = 0x9801;
646    /** Operation code for GetObjectPropDesc */
647    public static final int OPERATION_GET_OBJECT_PROP_DESC = 0x9802;
648    /** Operation code for GetObjectPropValue */
649    public static final int OPERATION_GET_OBJECT_PROP_VALUE = 0x9803;
650    /** Operation code for SetObjectPropValue */
651    public static final int OPERATION_SET_OBJECT_PROP_VALUE = 0x9804;
652    /** Operation code for GetObjectReferences */
653    public static final int OPERATION_GET_OBJECT_REFERENCES = 0x9810;
654    /** Operation code for SetObjectReferences */
655    public static final int OPERATION_SET_OBJECT_REFERENCES = 0x9811;
656    /** Operation code for Skip */
657    public static final int OPERATION_SKIP = 0x9820;
658    /** Operation code for GetPartialObject64 */
659    public static final int OPERATION_GET_PARTIAL_OBJECT_64 = 0x95C1;
660}
661