1 /* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 #ifndef FRAMEWORKS_SERVICES_MEDIA_MTP_INCLUDE_MTP_CONSTANTS_H_ 16 #define FRAMEWORKS_SERVICES_MEDIA_MTP_INCLUDE_MTP_CONSTANTS_H_ 17 #include <vector> 18 #include <stdint.h> 19 #include <fcntl.h> 20 21 struct MtpFileRange { 22 // file descriptor for file to transfer 23 int fd; 24 // offset in file for start of transfer 25 loff_t offset; 26 // number of bytes to transfer 27 int64_t length; 28 /* 29 * MTP command ID for data header, 30 * used only for MTP_SEND_FILE_WITH_HEADER 31 */ 32 uint16_t command; 33 /* 34 * MTP transaction ID for data header, 35 * used only for MTP_SEND_FILE_WITH_HEADER 36 */ 37 uint32_t transaction_id; 38 }; 39 40 struct EventMtp { 41 // size of the event 42 size_t length; 43 // event data to send 44 std::vector<uint8_t> data; 45 }; 46 47 constexpr uint16_t MTP_STANDARD_VERSION = 100; 48 49 constexpr int32_t DEFAULT_STORAGE_ID = 1; 50 constexpr uint32_t MTP_ALL_HANDLE_ID = 0xFFFFFFFF; 51 constexpr uint32_t MTP_ALL_DEPTH = 0xFFFFFFFF; 52 53 // mtp Operations 54 constexpr uint16_t MTP_OPERATION_GET_DEVICE_INFO_CODE = 0x1001; 55 constexpr uint16_t MTP_OPERATION_OPEN_SESSION_CODE = 0x1002; 56 constexpr uint16_t MTP_OPERATION_CLOSE_SESSION_CODE = 0x1003; 57 constexpr uint16_t MTP_OPERATION_GET_STORAGE_IDS_CODE = 0x1004; 58 constexpr uint16_t MTP_OPERATION_GET_STORAGE_INFO_CODE = 0x1005; 59 constexpr uint16_t MTP_OPERATION_GET_NUM_OBJECTS_CODE = 0x1006; 60 constexpr uint16_t MTP_OPERATION_GET_OBJECT_HANDLES_CODE = 0x1007; 61 constexpr uint16_t MTP_OPERATION_GET_OBJECT_INFO_CODE = 0x1008; 62 constexpr uint16_t MTP_OPERATION_GET_OBJECT_CODE = 0x1009; 63 constexpr uint16_t MTP_OPERATION_GET_THUMB_CODE = 0x100A; 64 constexpr uint16_t MTP_OPERATION_DELETE_OBJECT_CODE = 0x100B; 65 constexpr uint16_t MTP_OPERATION_SEND_OBJECT_INFO_CODE = 0x100C; 66 constexpr uint16_t MTP_OPERATION_SEND_OBJECT_CODE = 0x100D; 67 constexpr uint16_t MTP_OPERATION_INITIATE_CAPTURE_CODE = 0x100E; 68 constexpr uint16_t MTP_OPERATION_FORMAT_STORE_CODE = 0x100F; 69 constexpr uint16_t MTP_OPERATION_RESET_DEVICE_CODE = 0x1010; 70 constexpr uint16_t MTP_OPERATION_SELF_TEST_CODE = 0x1011; 71 constexpr uint16_t MTP_OPERATION_SET_OBJECT_PROTECTION_CODE = 0x1012; 72 constexpr uint16_t MTP_OPERATION_POWER_DOWN_CODE = 0x1013; 73 constexpr uint16_t MTP_OPERATION_GET_DEVICE_PROP_DESC_CODE = 0x1014; 74 constexpr uint16_t MTP_OPERATION_GET_DEVICE_PROP_VALUE_CODE = 0x1015; 75 constexpr uint16_t MTP_OPERATION_SET_DEVICE_PROP_VALUE_CODE = 0x1016; 76 constexpr uint16_t MTP_OPERATION_RESET_DEVICE_PROP_VALUE_CODE = 0x1017; 77 constexpr uint16_t MTP_OPERATION_TERMINATE_OPEN_CAPTURE_CODE = 0x1018; 78 constexpr uint16_t MTP_OPERATION_MOVE_OBJECT_CODE = 0x1019; 79 constexpr uint16_t MTP_OPERATION_COPY_OBJECT_CODE = 0x101A; 80 constexpr uint16_t MTP_OPERATION_GET_PARTIAL_OBJECT_CODE = 0x101B; 81 constexpr uint16_t MTP_OPERATION_INITIATE_OPEN_CAPTURE_CODE = 0x101C; 82 constexpr uint16_t MTP_OPERATION_GET_OBJECT_PROPS_SUPPORTED_CODE = 0x9801; 83 constexpr uint16_t MTP_OPERATION_GET_OBJECT_PROP_DESC_CODE = 0x9802; 84 constexpr uint16_t MTP_OPERATION_GET_OBJECT_PROP_VALUE_CODE = 0x9803; 85 constexpr uint16_t MTP_OPERATION_SET_OBJECT_PROP_VALUE_CODE = 0x9804; 86 constexpr uint16_t MTP_OPERATION_GET_OBJECT_PROP_LIST_CODE = 0x9805; 87 constexpr uint16_t MTP_OPERATION_SET_OBJECT_PROP_LIST_CODE = 0x9806; 88 constexpr uint16_t MTP_OPERATION_GET_INTERDEPENDENT_PROPDESC_CODE = 0x9807; 89 constexpr uint16_t MTP_OPERATION_SEND_OBJECT_PROP_LIST_CODE = 0x9808; 90 constexpr uint16_t MTP_OPERATION_GET_OBJECT_REFERENCES_CODE = 0x9810; 91 constexpr uint16_t MTP_OPERATION_SET_OBJECT_REFERENCES_CODE = 0x9811; 92 constexpr uint16_t MTP_OPERATION_SKIP_CODE = 0x9820; 93 94 // MTP Device Property 95 constexpr uint16_t MTP_DEVICE_PROPERTY_UNDEFINED_CODE = 0x5000; 96 constexpr uint16_t MTP_DEVICE_PROPERTY_BATTERY_LEVEL_CODE = 0x5001; 97 constexpr uint16_t MTP_DEVICE_PROPERTY_FUNCTIONAL_MODE_CODE = 0x5002; 98 constexpr uint16_t MTP_DEVICE_PROPERTY_IMAGE_SIZE_CODE = 0x5003; 99 constexpr uint16_t MTP_DEVICE_PROPERTY_COMPRESSION_SETTING_CODE = 0x5004; 100 constexpr uint16_t MTP_DEVICE_PROPERTY_WHITE_BALANCE_CODE = 0x5005; 101 constexpr uint16_t MTP_DEVICE_PROPERTY_RGB_GAIN_CODE = 0x5006; 102 constexpr uint16_t MTP_DEVICE_PROPERTY_F_NUMBER_CODE = 0x5007; 103 constexpr uint16_t MTP_DEVICE_PROPERTY_FOCAL_LENGTH_CODE = 0x5008; 104 constexpr uint16_t MTP_DEVICE_PROPERTY_FOCUS_DISTANCE_CODE = 0x5009; 105 constexpr uint16_t MTP_DEVICE_PROPERTY_FOCUS_MODE_CODE = 0x500A; 106 constexpr uint16_t MTP_DEVICE_PROPERTY_EXPOSURE_METERING_MODE_CODE = 0x500B; 107 constexpr uint16_t MTP_DEVICE_PROPERTY_FLASH_MODE_CODE = 0x500C; 108 constexpr uint16_t MTP_DEVICE_PROPERTY_EXPOSURE_TIME_CODE = 0x500D; 109 constexpr uint16_t MTP_DEVICE_PROPERTY_EXPOSURE_PROGRAM_MODE_CODE = 0x500E; 110 constexpr uint16_t MTP_DEVICE_PROPERTY_EXPOSURE_INDEX_CODE = 0x500F; 111 constexpr uint16_t MTP_DEVICE_PROPERTY_EXPOSURE_BIAS_COMPENSATION_CODE = 0x5010; 112 constexpr uint16_t MTP_DEVICE_PROPERTY_DATETIME_CODE = 0x5011; 113 constexpr uint16_t MTP_DEVICE_PROPERTY_CAPTURE_DELAY_CODE = 0x5012; 114 constexpr uint16_t MTP_DEVICE_PROPERTY_STILL_CAPTURE_MODE_CODE = 0x5013; 115 constexpr uint16_t MTP_DEVICE_PROPERTY_CONTRAST_CODE = 0x5014; 116 constexpr uint16_t MTP_DEVICE_PROPERTY_SHARPNESS_CODE = 0x5015; 117 constexpr uint16_t MTP_DEVICE_PROPERTY_DIGITAL_ZOOM_CODE = 0x5016; 118 constexpr uint16_t MTP_DEVICE_PROPERTY_EFFECT_MODE_CODE = 0x5017; 119 constexpr uint16_t MTP_DEVICE_PROPERTY_BURST_NUMBER_CODE = 0x5018; 120 constexpr uint16_t MTP_DEVICE_PROPERTY_BURST_INTERVAL_CODE = 0x5019; 121 constexpr uint16_t MTP_DEVICE_PROPERTY_TIMELAPSE_NUMBER_CODE = 0x501A; 122 constexpr uint16_t MTP_DEVICE_PROPERTY_TIMELAPSE_INTERVAL_CODE = 0x501B; 123 constexpr uint16_t MTP_DEVICE_PROPERTY_FOCUS_METERING_MODE_CODE = 0x501C; 124 constexpr uint16_t MTP_DEVICE_PROPERTY_UPLOAD_URL_CODE = 0x501D; 125 constexpr uint16_t MTP_DEVICE_PROPERTY_ARTIST_CODE = 0x501E; 126 constexpr uint16_t MTP_DEVICE_PROPERTY_COPYRIGHT_INFO_CODE = 0x501F; 127 constexpr uint16_t MTP_DEVICE_PROPERTY_SYNCHRONIZATION_PARTNER_CODE = 0xD401; 128 constexpr uint16_t MTP_DEVICE_PROPERTY_DEVICE_FRIENDLY_NAME_CODE = 0xD402; 129 constexpr uint16_t MTP_DEVICE_PROPERTY_VOLUME_CODE = 0xD403; 130 constexpr uint16_t MTP_DEVICE_PROPERTY_SUPPORTED_FORMATS_ORDERED_CODE = 0xD404; 131 constexpr uint16_t MTP_DEVICE_PROPERTY_DEVICE_ICON_CODE = 0xD405; 132 constexpr uint16_t MTP_DEVICE_PROPERTY_PLAYBACK_RATE_CODE = 0xD410; 133 constexpr uint16_t MTP_DEVICE_PROPERTY_PLAYBACK_OBJECT_CODE = 0xD411; 134 constexpr uint16_t MTP_DEVICE_PROPERTY_PLAYBACK_CONTAINER_INDEX_CODE = 0xD412; 135 constexpr uint16_t MTP_DEVICE_PROPERTY_SESSION_INITIATOR_VERSION_INFO_CODE = 0xD406; 136 constexpr uint16_t MTP_DEVICE_PROPERTY_PERCEIVED_DEVICE_TYPE_CODE = 0xD407; 137 138 // MTP Object Format 139 constexpr uint16_t MTP_FORMAT_UNDEFINED_CODE = 0x3000; // Undefined 140 constexpr uint16_t MTP_FORMAT_ASSOCIATION_CODE = 0x3001; // associations (folders and directories) 141 constexpr uint16_t MTP_FORMAT_SCRIPT_CODE = 0x3002; // script files 142 constexpr uint16_t MTP_FORMAT_EXECUTABLE_CODE = 0x3003; // executable files 143 constexpr uint16_t MTP_FORMAT_TEXT_CODE = 0x3004; // text files 144 constexpr uint16_t MTP_FORMAT_HTML_CODE = 0x3005; // HTML files 145 constexpr uint16_t MTP_FORMAT_DPOF_CODE = 0x3006; // DPOF files 146 constexpr uint16_t MTP_FORMAT_AIFF_CODE = 0x3007; // AIFF audio files 147 constexpr uint16_t MTP_FORMAT_WAV_CODE = 0x3008; // WAV audio files 148 constexpr uint16_t MTP_FORMAT_MP3_CODE = 0x3009; // MP3 audio files 149 constexpr uint16_t MTP_FORMAT_AVI_CODE = 0x300A; // AVI video files 150 constexpr uint16_t MTP_FORMAT_MPEG_CODE = 0x300B; // MPEG video files 151 constexpr uint16_t MTP_FORMAT_ASF_CODE = 0x300C; // ASF files 152 // Unknown image files which are not specified in PTP specification 153 constexpr uint16_t MTP_FORMAT_DEFINED_CODE = 0x3800; // Unknown image files 154 constexpr uint16_t MTP_FORMAT_EXIF_JPEG_CODE = 0x3801; // JPEG image files 155 constexpr uint16_t MTP_FORMAT_TIFF_EP_CODE = 0x3802; // TIFF EP image files 156 constexpr uint16_t MTP_FORMAT_FLASHPIX_CODE = 0x3803; 157 constexpr uint16_t MTP_FORMAT_BMP_CODE = 0x3804; // BMP image files 158 constexpr uint16_t MTP_FORMAT_CIFF_CODE = 0x3805; 159 constexpr uint16_t MTP_FORMAT_GIF_CODE = 0x3807; // GIF image files 160 constexpr uint16_t MTP_FORMAT_JFIF_CODE = 0x3808; // JFIF image files 161 constexpr uint16_t MTP_FORMAT_CD_CODE = 0x3809; 162 constexpr uint16_t MTP_FORMAT_PICT_CODE = 0x380A; // PICT image files 163 constexpr uint16_t MTP_FORMAT_PNG_CODE = 0x380B; // PNG image files 164 constexpr uint16_t MTP_FORMAT_TIFF_CODE = 0x380D; // TIFF image files 165 constexpr uint16_t MTP_FORMAT_TIFF_IT_CODE = 0x380E; 166 constexpr uint16_t MTP_FORMAT_JP2_CODE = 0x380F; // JP2 files 167 constexpr uint16_t MTP_FORMAT_JPX_CODE = 0x3810; // JPX files 168 constexpr uint16_t MTP_FORMAT_DNG_CODE = 0x3811; // DNG files 169 constexpr uint16_t MTP_FORMAT_HEIF_CODE = 0x3812; // HEIF files 170 constexpr uint16_t MTP_FORMAT_UNDEFINED_FIRMWARE_CODE = 0xB802; // firmware files 171 constexpr uint16_t MTP_FORMAT_WINDOWS_IMAGE_FORMAT_CODE = 0xB881; // Windows image files 172 constexpr uint16_t MTP_FORMAT_UNDEFINED_AUDIO_CODE = 0xB900; // undefined audio files files 173 constexpr uint16_t MTP_FORMAT_WMA_CODE = 0xB901; // WMA audio files 174 constexpr uint16_t MTP_FORMAT_OGG_CODE = 0xB902; // OGG audio files 175 constexpr uint16_t MTP_FORMAT_AAC_CODE = 0xB903; // AAC audio files 176 constexpr uint16_t MTP_FORMAT_AUDIBLE_CODE = 0xB904; // Audible audio files 177 constexpr uint16_t MTP_FORMAT_FLAC_CODE = 0xB906; // FLAC audio files 178 constexpr uint16_t MTP_FORMAT_UNDEFINED_VIDEO_CODE = 0xB980; // undefined video files 179 constexpr uint16_t MTP_FORMAT_WMV_CODE = 0xB981; // WMV video files 180 constexpr uint16_t MTP_FORMAT_MP4_CONTAINER_CODE = 0xB982; // MP4 files 181 constexpr uint16_t MTP_FORMAT_MP2_CODE = 0xB983; // MP2 files 182 constexpr uint16_t MTP_FORMAT_3GP_CONTAINER_CODE = 0xB984; // 3GP files 183 184 constexpr uint16_t MTP_FORMAT_UNDEFINED_COLLECTION_CODE = 0xBA00; // undefined collections 185 constexpr uint16_t MTP_FORMAT_ABSTRACT_MULTIMEDIA_ALBUM_CODE = 0xBA01; // multimedia albums 186 constexpr uint16_t MTP_FORMAT_ABSTRACT_IMAGE_ALBUM_CODE = 0xBA02; // image albums 187 constexpr uint16_t MTP_FORMAT_ABSTRACT_AUDIO_ALBUM_CODE = 0xBA03; // audio albums 188 constexpr uint16_t MTP_FORMAT_ABSTRACT_VIDEO_ALBUM_CODE = 0xBA04; // video albums 189 constexpr uint16_t MTP_FORMAT_ABSTRACT_AUDIO_VIDEO_PLAYLIST_CODE = 0xBA05; // abstract AV playlists 190 constexpr uint16_t MTP_FORMAT_ABSTRACT_CONTACT_GROUP_CODE = 0xBA06; 191 constexpr uint16_t MTP_FORMAT_ABSTRACT_MESSAGE_FOLDER_CODE = 0xBA07; 192 constexpr uint16_t MTP_FORMAT_ABSTRACT_CHAPTERED_PRODUCTION_CODE = 0xBA08; 193 constexpr uint16_t MTP_FORMAT_ABSTRACT_AUDIO_PLAYLIST_CODE = 0xBA09; // abstract audio playlists 194 constexpr uint16_t MTP_FORMAT_ABSTRACT_VIDEO_PLAYLIST_CODE = 0xBA0A; // abstract video playlists 195 constexpr uint16_t MTP_FORMAT_ABSTRACT_MEDIACAST_CODE = 0xBA0B; // abstract mediacasts 196 constexpr uint16_t MTP_FORMAT_WPL_PLAYLIST_CODE = 0xBA10; // WPL playlist files 197 constexpr uint16_t MTP_FORMAT_M3U_PLAYLIST_CODE = 0xBA11; // M3u playlist files 198 constexpr uint16_t MTP_FORMAT_MPL_PLAYLIST_CODE = 0xBA12; // MPL playlist files 199 constexpr uint16_t MTP_FORMAT_ASX_PLAYLIST_CODE = 0xBA13; // ASX playlist files 200 constexpr uint16_t MTP_FORMAT_PLS_PLAYLIST_CODE = 0xBA14; // PLS playlist files 201 constexpr uint16_t MTP_FORMAT_UNDEFINED_DOCUMENT_CODE = 0xBA80; // undefined document files 202 constexpr uint16_t MTP_FORMAT_ABSTRACT_DOCUMENT_CODE = 0xBA81; // abstract documents 203 constexpr uint16_t MTP_FORMAT_XML_DOCUMENT_CODE = 0xBA82; // XML documents 204 constexpr uint16_t MTP_FORMAT_MICROSOFT_WORD_DOCUMENT_CODE = 0xBA83; // MS Word documents 205 constexpr uint16_t MTP_FORMAT_MHT_COMPILED_HTML_DOCUMENT_CODE = 0xBA84; 206 constexpr uint16_t MTP_FORMAT_MICROSOFT_EXCEL_SPREADSHEET_CODE = 0xBA85; // MS Excel spreadsheets 207 constexpr uint16_t MTP_FORMAT_MICROSOFT_POWERPOINT_PRESENTATION_CODE = 0xBA86; // MS PowerPoint presentatiosn 208 constexpr uint16_t MTP_FORMAT_UNDEFINED_MESSAGE_CODE = 0xBB00; 209 constexpr uint16_t MTP_FORMAT_ABSTRACT_MESSAGE_CODE = 0xBB01; 210 constexpr uint16_t MTP_FORMAT_UNDEFINED_CONTACT_CODE = 0xBB80; 211 constexpr uint16_t MTP_FORMAT_ABSTRACT_CONTACT_CODE = 0xBB81; 212 constexpr uint16_t MTP_FORMAT_VCARD_2_CODE = 0xBB82; 213 214 // MTP Object Property 215 constexpr uint32_t MTP_PROPERTY_ALL_CODE = 0xFFFFFFFF; 216 constexpr uint16_t MTP_PROPERTY_STORAGE_ID_CODE = 0xDC01; 217 constexpr uint16_t MTP_PROPERTY_OBJECT_FORMAT_CODE = 0xDC02; 218 constexpr uint16_t MTP_PROPERTY_PROTECTION_STATUS_CODE = 0xDC03; 219 constexpr uint16_t MTP_PROPERTY_OBJECT_SIZE_CODE = 0xDC04; 220 constexpr uint16_t MTP_PROPERTY_ASSOCIATION_TYPE_CODE = 0xDC05; 221 constexpr uint16_t MTP_PROPERTY_ASSOCIATION_DESC_CODE = 0xDC06; 222 constexpr uint16_t MTP_PROPERTY_OBJECT_FILE_NAME_CODE = 0xDC07; 223 constexpr uint16_t MTP_PROPERTY_DATE_CREATED_CODE = 0xDC08; 224 constexpr uint16_t MTP_PROPERTY_DATE_MODIFIED_CODE = 0xDC09; 225 constexpr uint16_t MTP_PROPERTY_KEYWORDS_CODE = 0xDC0A; 226 constexpr uint16_t MTP_PROPERTY_PARENT_OBJECT_CODE = 0xDC0B; 227 constexpr uint16_t MTP_PROPERTY_ALLOWED_FOLDER_CONTENTS_CODE = 0xDC0C; 228 constexpr uint16_t MTP_PROPERTY_HIDDEN_CODE = 0xDC0D; 229 constexpr uint16_t MTP_PROPERTY_SYSTEM_OBJECT_CODE = 0xDC0E; 230 constexpr uint16_t MTP_PROPERTY_PERSISTENT_UID_CODE = 0xDC41; 231 constexpr uint16_t MTP_PROPERTY_SYNCID_CODE = 0xDC42; 232 constexpr uint16_t MTP_PROPERTY_PROPERTY_BAG_CODE = 0xDC43; 233 constexpr uint16_t MTP_PROPERTY_NAME_CODE = 0xDC44; 234 constexpr uint16_t MTP_PROPERTY_CREATED_BY_CODE = 0xDC45; 235 constexpr uint16_t MTP_PROPERTY_ARTIST_CODE = 0xDC46; 236 constexpr uint16_t MTP_PROPERTY_DATE_AUTHORED_CODE = 0xDC47; 237 constexpr uint16_t MTP_PROPERTY_DESCRIPTION_CODE = 0xDC48; 238 constexpr uint16_t MTP_PROPERTY_URL_REFERENCE_CODE = 0xDC49; 239 constexpr uint16_t MTP_PROPERTY_LANGUAG_LOCALE_CODE = 0xDC4A; 240 constexpr uint16_t MTP_PROPERTY_COPYRIGHT_INFORMATION_CODE = 0xDC4B; 241 constexpr uint16_t MTP_PROPERTY_SOURCE_CODE = 0xDC4C; 242 constexpr uint16_t MTP_PROPERTY_ORIGIN_LOCATION_CODE = 0xDC4D; 243 constexpr uint16_t MTP_PROPERTY_DATE_ADDED_CODE = 0xDC4E; 244 constexpr uint16_t MTP_PROPERTY_NO_CONSUMABLE_CODE = 0xDC4F; 245 constexpr uint16_t MTP_PROPERTY_CORRUP_UNPLAYABLE_CODE = 0xDC50; 246 constexpr uint16_t MTP_PROPERTY_PRODUCERSERIALNUMBER_CODE = 0xDC51; 247 constexpr uint16_t MTP_PROPERTY_REPRESENTATIVE_SAMPLE_FORMAT_CODE = 0xDC81; 248 constexpr uint16_t MTP_PROPERTY_REPRESENTATIVE_SAMPLE_SIZE_CODE = 0xDC82; 249 constexpr uint16_t MTP_PROPERTY_REPRESENTATIVE_SAMPLE_HEIGHT_CODE = 0xDC83; 250 constexpr uint16_t MTP_PROPERTY_REPRESENTATIVE_SAMPLE_WIDTH_CODE = 0xDC84; 251 constexpr uint16_t MTP_PROPERTY_REPRESENTATIVE_SAMPLE_DURATION_CODE = 0xDC85; 252 constexpr uint16_t MTP_PROPERTY_REPRESENTATIVE_SAMPLE_DATA_CODE = 0xDC86; 253 constexpr uint16_t MTP_PROPERTY_WIDTH_CODE = 0xDC87; 254 constexpr uint16_t MTP_PROPERTY_HEIGHT_CODE = 0xDC88; 255 constexpr uint16_t MTP_PROPERTY_DURATION_CODE = 0xDC89; 256 constexpr uint16_t MTP_PROPERTY_RATING_CODE = 0xDC8A; 257 constexpr uint16_t MTP_PROPERTY_TRACK_CODE = 0xDC8B; 258 constexpr uint16_t MTP_PROPERTY_GENRE_CODE = 0xDC8C; 259 constexpr uint16_t MTP_PROPERTY_CREDITS_CODE = 0xDC8D; 260 constexpr uint16_t MTP_PROPERTY_LYRICS_CODE = 0xDC8E; 261 constexpr uint16_t MTP_PROPERTY_SUBSCRIPTION_CONTENT_ID_CODE = 0xDC8F; 262 constexpr uint16_t MTP_PROPERTY_PRODUCED_BY_CODE = 0xDC90; 263 constexpr uint16_t MTP_PROPERTY_USE_COUNT_CODE = 0xDC91; 264 constexpr uint16_t MTP_PROPERTY_SKIP_COUNT_CODE = 0xDC92; 265 constexpr uint16_t MTP_PROPERTY_LAST_ACCESSED_CODE = 0xDC93; 266 constexpr uint16_t MTP_PROPERTY_PARENTAL_RATING_CODE = 0xDC94; 267 constexpr uint16_t MTP_PROPERTY_META_GENRE_CODE = 0xDC95; 268 constexpr uint16_t MTP_PROPERTY_COMPOSER_CODE = 0xDC96; 269 constexpr uint16_t MTP_PROPERTY_EFFECTIVE_RATING_CODE = 0xDC97; 270 constexpr uint16_t MTP_PROPERTY_SUBTITLE_CODE = 0xDC98; 271 constexpr uint16_t MTP_PROPERTY_ORIGINAL_RELEASE_DATE_CODE = 0xDC99; 272 constexpr uint16_t MTP_PROPERTY_ALBUM_NAME_CODE = 0xDC9A; 273 constexpr uint16_t MTP_PROPERTY_ALBUM_ARTIST_CODE = 0xDC9B; 274 constexpr uint16_t MTP_PROPERTY_MOOD_CODE = 0xDC9C; 275 constexpr uint16_t MTP_PROPERTY_DRM_STATUS_CODE = 0xDC9D; 276 constexpr uint16_t MTP_PROPERTY_SUB_DESCRIPTION_CODE = 0xDC9E; 277 constexpr uint16_t MTP_PROPERTY_IS_CROPPED_CODE = 0xDCD1; 278 constexpr uint16_t MTP_PROPERTY_IS_COLOUR_CORRECTED_CODE = 0xDCD2; 279 constexpr uint16_t MTP_PROPERTY_IMAGE_BIT_DEPTH_CODE = 0xDCD3; 280 constexpr uint16_t MTP_PROPERTY_FNUMBER_CODE = 0xDCD4; 281 constexpr uint16_t MTP_PROPERTY_EXPOSURE_TIME_CODE = 0xDCD5; 282 constexpr uint16_t MTP_PROPERTY_EXPOSURE_INDEX_CODE = 0xDCD6; 283 constexpr uint16_t MTP_PROPERTY_TOTAL_BITRATE_CODE = 0xDE91; 284 constexpr uint16_t MTP_PROPERTY_BITRATE_TYPE_CODE = 0xDE92; 285 constexpr uint16_t MTP_PROPERTY_SAMPLE_RATE_CODE = 0xDE93; 286 constexpr uint16_t MTP_PROPERTY_NUMBER_OF_CHANNELS_CODE = 0xDE94; 287 constexpr uint16_t MTP_PROPERTY_AUDIO_BITDEPTH_CODE = 0xDE95; 288 constexpr uint16_t MTP_PROPERTY_SCAN_TYPE_CODE = 0xDE97; 289 constexpr uint16_t MTP_PROPERTY_AUDIO_WAVE_CODEC_CODE = 0xDE99; 290 constexpr uint16_t MTP_PROPERTY_AUDIO_BITRATE_CODE = 0xDE9A; 291 constexpr uint16_t MTP_PROPERTY_VIDEO_FOURCC_CODEC_CODE = 0xDE9B; 292 constexpr uint16_t MTP_PROPERTY_VIDEO_BITRATE_CODE = 0xDE9C; 293 constexpr uint16_t MTP_PROPERTY_FRAMES_PER_THOUSAND_SECONDS_CODE = 0xDE9D; 294 constexpr uint16_t MTP_PROPERTY_KEYFRAME_DISTANCE_CODE = 0xDE9E; 295 constexpr uint16_t MTP_PROPERTY_BUFFER_SIZE_CODE = 0xDE9F; 296 constexpr uint16_t MTP_PROPERTY_ENCODING_QUALITY_CODE = 0xDEA0; 297 constexpr uint16_t MTP_PROPERTY_ENCODING_PROFILE_CODE = 0xDEA1; 298 constexpr uint16_t MTP_PROPERTY_DISPLAY_NAME_CODE = 0xDCE0; 299 constexpr uint16_t MTP_PROPERTY_BODY_TEXT_CODE = 0xDCE1; 300 constexpr uint16_t MTP_PROPERTY_SUBJECT_CODE = 0xDCE2; 301 constexpr uint16_t MTP_PROPERTY_PRIORITY_CODE = 0xDCE3; 302 constexpr uint16_t MTP_PROPERTY_GIVEN_NAME_CODE = 0xDD00; 303 constexpr uint16_t MTP_PROPERTY_MIDDLE_NAMES_CODE = 0xDD01; 304 constexpr uint16_t MTP_PROPERTY_FAMILY_NAME_CODE = 0xDD02; 305 constexpr uint16_t MTP_PROPERTY_PREFIX_CODE = 0xDD03; 306 constexpr uint16_t MTP_PROPERTY_SUFFIX_CODE = 0xDD04; 307 constexpr uint16_t MTP_PROPERTY_PHONETIC_GIVEN_NAME_CODE = 0xDD05; 308 constexpr uint16_t MTP_PROPERTY_PHONETIC_FAMILY_NAME_CODE = 0xDD06; 309 constexpr uint16_t MTP_PROPERTY_EMAIL_PRIMARY_CODE = 0xDD07; 310 constexpr uint16_t MTP_PROPERTY_EMAIL_PERSONAL_1_CODE = 0xDD08; 311 constexpr uint16_t MTP_PROPERTY_EMAIL_PERSONAL_2_CODE = 0xDD09; 312 constexpr uint16_t MTP_PROPERTY_EMAIL_BUSINESS_1_CODE = 0xDD0A; 313 constexpr uint16_t MTP_PROPERTY_EMAIL_BUSINESS_2_CODE = 0xDD0B; 314 constexpr uint16_t MTP_PROPERTY_EMAIL_OTHERS_CODE = 0xDD0C; 315 constexpr uint16_t MTP_PROPERTY_PHONE_NUMBER_PRIMARY_CODE = 0xDD0D; 316 constexpr uint16_t MTP_PROPERTY_PHONE_NUMBER_PERSONAL_CODE = 0xDD0E; 317 constexpr uint16_t MTP_PROPERTY_PHONE_NUMBER_PERSONAL_2_CODE = 0xDD0F; 318 constexpr uint16_t MTP_PROPERTY_PHONE_NUMBER_BUSINESS_CODE = 0xDD10; 319 constexpr uint16_t MTP_PROPERTY_PHONE_NUMBER_BUSINESS_2_CODE = 0xDD11; 320 constexpr uint16_t MTP_PROPERTY_PHONE_NUMBER_MOBILE_CODE = 0xDD12; 321 constexpr uint16_t MTP_PROPERTY_PHONE_NUMBER_MOBILE_2_CODE = 0xDD13; 322 constexpr uint16_t MTP_PROPERTY_FAX_NUMBER_PRIMARY_CODE = 0xDD14; 323 constexpr uint16_t MTP_PROPERTY_FAX_NUMBER_PERSONAL_CODE = 0xDD15; 324 constexpr uint16_t MTP_PROPERTY_FAX_NUMBER_BUSINESS_CODE = 0xDD16; 325 constexpr uint16_t MTP_PROPERTY_PAGER_NUMBER_CODE = 0xDD17; 326 constexpr uint16_t MTP_PROPERTY_PHONE_NUMBER_OTHERS_CODE = 0xDD18; 327 constexpr uint16_t MTP_PROPERTY_PRIMARY_WEB_ADDRESS_CODE = 0xDD19; 328 constexpr uint16_t MTP_PROPERTY_PERSONAL_WEB_ADDRESS_CODE = 0xDD1A; 329 constexpr uint16_t MTP_PROPERTY_BUSINESS_WEB_ADDRESS_CODE = 0xDD1B; 330 constexpr uint16_t MTP_PROPERTY_INSTANT_MESSENGER_ADDRESS_CODE = 0xDD1C; 331 constexpr uint16_t MTP_PROPERTY_INSTANT_MESSENGER_ADDRESS_2_CODE = 0xDD1D; 332 constexpr uint16_t MTP_PROPERTY_INSTANT_MESSENGER_ADDRESS_3_CODE = 0xDD1E; 333 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_FULL_CODE = 0xDD1F; 334 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_LINE_1_CODE = 0xDD20; 335 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_LINE_2_CODE = 0xDD21; 336 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_CITY_CODE = 0xDD22; 337 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_REGION_CODE = 0xDD23; 338 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_POSTAL_CODE_CODE = 0xDD24; 339 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_PERSONAL_COUNTRY_CODE = 0xDD25; 340 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_FULL_CODE = 0xDD26; 341 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_LINE_1_CODE = 0xDD27; 342 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_LINE_2_CODE = 0xDD28; 343 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_CITY_CODE = 0xDD29; 344 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_REGION_CODE = 0xDD2A; 345 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_POSTAL_CODE_CODE = 0xDD2B; 346 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_BUSINESS_COUNTRY_CODE = 0xDD2C; 347 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_OTHER_FULL_CODE = 0xDD2D; 348 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_OTHER_LINE_1_CODE = 0xDD2E; 349 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_OTHER_LINE_2_CODE = 0xDD2F; 350 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_OTHER_CITY_CODE = 0xDD30; 351 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_OTHER_REGION_CODE = 0xDD31; 352 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_OTHER_POSTAL_CODE_CODE = 0xDD32; 353 constexpr uint16_t MTP_PROPERTY_POSTAL_ADDRESS_OTHER_COUNTRY_CODE = 0xDD33; 354 constexpr uint16_t MTP_PROPERTY_ORGANIZATION_NAME_CODE = 0xDD34; 355 constexpr uint16_t MTP_PROPERTY_PHONETIC_ORGANIZATION_NAME_CODE = 0xDD35; 356 constexpr uint16_t MTP_PROPERTY_ROLE_CODE = 0xDD36; 357 constexpr uint16_t MTP_PROPERTY_BIRTHDATE_CODE = 0xDD37; 358 constexpr uint16_t MTP_PROPERTY_MESSAGE_TO_CODE = 0xDD40; 359 constexpr uint16_t MTP_PROPERTY_MESSAGE_CC_CODE = 0xDD41; 360 constexpr uint16_t MTP_PROPERTY_MESSAGE_BCC_CODE = 0xDD42; 361 constexpr uint16_t MTP_PROPERTY_MESSAGE_READ_CODE = 0xDD43; 362 constexpr uint16_t MTP_PROPERTY_MESSAGE_RECEIVED_TIME_CODE = 0xDD44; 363 constexpr uint16_t MTP_PROPERTY_MESSAGE_SENDER_CODE = 0xDD45; 364 constexpr uint16_t MTP_PROPERTY_ACTIVITY_BEGIN_TIME_CODE = 0xDD50; 365 constexpr uint16_t MTP_PROPERTY_ACTIVITY_END_TIME_CODE = 0xDD51; 366 constexpr uint16_t MTP_PROPERTY_ACTIVITY_LOCATION_CODE = 0xDD52; 367 constexpr uint16_t MTP_PROPERTY_ACTIVITY_REQUIRED_ATTENDEES_CODE = 0xDD54; 368 constexpr uint16_t MTP_PROPERTY_ACTIVITY_OPTIONAL_ATTENDEES_CODE = 0xDD55; 369 constexpr uint16_t MTP_PROPERTY_ACTIVITY_RESOURCES_CODE = 0xDD56; 370 constexpr uint16_t MTP_PROPERTY_ACTIVITY_ACCEPTED_CODE = 0xDD57; 371 constexpr uint16_t MTP_PROPERTY_ACTIVITY_TENTATIVE_CODE = 0xDD58; 372 constexpr uint16_t MTP_PROPERTY_ACTIVITY_DECLINED_CODE = 0xDD59; 373 constexpr uint16_t MTP_PROPERTY_ACTIVITY_REMINDER_TIME_CODE = 0xDD5A; 374 constexpr uint16_t MTP_PROPERTY_ACTIVITY_OWNER_CODE = 0xDD5B; 375 constexpr uint16_t MTP_PROPERTY_ACTIVITY_STATUS_CODE = 0xDD5C; 376 constexpr uint16_t MTP_PROPERTY_OWNER_CODE = 0xDD5D; 377 constexpr uint16_t MTP_PROPERTY_EDITOR_CODE = 0xDD5E; 378 constexpr uint16_t MTP_PROPERTY_WEBMASTER_CODE = 0xDD5F; 379 constexpr uint16_t MTP_PROPERTY_URL_SOURCE_CODE = 0xDD60; 380 constexpr uint16_t MTP_PROPERTY_URL_DESTINATION_CODE = 0xDD61; 381 constexpr uint16_t MTP_PROPERTY_TIME_BOOKMARK_CODE = 0xDD62; 382 constexpr uint16_t MTP_PROPERTY_OBJECT_BOOKMARK_CODE = 0xDD63; 383 constexpr uint16_t MTP_PROPERTY_BYTE_BOOKMARK_CODE = 0xDD64; 384 constexpr uint16_t MTP_PROPERTY_LAST_BUILD_DATE_CODE = 0xDD70; 385 constexpr uint16_t MTP_PROPERTY_TIME_TO_LIVE_CODE = 0xDD71; 386 constexpr uint16_t MTP_PROPERTY_MEDIA_GUID_CODE = 0xDD72; 387 388 // MTP Event 389 constexpr int32_t E_SUCCESS = 0; 390 constexpr int32_t MTP_SEND_ADD = 500000; 391 constexpr int32_t MTP_SEND_ADD_TIMES = 3; 392 constexpr uint16_t MTP_EVENT_UNDEFINED_CODE = 0x4000; 393 constexpr uint16_t MTP_EVENT_CANCEL_TRANSACTION_CODE = 0x4001; 394 constexpr uint16_t MTP_EVENT_OBJECT_ADDED_CODE = 0x4002; 395 constexpr uint16_t MTP_EVENT_OBJECT_REMOVED_CODE = 0x4003; 396 constexpr uint16_t MTP_EVENT_STORE_ADDED_CODE = 0x4004; 397 constexpr uint16_t MTP_EVENT_STORE_REMOVED_CODE = 0x4005; 398 constexpr uint16_t MTP_EVENT_DEVICE_PROP_CHANGED_CODE = 0x4006; 399 constexpr uint16_t MTP_EVENT_OBJECT_INFO_CHANGED_CODE = 0x4007; 400 constexpr uint16_t MTP_EVENT_DEVICE_INFO_CHANGED_CODE = 0x4008; 401 constexpr uint16_t MTP_EVENT_REQUEST_OBJECT_TRANSFER_CODE = 0x4009; 402 constexpr uint16_t MTP_EVENT_STORE_FULL_CODE = 0x400A; 403 constexpr uint16_t MTP_EVENT_DEVICE_RESET_CODE = 0x400B; 404 constexpr uint16_t MTP_EVENT_STORAGE_INFO_CHANGED_CODE = 0x400C; 405 constexpr uint16_t MTP_EVENT_CAPTURE_COMPLETE_CODE = 0x400D; 406 constexpr uint16_t MTP_EVENT_UNREPORTED_STATUS_CODE = 0x400E; 407 constexpr uint16_t MTP_EVENT_OBJECT_PROP_CHANGED_CODE = 0xC801; 408 constexpr uint16_t MTP_EVENT_OBJECT_PROP_DESC_CHANGED_CODE = 0xC802; 409 constexpr uint16_t MTP_EVENT_OBJECT_REFERENCES_CHANGED_CODE = 0xC803; 410 411 // MTP Response 412 constexpr uint16_t MTP_UNDEFINED_CODE = 0x2000; 413 constexpr uint16_t MTP_OK_CODE = 0x2001; 414 constexpr uint16_t MTP_GENERAL_ERROR_CODE = 0x2002; 415 constexpr uint16_t MTP_SESSION_NOT_OPEN_CODE = 0x2003; 416 constexpr uint16_t MTP_INVALID_TRANSACTIONID_CODE = 0x2004; 417 constexpr uint16_t MTP_OPERATION_NOT_SUPPORTED_CODE = 0x2005; 418 constexpr uint16_t MTP_PARAMETER_NOT_SUPPORTED_CODE = 0x2006; 419 constexpr uint16_t MTP_INCOMPLETE_TRANSFER_CODE = 0x2007; 420 constexpr uint16_t MTP_INVALID_STORAGEID_CODE = 0x2008; 421 constexpr uint16_t MTP_INVALID_OBJECTHANDLE_CODE = 0x2009; 422 constexpr uint16_t MTP_DEVICEPROP_NOT_SUPPORTED_CODE = 0x200A; 423 constexpr uint16_t MTP_INVALID_OBJECTFORMATCODE_CODE = 0x200B; 424 constexpr uint16_t MTP_STORE_FULL_CODE = 0x200C; 425 constexpr uint16_t MTP_OBJECT_WRITEPROTECTED_CODE = 0x200D; 426 constexpr uint16_t MTP_STORE_READ_ONLY_CODE = 0x200E; 427 constexpr uint16_t MTP_ACCESS_DENIED_CODE = 0x200F; 428 constexpr uint16_t MTP_NO_THUMBNAIL_PRESENT_CODE = 0x2010; 429 constexpr uint16_t MTP_SELFTEST_FAILED_CODE = 0x2011; 430 constexpr uint16_t MTP_PARTIAL_DELETION_CODE = 0x2012; 431 constexpr uint16_t MTP_STORE_NOT_AVAILABLE_CODE = 0x2013; 432 constexpr uint16_t MTP_SPECIFICATION_BY_FORMAT_UNSUPPORTED_CODE = 0x2014; 433 constexpr uint16_t MTP_NO_VALID_OBJECTINFO_CODE = 0x2015; 434 constexpr uint16_t MTP_INVALID_CODE_FORMAT_CODE = 0x2016; 435 constexpr uint16_t MTP_UNKNOWN_VENDOR_CODE_CODE = 0x2017; 436 constexpr uint16_t MTP_CAPTURE_ALREADY_TERMINATED_CODE = 0x2018; 437 constexpr uint16_t MTP_DEVICE_BUSY_CODE = 0x2019; 438 constexpr uint16_t MTP_INVALID_PARENTOBJECT_CODE = 0x201A; 439 constexpr uint16_t MTP_INVALID_DEVICEPROP_FORMAT_CODE = 0x201B; 440 constexpr uint16_t MTP_INVALID_DEVICEPROP_VALUE_CODE = 0x201C; 441 constexpr uint16_t MTP_INVALID_PARAMETER_CODE = 0x201D; 442 constexpr uint16_t MTP_SESSION_ALREADY_OPEN_CODE = 0x201E; 443 constexpr uint16_t MTP_TRANSACTION_CANCELLED_CODE = 0x201F; 444 constexpr uint16_t MTP_SPECIFICATION_OF_DESTINATION_UNSUPPORTED_CODE = 0x2020; 445 constexpr uint16_t MTP_INVALID_OBJECTPROPCODE_CODE = 0xA801; 446 constexpr uint16_t MTP_INVALID_OBJECTPROP_FORMAT_CODE = 0xA802; 447 constexpr uint16_t MTP_INVALID_OBJECTPROP_VALUE_CODE = 0xA803; 448 constexpr uint16_t MTP_INVALID_OBJECTREFERENCE_CODE = 0xA804; 449 constexpr uint16_t MTP_GROUP_NOT_SUPPORTED_CODE = 0xA805; 450 constexpr uint16_t MTP_INVALID_DATASET_CODE = 0xA806; 451 constexpr uint16_t MTP_SPECIFICATION_BY_GROUP_UNSUPPORTED_CODE = 0xA807; 452 constexpr uint16_t MTP_SPECIFICATION_BY_DEPTH_UNSUPPORTED_CODE = 0xA808; 453 constexpr uint16_t MTP_OBJECT_TOO_LARGE_CODE = 0xA809; 454 constexpr uint16_t MTP_OBJECTPROP_NOT_SUPPORTED_CODE = 0xA80A; 455 456 // MTP Data Types 457 constexpr int MTP_TYPE_UNDEFINED_CODE = 0x0000; 458 constexpr int MTP_TYPE_INT8_CODE = 0x0001; 459 constexpr int MTP_TYPE_UINT8_CODE = 0x0002; 460 constexpr int MTP_TYPE_INT16_CODE = 0x0003; 461 constexpr int MTP_TYPE_UINT16_CODE = 0x0004; 462 constexpr int MTP_TYPE_INT32_CODE = 0x0005; 463 constexpr int MTP_TYPE_UINT32_CODE = 0x0006; 464 constexpr int MTP_TYPE_INT64_CODE = 0x0007; 465 constexpr int MTP_TYPE_UINT64_CODE = 0x0008; 466 constexpr int MTP_TYPE_INT128_CODE = 0x0009; 467 constexpr int MTP_TYPE_UINT128_CODE = 0x000A; 468 constexpr int MTP_TYPE_AINT8_CODE = 0x4001; 469 constexpr int MTP_TYPE_AUINT8_CODE = 0x4002; 470 constexpr int MTP_TYPE_AINT16_CODE = 0x4003; 471 constexpr int MTP_TYPE_AUINT16_CODE = 0x4004; 472 constexpr int MTP_TYPE_AINT32_CODE = 0x4005; 473 constexpr int MTP_TYPE_AUINT32_CODE = 0x4006; 474 constexpr int MTP_TYPE_AINT64_CODE = 0x4007; 475 constexpr int MTP_TYPE_AUINT64_CODE = 0x4008; 476 constexpr int MTP_TYPE_AINT128_CODE = 0x4009; 477 constexpr int MTP_TYPE_AUINT128_CODE = 0x400A; 478 constexpr int MTP_TYPE_STRING_CODE = 0xFFFF; 479 480 // MTP Container Offsets 481 constexpr int MTP_CONTAINER_LENGTH_OFFSET = 0; 482 constexpr int MTP_CONTAINER_TYPE_OFFSET = 4; 483 constexpr int MTP_CONTAINER_CODE_OFFSET = 6; 484 constexpr int MTP_CONTAINER_TRANSACTION_ID_OFFSET = 8; 485 constexpr int MTP_CONTAINER_PARAMETER_OFFSET = 12; 486 constexpr int32_t MTP_CONTAINER_HEADER_SIZE = 12; 487 constexpr int32_t MTP_PARAMETER_SIZE = 4; 488 489 // Association Type 490 constexpr int MTP_ASSOCIATION_TYPE_UNDEFINED_CODE = 0x0000; 491 constexpr int MTP_ASSOCIATION_TYPE_GENERIC_FOLDER_CODE = 0x0001; 492 493 constexpr int MTP_STORAGE_UNDEFINED = 0x0000; 494 constexpr int MTP_STORAGE_FIXEDROM = 0x0001; 495 constexpr int MTP_STORAGE_REMOVABLEROM = 0x0002; 496 constexpr int MTP_STORAGE_FIXEDRAM = 0x0003; 497 constexpr int MTP_STORAGE_REMOVABLERAM = 0x0004; 498 // Filesystem Type 499 constexpr int MTP_FILESYSTEM_UNDEFINED = 0x0000; 500 constexpr int MTP_FILESYSTEM_GENERICFLAT = 0x0001; 501 constexpr int MTP_FILESYSTEM_GENERICHIERARCHICAL = 0x0002; 502 constexpr int MTP_FILESYSTEM_DCF = 0x0003; 503 // Access Capability 504 constexpr int MTP_ACCESS_READ_WRITE = 0x0000; 505 constexpr int MTP_ACCESS_READ_ONLY_WITHOUT_OBJECT_DELETION = 0x0001; 506 constexpr int MTP_ACCESS_READ_ONLY_WITH_OBJECT_DELETION = 0x0002; 507 508 // storage 509 constexpr uint32_t MTP_STORAGE_ID_ALL = 0xFFFFFFFF; // all storage 510 constexpr uint32_t MTP_STORAGE_ID_ALL2 = 0; // all storage 511 512 // perceived device type 513 constexpr uint32_t MTP_PERCEIVED_DEVICE_TYPE_GENERIC = 0x00000000; 514 constexpr uint32_t MTP_PERCEIVED_DEVICE_TYPE_STILL_IMAGE_VIDEO_CAMERA = 0x00000001; 515 constexpr uint32_t MTP_PERCEIVED_DEVICE_TYPE_MEDIA_PLAYER = 0x00000002; 516 constexpr uint32_t MTP_PERCEIVED_DEVICE_TYPE_MOBILE_HANDSET = 0x00000003; 517 constexpr uint32_t MTP_PERCEIVED_DEVICE_TYPE_VIDEO_PLAYER = 0x00000004; 518 constexpr uint32_t MTP_PERCEIVED_DEVICE_TYPE_PERSONAL = 0x00000005; 519 constexpr uint32_t MTP_PERCEIVED_DEVICE_TYPE_AUDIO_RECORDER = 0x00000005; 520 521 using int128_t = int32_t[4]; 522 using uint128_t = uint32_t[4]; 523 using UInt8List = std::vector<uint8_t>; 524 using UInt16List = std::vector<uint16_t>; 525 using UInt32List = std::vector<uint32_t>; 526 using UInt64List = std::vector<uint64_t>; 527 using Int8List = std::vector<int8_t>; 528 using Int16List = std::vector<int16_t>; 529 using Int32List = std::vector<int32_t>; 530 using Int64List = std::vector<int64_t>; 531 532 // MTP Data Types 533 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_UNDEFINED = 0x0000; // Undefined 534 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_INT8 = 0x0001; // Signed 8-bit integer 535 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_UINT8 = 0x0002; // Unsigned 8-bit integer 536 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_INT16 = 0x0003; // Signed 16-bit integer 537 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_UINT16 = 0x0004; // Unsigned 16-bit integer 538 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_INT32 = 0x0005; // Signed 32-bit integer 539 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_UINT32 = 0x0006; // Unsigned 32-bit integer 540 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_INT64 = 0x0007; // Signed 64-bit integer 541 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_UINT64 = 0x0008; // Unsigned 64-bit integer 542 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_INT128 = 0x0009; // Signed 128-bit integer 543 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_UINT128 = 0x000A; // Unsigned 128-bit integer 544 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_AINT8 = 0x4001; // Array of signed 8-bit integers 545 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_AUINT8 = 0x4002; // Array of unsigned 8-bit integers 546 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_AINT16 = 0x4003; // Array of signed 16-bit integers 547 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_AUINT16 = 0x4004; // Array of unsigned 16-bit integers 548 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_AINT32 = 0x4005; // Array of signed 32-bit integers 549 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_AUINT32 = 0x4006; // Array of unsigned 32-bit integers 550 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_AINT64 = 0x4007; // Array of signed 64-bit integers 551 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_AUINT64 = 0x4008; // Array of unsigned 64-bit integers 552 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_AINT128 = 0x4009; // Array of signed 128-bit integers 553 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_AUINT128 = 0x400A; // Array of unsigned 128-bit integers 554 constexpr uint16_t MTP_DEVICE_PROP_DESC_TYPE_STR = 0xFFFF; // Variable-length Unicode string 555 556 // Form_Flag 557 constexpr uint8_t MTP_DEVICE_PROP_DESC_Form_FLAG_NONE = 0x00; 558 constexpr uint8_t MTP_DEVICE_PROP_DESC_Form_FLAG_RANGE = 0x01; 559 constexpr uint8_t MTP_DEVICE_PROP_DESC_Form_FLAG_ENUMERATION = 0x02; 560 561 constexpr int BATTERY_LEVEL_MIN = 0; 562 constexpr int BATTERY_LEVEL_MAX = 100; 563 constexpr int BATTERY_LEVEL_STEP = 1; 564 565 #endif // FRAMEWORKS_SERVICES_MEDIA_MTP_INCLUDE_MTP_CONSTANTS_H_ 566