116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood/*
216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * Copyright (C) 2010 The Android Open Source Project
316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood *
416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * Licensed under the Apache License, Version 2.0 (the "License");
516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * you may not use this file except in compliance with the License.
616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * You may obtain a copy of the License at
716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood *
816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood *      http://www.apache.org/licenses/LICENSE-2.0
916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood *
1016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * Unless required by applicable law or agreed to in writing, software
1116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * distributed under the License is distributed on an "AS IS" BASIS,
1216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * See the License for the specific language governing permissions and
1416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * limitations under the License.
1516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood */
1616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
1716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#ifndef _MTP_H
1816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define _MTP_H
1916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
2016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#include <stdint.h>
216a2736ba7bc19947a6c0bff4dca50595baa78b37Kenny Root#include <stdlib.h>
2216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
2316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_STANDARD_VERSION            100
2416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
2516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood// Container Types
2616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_CONTAINER_TYPE_UNDEFINED    0
2716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_CONTAINER_TYPE_COMMAND      1
2816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_CONTAINER_TYPE_DATA         2
2916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_CONTAINER_TYPE_RESPONSE     3
3016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_CONTAINER_TYPE_EVENT        4
3116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
3216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood// Container Offsets
3316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_CONTAINER_LENGTH_OFFSET             0
3416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_CONTAINER_TYPE_OFFSET               4
3516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_CONTAINER_CODE_OFFSET               6
3616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_CONTAINER_TRANSACTION_ID_OFFSET     8
3716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_CONTAINER_PARAMETER_OFFSET          12
3816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_CONTAINER_HEADER_SIZE               12
3916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
40b6da06e9dfb916da4b88e09e8a83e22ddae445b5Mike Lockwood// MTP Data Types
4116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_UNDEFINED      0x0000          // Undefined
4216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_INT8           0x0001          // Signed 8-bit integer
4316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_UINT8          0x0002          // Unsigned 8-bit integer
4416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_INT16          0x0003          // Signed 16-bit integer
4516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_UINT16         0x0004          // Unsigned 16-bit integer
4616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_INT32          0x0005          // Signed 32-bit integer
4716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_UINT32         0x0006          // Unsigned 32-bit integer
4816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_INT64          0x0007          // Signed 64-bit integer
4916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_UINT64         0x0008          // Unsigned 64-bit integer
5016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_INT128         0x0009          // Signed 128-bit integer
5116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_UINT128        0x000A          // Unsigned 128-bit integer
5216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_AINT8          0x4001          // Array of signed 8-bit integers
5316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_AUINT8         0x4002          // Array of unsigned 8-bit integers
5416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_AINT16         0x4003          // Array of signed 16-bit integers
5516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_AUINT16        0x4004          // Array of unsigned 16-bit integers
5616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_AINT32         0x4005          // Array of signed 32-bit integers
5716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_AUINT32        0x4006          // Array of unsigned 32-bit integers
5816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_AINT64         0x4007          // Array of signed 64-bit integers
5916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_AUINT64        0x4008          // Array of unsigned 64-bit integers
6016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_AINT128        0x4009          // Array of signed 128-bit integers
6116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_AUINT128       0x400A          // Array of unsigned 128-bit integers
6216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_TYPE_STR            0xFFFF          // Variable-length Unicode string
6316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
6416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood// MTP Format Codes
6516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_UNDEFINED                            0x3000   // Undefined object
6616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ASSOCIATION                          0x3001   // Association (for example, a folder)
6716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_SCRIPT                               0x3002   // Device model-specific script
6816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_EXECUTABLE                           0x3003   // Device model-specific binary executable
6916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_TEXT                                 0x3004   // Text file
7016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_HTML                                 0x3005   // Hypertext Markup Language file (text)
7116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_DPOF                                 0x3006   // Digital Print Order Format file (text)
7216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_AIFF                                 0x3007   // Audio clip
7316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_WAV                                  0x3008   // Audio clip
7416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_MP3                                  0x3009   // Audio clip
7516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_AVI                                  0x300A   // Video clip
7616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_MPEG                                 0x300B   // Video clip
7716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ASF                                  0x300C   // Microsoft Advanced Streaming Format (video)
7816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_DEFINED                              0x3800   // Unknown image object
7916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_EXIF_JPEG                            0x3801   // Exchangeable File Format, JEIDA standard
8016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_TIFF_EP                              0x3802   // Tag Image File Format for Electronic Photography
8116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_FLASHPIX                             0x3803   // Structured Storage Image Format
8216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_BMP                                  0x3804   // Microsoft Windows Bitmap file
8316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_CIFF                                 0x3805   // Canon Camera Image File Format
8416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_GIF                                  0x3807   // Graphics Interchange Format
8516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_JFIF                                 0x3808   // JPEG File Interchange Format
8616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_CD                                   0x3809   // PhotoCD Image Pac
8716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_PICT                                 0x380A   // Quickdraw Image Format
8816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_PNG                                  0x380B   // Portable Network Graphics
8916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_TIFF                                 0x380D   // Tag Image File Format
9016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_TIFF_IT                              0x380E   // Tag Image File Format for Information Technology (graphic arts)
9116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_JP2                                  0x380F   // JPEG2000 Baseline File Format
9216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_JPX                                  0x3810   // JPEG2000 Extended File Format
9316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_UNDEFINED_FIRMWARE                   0xB802
9416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_WINDOWS_IMAGE_FORMAT                 0xB881
9516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_UNDEFINED_AUDIO                      0xB900
9616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_WMA                                  0xB901
9716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_OGG                                  0xB902
9816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_AAC                                  0xB903
9916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_AUDIBLE                              0xB904
10016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_FLAC                                 0xB906
10116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_UNDEFINED_VIDEO                      0xB980
10216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_WMV                                  0xB981
10316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_MP4_CONTAINER                        0xB982  // ISO 14496-1
10416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_MP2                                  0xB983
10516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_3GP_CONTAINER                        0xB984  // 3GPP file format. Details: http://www.3gpp.org/ftp/Specs/html-info/26244.htm (page title - \u201cTransparent end-to-end packet switched streaming service, 3GPP file format\u201d).
10616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_UNDEFINED_COLLECTION                 0xBA00
10716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ABSTRACT_MULTIMEDIA_ALBUM            0xBA01
10816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ABSTRACT_IMAGE_ALBUM                 0xBA02
10916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ABSTRACT_AUDIO_ALBUM                 0xBA03
11016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ABSTRACT_VIDEO_ALBUM                 0xBA04
11116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ABSTRACT_AV_PLAYLIST                 0xBA05
11216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ABSTRACT_CONTACT_GROUP               0xBA06
11316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ABSTRACT_MESSAGE_FOLDER              0xBA07
11416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ABSTRACT_CHAPTERED_PRODUCTION        0xBA08
11516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ABSTRACT_AUDIO_PLAYLIST              0xBA09
11616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ABSTRACT_VIDEO_PLAYLIST              0xBA0A
11716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ABSTRACT_MEDIACAST                   0xBA0B // For use with mediacasts; references multimedia enclosures of RSS feeds or episodic content
11816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_WPL_PLAYLIST                         0xBA10
11916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_M3U_PLAYLIST                         0xBA11
12016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_MPL_PLAYLIST                         0xBA12
12116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ASX_PLAYLIST                         0xBA13
12216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_PLS_PLAYLIST                         0xBA14
12316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_UNDEFINED_DOCUMENT                   0xBA80
12416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ABSTRACT_DOCUMENT                    0xBA81
12516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_XML_DOCUMENT                         0xBA82
12616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_MS_WORD_DOCUMENT                     0xBA83
12716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_MHT_COMPILED_HTML_DOCUMENT           0xBA84
12816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_MS_EXCEL_SPREADSHEET                 0xBA85
12916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_MS_POWERPOINT_PRESENTATION           0xBA86
13016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_UNDEFINED_MESSAGE                    0xBB00
13116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ABSTRACT_MESSSAGE                    0xBB01
13216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_UNDEFINED_CONTACT                    0xBB80
13316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_ABSTRACT_CONTACT                     0xBB81
13416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_FORMAT_VCARD_2                              0xBB82
13516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
13616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood// MTP Object Property Codes
13716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_STORAGE_ID                             0xDC01
13816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_OBJECT_FORMAT                          0xDC02
13916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PROTECTION_STATUS                      0xDC03
14016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_OBJECT_SIZE                            0xDC04
14116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ASSOCIATION_TYPE                       0xDC05
14216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ASSOCIATION_DESC                       0xDC06
14316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_OBJECT_FILE_NAME                       0xDC07
14416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_DATE_CREATED                           0xDC08
14516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_DATE_MODIFIED                          0xDC09
14616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_KEYWORDS                               0xDC0A
14716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PARENT_OBJECT                          0xDC0B
14816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ALLOWED_FOLDER_CONTENTS                0xDC0C
14916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_HIDDEN                                 0xDC0D
15016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_SYSTEM_OBJECT                          0xDC0E
15116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PERSISTENT_UID                         0xDC41
15216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_SYNC_ID                                0xDC42
15316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PROPERTY_BAG                           0xDC43
15416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_NAME                                   0xDC44
15516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_CREATED_BY                             0xDC45
15616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ARTIST                                 0xDC46
15716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_DATE_AUTHORED                          0xDC47
15816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_DESCRIPTION                            0xDC48
15916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_URL_REFERENCE                          0xDC49
16016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_LANGUAGE_LOCALE                        0xDC4A
16116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_COPYRIGHT_INFORMATION                  0xDC4B
16216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_SOURCE                                 0xDC4C
16316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ORIGIN_LOCATION                        0xDC4D
16416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_DATE_ADDED                             0xDC4E
16516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_NON_CONSUMABLE                         0xDC4F
16616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_CORRUPT_UNPLAYABLE                     0xDC50
16716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PRODUCER_SERIAL_NUMBER                 0xDC51
16816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_REPRESENTATIVE_SAMPLE_FORMAT           0xDC81
16916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_REPRESENTATIVE_SAMPLE_SIZE             0xDC82
17016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_REPRESENTATIVE_SAMPLE_HEIGHT           0xDC83
17116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_REPRESENTATIVE_SAMPLE_WIDTH            0xDC84
17216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_REPRESENTATIVE_SAMPLE_DURATION         0xDC85
17316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_REPRESENTATIVE_SAMPLE_DATA             0xDC86
17416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_WIDTH                                  0xDC87
17516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_HEIGHT                                 0xDC88
17616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_DURATION                               0xDC89
17716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_RATING                                 0xDC8A
17816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_TRACK                                  0xDC8B
17916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_GENRE                                  0xDC8C
18016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_CREDITS                                0xDC8D
18116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_LYRICS                                 0xDC8E
18216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_SUBSCRIPTION_CONTENT_ID                0xDC8F
18316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PRODUCED_BY                            0xDC90
18416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_USE_COUNT                              0xDC91
18516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_SKIP_COUNT                             0xDC92
18616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_LAST_ACCESSED                          0xDC93
18716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PARENTAL_RATING                        0xDC94
18816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_META_GENRE                             0xDC95
18916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_COMPOSER                               0xDC96
19016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_EFFECTIVE_RATING                       0xDC97
19116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_SUBTITLE                               0xDC98
19216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ORIGINAL_RELEASE_DATE                  0xDC99
19316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ALBUM_NAME                             0xDC9A
19416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ALBUM_ARTIST                           0xDC9B
19516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_MOOD                                   0xDC9C
19616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_DRM_STATUS                             0xDC9D
19716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_SUB_DESCRIPTION                        0xDC9E
19816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_IS_CROPPED                             0xDCD1
19916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_IS_COLOUR_CORRECTED                    0xDCD2
20016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_IMAGE_BIT_DEPTH                        0xDCD3
20116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_F_NUMBER                               0xDCD4
20216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_EXPOSURE_TIME                          0xDCD5
20316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_EXPOSURE_INDEX                         0xDCD6
20416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_TOTAL_BITRATE                          0xDE91
20516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_BITRATE_TYPE                           0xDE92
20616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_SAMPLE_RATE                            0xDE93
20716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_NUMBER_OF_CHANNELS                     0xDE94
20816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_AUDIO_BIT_DEPTH                        0xDE95
20916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_SCAN_TYPE                              0xDE97
21016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_AUDIO_WAVE_CODEC                       0xDE99
21116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_AUDIO_BITRATE                          0xDE9A
21216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_VIDEO_FOURCC_CODEC                     0xDE9B
21316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_VIDEO_BITRATE                          0xDE9C
21416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_FRAMES_PER_THOUSAND_SECONDS            0xDE9D
21516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_KEYFRAME_DISTANCE                      0xDE9E
21616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_BUFFER_SIZE                            0xDE9F
21716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ENCODING_QUALITY                       0xDEA0
21816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ENCODING_PROFILE                       0xDEA1
21916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_DISPLAY_NAME                           0xDCE0
22016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_BODY_TEXT                              0xDCE1
22116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_SUBJECT                                0xDCE2
22216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PRIORITY                               0xDCE3
22316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_GIVEN_NAME                             0xDD00
22416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_MIDDLE_NAMES                           0xDD01
22516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_FAMILY_NAME                            0xDD02
22616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PREFIX                                 0xDD03
22716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_SUFFIX                                 0xDD04
22816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PHONETIC_GIVEN_NAME                    0xDD05
22916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PHONETIC_FAMILY_NAME                   0xDD06
23016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_EMAIL_PRIMARY                          0xDD07
23116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_EMAIL_PERSONAL_1                       0xDD08
23216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_EMAIL_PERSONAL_2                       0xDD09
23316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_EMAIL_BUSINESS_1                       0xDD0A
23416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_EMAIL_BUSINESS_2                       0xDD0B
23516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_EMAIL_OTHERS                           0xDD0C
23616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PHONE_NUMBER_PRIMARY                   0xDD0D
23716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PHONE_NUMBER_PERSONAL                  0xDD0E
23816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PHONE_NUMBER_PERSONAL_2                0xDD0F
23916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PHONE_NUMBER_BUSINESS                  0xDD10
24016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PHONE_NUMBER_BUSINESS_2                0xDD11
24116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PHONE_NUMBER_MOBILE                    0xDD12
24216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PHONE_NUMBER_MOBILE_2                  0xDD13
24316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_FAX_NUMBER_PRIMARY                     0xDD14
24416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_FAX_NUMBER_PERSONAL                    0xDD15
24516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_FAX_NUMBER_BUSINESS                    0xDD16
24616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PAGER_NUMBER                           0xDD17
24716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PHONE_NUMBER_OTHERS                    0xDD18
24816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PRIMARY_WEB_ADDRESS                    0xDD19
24916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PERSONAL_WEB_ADDRESS                   0xDD1A
25016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_BUSINESS_WEB_ADDRESS                   0xDD1B
25116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_INSTANT_MESSANGER_ADDRESS              0xDD1C
25216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_INSTANT_MESSANGER_ADDRESS_2            0xDD1D
25316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_INSTANT_MESSANGER_ADDRESS_3            0xDD1E
25416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_FULL           0xDD1F
25516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_LINE_1         0xDD20
25616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_LINE_2         0xDD21
25716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_CITY           0xDD22
25816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_REGION         0xDD23
25916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_POSTAL_CODE    0xDD24
26016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_COUNTRY        0xDD25
26116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_FULL           0xDD26
26216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_LINE_1         0xDD27
26316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_LINE_2         0xDD28
26416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_CITY           0xDD29
26516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_REGION         0xDD2A
26616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_POSTAL_CODE    0xDD2B
26716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_COUNTRY        0xDD2C
26816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_OTHER_FULL              0xDD2D
26916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_OTHER_LINE_1            0xDD2E
27016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_OTHER_LINE_2            0xDD2F
27116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_OTHER_CITY              0xDD30
27216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_OTHER_REGION            0xDD31
27316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_OTHER_POSTAL_CODE       0xDD32
27416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_POSTAL_ADDRESS_OTHER_COUNTRY           0xDD33
27516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ORGANIZATION_NAME                      0xDD34
27616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_PHONETIC_ORGANIZATION_NAME             0xDD35
27716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ROLE                                   0xDD36
27816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_BIRTHDATE                              0xDD37
27916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_MESSAGE_TO                             0xDD40
28016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_MESSAGE_CC                             0xDD41
28116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_MESSAGE_BCC                            0xDD42
28216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_MESSAGE_READ                           0xDD43
28316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_MESSAGE_RECEIVED_TIME                  0xDD44
28416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_MESSAGE_SENDER                         0xDD45
28516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ACTIVITY_BEGIN_TIME                    0xDD50
28616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ACTIVITY_END_TIME                      0xDD51
28716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ACTIVITY_LOCATION                      0xDD52
28816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ACTIVITY_REQUIRED_ATTENDEES            0xDD54
28916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ACTIVITY_OPTIONAL_ATTENDEES            0xDD55
29016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ACTIVITY_RESOURCES                     0xDD56
29116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ACTIVITY_ACCEPTED                      0xDD57
29216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ACTIVITY_TENTATIVE                     0xDD58
29316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ACTIVITY_DECLINED                      0xDD59
29416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ACTIVITY_REMAINDER_TIME                0xDD5A
29516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ACTIVITY_OWNER                         0xDD5B
29616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_ACTIVITY_STATUS                        0xDD5C
29716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_OWNER                                  0xDD5D
29816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_EDITOR                                 0xDD5E
29916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_WEBMASTER                              0xDD5F
30016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_URL_SOURCE                             0xDD60
30116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_URL_DESTINATION                        0xDD61
30216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_TIME_BOOKMARK                          0xDD62
30316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_OBJECT_BOOKMARK                        0xDD63
30416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_BYTE_BOOKMARK                          0xDD64
30516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_LAST_BUILD_DATE                        0xDD70
30616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_TIME_TO_LIVE                           0xDD71
30716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_PROPERTY_MEDIA_GUID                             0xDD72
30816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
30916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood// MTP Device Property Codes
31016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_UNDEFINED                       0x5000
31116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_BATTERY_LEVEL                   0x5001
31216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_FUNCTIONAL_MODE                 0x5002
31316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_IMAGE_SIZE                      0x5003
31416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_COMPRESSION_SETTING             0x5004
31516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_WHITE_BALANCE                   0x5005
31616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_RGB_GAIN                        0x5006
31716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_F_NUMBER                        0x5007
31816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_FOCAL_LENGTH                    0x5008
31916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_FOCUS_DISTANCE                  0x5009
32016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_FOCUS_MODE                      0x500A
32116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_EXPOSURE_METERING_MODE          0x500B
32216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_FLASH_MODE                      0x500C
32316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_EXPOSURE_TIME                   0x500D
32416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_EXPOSURE_PROGRAM_MODE           0x500E
32516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_EXPOSURE_INDEX                  0x500F
32616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_EXPOSURE_BIAS_COMPENSATION      0x5010
32716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_DATETIME                        0x5011
32816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_CAPTURE_DELAY                   0x5012
32916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_STILL_CAPTURE_MODE              0x5013
33016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_CONTRAST                        0x5014
33116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_SHARPNESS                       0x5015
33216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_DIGITAL_ZOOM                    0x5016
33316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_EFFECT_MODE                     0x5017
33416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_BURST_NUMBER                    0x5018
33516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_BURST_INTERVAL                  0x5019
33616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_TIMELAPSE_NUMBER                0x501A
33716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_TIMELAPSE_INTERVAL              0x501B
33816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_FOCUS_METERING_MODE             0x501C
33916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_UPLOAD_URL                      0x501D
34016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_ARTIST                          0x501E
34116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_COPYRIGHT_INFO                  0x501F
34216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_SYNCHRONIZATION_PARTNER         0xD401
34316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_DEVICE_FRIENDLY_NAME            0xD402
34416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_VOLUME                          0xD403
34516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_SUPPORTED_FORMATS_ORDERED       0xD404
34616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_DEVICE_ICON                     0xD405
34716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_PLAYBACK_RATE                   0xD410
34816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_PLAYBACK_OBJECT                 0xD411
34916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_PLAYBACK_CONTAINER_INDEX        0xD412
35016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_SESSION_INITIATOR_VERSION_INFO  0xD406
35116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_DEVICE_PROPERTY_PERCEIVED_DEVICE_TYPE           0xD407
35216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
35316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood// MTP Operation Codes
35416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_GET_DEVICE_INFO                       0x1001
35516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_OPEN_SESSION                          0x1002
35616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_CLOSE_SESSION                         0x1003
35716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_GET_STORAGE_IDS                       0x1004
35816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_GET_STORAGE_INFO                      0x1005
35916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_GET_NUM_OBJECTS                       0x1006
36016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_GET_OBJECT_HANDLES                    0x1007
36116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_GET_OBJECT_INFO                       0x1008
36216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_GET_OBJECT                            0x1009
36316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_GET_THUMB                             0x100A
36416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_DELETE_OBJECT                         0x100B
36516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_SEND_OBJECT_INFO                      0x100C
36616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_SEND_OBJECT                           0x100D
36716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_INITIATE_CAPTURE                      0x100E
36816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_FORMAT_STORE                          0x100F
36916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_RESET_DEVICE                          0x1010
37016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_SELF_TEST                             0x1011
37116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_SET_OBJECT_PROTECTION                 0x1012
37216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_POWER_DOWN                            0x1013
37316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_GET_DEVICE_PROP_DESC                  0x1014
37416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_GET_DEVICE_PROP_VALUE                 0x1015
37516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_SET_DEVICE_PROP_VALUE                 0x1016
37616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_RESET_DEVICE_PROP_VALUE               0x1017
37716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_TERMINATE_OPEN_CAPTURE                0x1018
37816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_MOVE_OBJECT                           0x1019
37916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_COPY_OBJECT                           0x101A
38016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_GET_PARTIAL_OBJECT                    0x101B
38116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_INITIATE_OPEN_CAPTURE                 0x101C
38216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_GET_OBJECT_PROPS_SUPPORTED            0x9801
38316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_GET_OBJECT_PROP_DESC                  0x9802
38416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_GET_OBJECT_PROP_VALUE                 0x9803
38516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_SET_OBJECT_PROP_VALUE                 0x9804
386b6da06e9dfb916da4b88e09e8a83e22ddae445b5Mike Lockwood#define MTP_OPERATION_GET_OBJECT_PROP_LIST                  0x9805
387b6da06e9dfb916da4b88e09e8a83e22ddae445b5Mike Lockwood#define MTP_OPERATION_SET_OBJECT_PROP_LIST                  0x9806
388b6da06e9dfb916da4b88e09e8a83e22ddae445b5Mike Lockwood#define MTP_OPERATION_GET_INTERDEPENDENT_PROP_DESC          0x9807
389b6da06e9dfb916da4b88e09e8a83e22ddae445b5Mike Lockwood#define MTP_OPERATION_SEND_OBJECT_PROP_LIST                 0x9808
39016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_GET_OBJECT_REFERENCES                 0x9810
39116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_SET_OBJECT_REFERENCES                 0x9811
39216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_OPERATION_SKIP                                  0x9820
39316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
3947d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0Mike Lockwood// Android extensions for direct file IO
3957d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0Mike Lockwood
3967d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0Mike Lockwood// Same as GetPartialObject, but with 64 bit offset
3977d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0Mike Lockwood#define MTP_OPERATION_GET_PARTIAL_OBJECT_64                 0x95C1
3987d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0Mike Lockwood// Same as GetPartialObject64, but copying host to device
3997d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0Mike Lockwood#define MTP_OPERATION_SEND_PARTIAL_OBJECT                   0x95C2
4007d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0Mike Lockwood// Truncates file to 64 bit length
4017d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0Mike Lockwood#define MTP_OPERATION_TRUNCATE_OBJECT                       0x95C3
4027d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0Mike Lockwood// Must be called before using SendPartialObject and TruncateObject
4037d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0Mike Lockwood#define MTP_OPERATION_BEGIN_EDIT_OBJECT                     0x95C4
4047d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0Mike Lockwood// Called to commit changes made by SendPartialObject and TruncateObject
4057d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0Mike Lockwood#define MTP_OPERATION_END_EDIT_OBJECT                       0x95C5
4067d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0Mike Lockwood
40716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood// MTP Response Codes
40816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_UNDEFINED                                  0x2000
40916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_OK                                         0x2001
41016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_GENERAL_ERROR                              0x2002
41116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_SESSION_NOT_OPEN                           0x2003
41216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_INVALID_TRANSACTION_ID                     0x2004
41316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_OPERATION_NOT_SUPPORTED                    0x2005
41416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_PARAMETER_NOT_SUPPORTED                    0x2006
41516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_INCOMPLETE_TRANSFER                        0x2007
41616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_INVALID_STORAGE_ID                         0x2008
41716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_INVALID_OBJECT_HANDLE                      0x2009
41816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_DEVICE_PROP_NOT_SUPPORTED                  0x200A
41916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_INVALID_OBJECT_FORMAT_CODE                 0x200B
42016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_STORAGE_FULL                               0x200C
42116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_OBJECT_WRITE_PROTECTED                     0x200D
42216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_STORE_READ_ONLY                            0x200E
42316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_ACCESS_DENIED                              0x200F
42416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_NO_THUMBNAIL_PRESENT                       0x2010
42516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_SELF_TEST_FAILED                           0x2011
42616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_PARTIAL_DELETION                           0x2012
42716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_STORE_NOT_AVAILABLE                        0x2013
42816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_SPECIFICATION_BY_FORMAT_UNSUPPORTED        0x2014
42916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_NO_VALID_OBJECT_INFO                       0x2015
43016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_INVALID_CODE_FORMAT                        0x2016
43116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_UNKNOWN_VENDOR_CODE                        0x2017
43216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_CAPTURE_ALREADY_TERMINATED                 0x2018
43316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_DEVICE_BUSY                                0x2019
43416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_INVALID_PARENT_OBJECT                      0x201A
43516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_INVALID_DEVICE_PROP_FORMAT                 0x201B
43616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_INVALID_DEVICE_PROP_VALUE                  0x201C
43716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_INVALID_PARAMETER                          0x201D
43816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_SESSION_ALREADY_OPEN                       0x201E
43916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_TRANSACTION_CANCELLED                      0x201F
44016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_SPECIFICATION_OF_DESTINATION_UNSUPPORTED   0x2020
44116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_INVALID_OBJECT_PROP_CODE                   0xA801
44216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_INVALID_OBJECT_PROP_FORMAT                 0xA802
44316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_INVALID_OBJECT_PROP_VALUE                  0xA803
44416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_INVALID_OBJECT_REFERENCE                   0xA804
44516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_GROUP_NOT_SUPPORTED                        0xA805
44616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_INVALID_DATASET                            0xA806
44716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_SPECIFICATION_BY_GROUP_UNSUPPORTED         0xA807
44816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_SPECIFICATION_BY_DEPTH_UNSUPPORTED         0xA808
44916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_OBJECT_TOO_LARGE                           0xA809
45016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_RESPONSE_OBJECT_PROP_NOT_SUPPORTED                  0xA80A
45116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
45216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood// MTP Event Codes
45316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_UNDEFINED                         0x4000
45416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_CANCEL_TRANSACTION                0x4001
45516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_OBJECT_ADDED                      0x4002
45616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_OBJECT_REMOVED                    0x4003
45716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_STORE_ADDED                       0x4004
45816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_STORE_REMOVED                     0x4005
45916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_DEVICE_PROP_CHANGED               0x4006
46016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_OBJECT_INFO_CHANGED               0x4007
46116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_DEVICE_INFO_CHANGED               0x4008
46216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_REQUEST_OBJECT_TRANSFER           0x4009
46316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_STORE_FULL                        0x400A
46416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_DEVICE_RESET                      0x400B
46516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_STORAGE_INFO_CHANGED              0x400C
46616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_CAPTURE_COMPLETE                  0x400D
46716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_UNREPORTED_STATUS                 0x400E
46816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_OBJECT_PROP_CHANGED               0xC801
46916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_OBJECT_PROP_DESC_CHANGED          0xC802
47016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_EVENT_OBJECT_REFERENCES_CHANGED         0xC803
47116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
47216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood// Storage Type
47316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_STORAGE_FIXED_ROM                       0x0001
47416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_STORAGE_REMOVABLE_ROM                   0x0002
47516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_STORAGE_FIXED_RAM                       0x0003
47616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_STORAGE_REMOVABLE_RAM                   0x0004
47716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
47816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood// Storage File System
47916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_STORAGE_FILESYSTEM_FLAT                 0x0001
48016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_STORAGE_FILESYSTEM_HIERARCHICAL         0x0002
48116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_STORAGE_FILESYSTEM_DCF                  0x0003
48216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
48316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood// Storage Access Capability
48416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_STORAGE_READ_WRITE                      0x0000
485f83caa2ef9574652b5f43c637a7899a3cbf95aa1Mike Lockwood#define MTP_STORAGE_READ_ONLY_WITHOUT_DELETE        0x0001
486f83caa2ef9574652b5f43c637a7899a3cbf95aa1Mike Lockwood#define MTP_STORAGE_READ_ONLY_WITH_DELETE           0x0002
48716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
48816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood// Association Type
48916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_ASSOCIATION_TYPE_UNDEFINED              0x0000
49016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define MTP_ASSOCIATION_TYPE_GENERIC_FOLDER         0x0001
49116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood
49216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#endif // _MTP_H
493