usb_mtp.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. #ifndef _USB_MTP_H
  2. #define _USB_MTP_H
  3. #define USB_MTP_CLASS 0x06
  4. #define USB_MTP_SUB_CLASS 0x01U
  5. #define USB_MTP_PROTOCOL 0x01U
  6. #define MTP_REQUEST_CANCEL 0x64U
  7. #define MTP_REQUEST_GET_EXT_EVENT_DATA 0x65U
  8. #define MTP_REQUEST_RESET 0x66U
  9. #define MTP_REQUEST_GET_DEVICE_STATUS 0x67U
  10. /*
  11. * MTP Class specification Revision 1.1
  12. * Appendix B. Object Properties
  13. */
  14. /* MTP OBJECT PROPERTIES supported*/
  15. #define MTP_OB_PROP_STORAGE_ID 0xDC01U
  16. #define MTP_OB_PROP_OBJECT_FORMAT 0xDC02U
  17. #define MTP_OB_PROP_PROTECTION_STATUS 0xDC03U
  18. #define MTP_OB_PROP_OBJECT_SIZE 0xDC04U
  19. #define MTP_OB_PROP_ASSOC_TYPE 0xDC05U
  20. #define MTP_OB_PROP_ASSOC_DESC 0xDC06U
  21. #define MTP_OB_PROP_OBJ_FILE_NAME 0xDC07U
  22. #define MTP_OB_PROP_DATE_CREATED 0xDC08U
  23. #define MTP_OB_PROP_DATE_MODIFIED 0xDC09U
  24. #define MTP_OB_PROP_KEYWORDS 0xDC0AU
  25. #define MTP_OB_PROP_PARENT_OBJECT 0xDC0BU
  26. #define MTP_OB_PROP_ALLOWED_FOLD_CONTENTS 0xDC0CU
  27. #define MTP_OB_PROP_HIDDEN 0xDC0DU
  28. #define MTP_OB_PROP_SYSTEM_OBJECT 0xDC0EU
  29. #define MTP_OB_PROP_PERS_UNIQ_OBJ_IDEN 0xDC41U
  30. #define MTP_OB_PROP_SYNCID 0xDC42U
  31. #define MTP_OB_PROP_PROPERTY_BAG 0xDC43U
  32. #define MTP_OB_PROP_NAME 0xDC44U
  33. #define MTP_OB_PROP_CREATED_BY 0xDC45U
  34. #define MTP_OB_PROP_ARTIST 0xDC46U
  35. #define MTP_OB_PROP_DATE_AUTHORED 0xDC47U
  36. #define MTP_OB_PROP_DESCRIPTION 0xDC48U
  37. #define MTP_OB_PROP_URL_REFERENCE 0xDC49U
  38. #define MTP_OB_PROP_LANGUAGELOCALE 0xDC4AU
  39. #define MTP_OB_PROP_COPYRIGHT_INFORMATION 0xDC4BU
  40. #define MTP_OB_PROP_SOURCE 0xDC4CU
  41. #define MTP_OB_PROP_ORIGIN_LOCATION 0xDC4DU
  42. #define MTP_OB_PROP_DATE_ADDED 0xDC4EU
  43. #define MTP_OB_PROP_NON_CONSUMABLE 0xDC4FU
  44. #define MTP_OB_PROP_CORRUPTUNPLAYABLE 0xDC50U
  45. #define MTP_OB_PROP_PRODUCERSERIALNUMBER 0xDC51U
  46. #define MTP_OB_PROP_REPRESENTATIVE_SAMPLE_FORMAT 0xDC81U
  47. #define MTP_OB_PROP_REPRESENTATIVE_SAMPLE_SIZE 0xDC82U
  48. #define MTP_OB_PROP_REPRESENTATIVE_SAMPLE_HEIGHT 0xDC83U
  49. #define MTP_OB_PROP_REPRESENTATIVE_SAMPLE_WIDTH 0xDC84U
  50. #define MTP_OB_PROP_REPRESENTATIVE_SAMPLE_DURATION 0xDC85U
  51. #define MTP_OB_PROP_REPRESENTATIVE_SAMPLE_DATA 0xDC86U
  52. #define MTP_OB_PROP_WIDTH 0xDC87U
  53. #define MTP_OB_PROP_HEIGHT 0xDC88U
  54. #define MTP_OB_PROP_DURATION 0xDC89U
  55. #define MTP_OB_PROP_RATING 0xDC8AU
  56. #define MTP_OB_PROP_TRACK 0xDC8BU
  57. #define MTP_OB_PROP_GENRE 0xDC8CU
  58. #define MTP_OB_PROP_CREDITS 0xDC8DU
  59. #define MTP_OB_PROP_LYRICS 0xDC8EU
  60. #define MTP_OB_PROP_SUBSCRIPTION_CONTENT_ID 0xDC8FU
  61. #define MTP_OB_PROP_PRODUCED_BY 0xDC90U
  62. #define MTP_OB_PROP_USE_COUNT 0xDC91U
  63. #define MTP_OB_PROP_SKIP_COUNT 0xDC92U
  64. #define MTP_OB_PROP_LAST_ACCESSED 0xDC93U
  65. #define MTP_OB_PROP_PARENTAL_RATING 0xDC94U
  66. #define MTP_OB_PROP_META_GENRE 0xDC95U
  67. #define MTP_OB_PROP_COMPOSER 0xDC96U
  68. #define MTP_OB_PROP_EFFECTIVE_RATING 0xDC97U
  69. #define MTP_OB_PROP_SUBTITLE 0xDC98U
  70. #define MTP_OB_PROP_ORIGINAL_RELEASE_DATE 0xDC99U
  71. #define MTP_OB_PROP_ALBUM_NAME 0xDC9AU
  72. #define MTP_OB_PROP_ALBUM_ARTIST 0xDC9BU
  73. #define MTP_OB_PROP_MOOD 0xDC9CU
  74. #define MTP_OB_PROP_DRM_STATUS 0xDC9DU
  75. #define MTP_OB_PROP_SUB_DESCRIPTION 0xDC9EU
  76. #define MTP_OB_PROP_IS_CROPPED 0xDCD1U
  77. #define MTP_OB_PROP_IS_COLOUR_CORRECTED 0xDCD2U
  78. #define MTP_OB_PROP_IMAGE_BIT_DEPTH 0xDCD3U
  79. #define MTP_OB_PROP_FNUMBER 0xDCD4U
  80. #define MTP_OB_PROP_EXPOSURE_TIME 0xDCD5U
  81. #define MTP_OB_PROP_EXPOSURE_INDEX 0xDCD6U
  82. #define MTP_OB_PROP_TOTAL_BITRATE 0xDE91U
  83. #define MTP_OB_PROP_BITRATE_TYPE 0xDE92U
  84. #define MTP_OB_PROP_SAMPLE_RATE 0xDE93U
  85. #define MTP_OB_PROP_NUMBER_OF_CHANNELS 0xDE94U
  86. #define MTP_OB_PROP_AUDIO_BITDEPTH 0xDE95U
  87. #define MTP_OB_PROP_SCAN_TYPE 0xDE97U
  88. #define MTP_OB_PROP_AUDIO_WAVE_CODEC 0xDE99U
  89. #define MTP_OB_PROP_AUDIO_BITRATE 0xDE9AU
  90. #define MTP_OB_PROP_VIDEO_FOURCC_CODEC 0xDE9BU
  91. #define MTP_OB_PROP_VIDEO_BITRATE 0xDE9CU
  92. #define MTP_OB_PROP_FRAMES_PER_THOUSAND_SECONDS 0xDE9DU
  93. #define MTP_OB_PROP_KEYFRAME_DISTANCE 0xDE9EU
  94. #define MTP_OB_PROP_BUFFER_SIZE 0xDE9FU
  95. #define MTP_OB_PROP_ENCODING_QUALITY 0xDEA0U
  96. #define MTP_OB_PROP_ENCODING_PROFILE 0xDEA1U
  97. #define MTP_OB_PROP_DISPLAY_NAME 0xDCE0U
  98. #define MTP_OB_PROP_BODY_TEXT 0xDCE1U
  99. #define MTP_OB_PROP_SUBJECT 0xDCE2U
  100. #define MTP_OB_PROP_PRIORITY 0xDCE3U
  101. #define MTP_OB_PROP_GIVEN_NAME 0xDD00U
  102. #define MTP_OB_PROP_MIDDLE_NAMES 0xDD01U
  103. #define MTP_OB_PROP_FAMILY_NAME 0xDD02U
  104. #define MTP_OB_PROP_PREFIX 0xDD03U
  105. #define MTP_OB_PROP_SUFFIX 0xDD04U
  106. #define MTP_OB_PROP_PHONETIC_GIVEN_NAME 0xDD05U
  107. #define MTP_OB_PROP_PHONETIC_FAMILY_NAME 0xDD06U
  108. #define MTP_OB_PROP_EMAIL_PRIMARY 0xDD07U
  109. #define MTP_OB_PROP_EMAIL_PERSONAL_1 0xDD08U
  110. #define MTP_OB_PROP_EMAIL_PERSONAL_2 0xDD09U
  111. #define MTP_OB_PROP_EMAIL_BUSINESS_1 0xDD0AU
  112. #define MTP_OB_PROP_EMAIL_BUSINESS_2 0xDD0BU
  113. #define MTP_OB_PROP_EMAIL_OTHERS 0xDD0CU
  114. #define MTP_OB_PROP_PHONE_NUMBER_PRIMARY 0xDD0DU
  115. #define MTP_OB_PROP_PHONE_NUMBER_PERSONAL 0xDD0EU
  116. #define MTP_OB_PROP_PHONE_NUMBER_PERSONAL_2 0xDD0FU
  117. #define MTP_OB_PROP_PHONE_NUMBER_BUSINESS 0xDD10U
  118. #define MTP_OB_PROP_PHONE_NUMBER_BUSINESS_2 0xDD11U
  119. #define MTP_OB_PROP_PHONE_NUMBER_MOBILE 0xDD12U
  120. #define MTP_OB_PROP_PHONE_NUMBER_MOBILE_2 0xDD13U
  121. #define MTP_OB_PROP_FAX_NUMBER_PRIMARY 0xDD14U
  122. #define MTP_OB_PROP_FAX_NUMBER_PERSONAL 0xDD15U
  123. #define MTP_OB_PROP_FAX_NUMBER_BUSINESS 0xDD16U
  124. #define MTP_OB_PROP_PAGER_NUMBER 0xDD17U
  125. #define MTP_OB_PROP_PHONE_NUMBER_OTHERS 0xDD18U
  126. #define MTP_OB_PROP_PRIMARY_WEB_ADDRESS 0xDD19U
  127. #define MTP_OB_PROP_PERSONAL_WEB_ADDRESS 0xDD1AU
  128. #define MTP_OB_PROP_BUSINESS_WEB_ADDRESS 0xDD1BU
  129. #define MTP_OB_PROP_INSTANT_MESSENGER_ADDRESS 0xDD1CU
  130. #define MTP_OB_PROP_INSTANT_MESSENGER_ADDRESS_2 0xDD1DU
  131. #define MTP_OB_PROP_INSTANT_MESSENGER_ADDRESS_3 0xDD1EU
  132. #define MTP_OB_PROP_POSTAL_ADDRESS_PERSONAL_FULL 0xDD1FU
  133. #define MTP_OB_PROP_POSTAL_ADDRESS_PERSONAL_LINE_1 0xDD20U
  134. #define MTP_OB_PROP_POSTAL_ADDRESS_PERSONAL_LINE_2 0xDD21U
  135. #define MTP_OB_PROP_POSTAL_ADDRESS_PERSONAL_CITY 0xDD22U
  136. #define MTP_OB_PROP_POSTAL_ADDRESS_PERSONAL_REGION 0xDD23U
  137. #define MTP_OB_PROP_POSTAL_ADDRESS_PERSONAL_POSTAL_CODE 0xDD24U
  138. #define MTP_OB_PROP_POSTAL_ADDRESS_PERSONAL_COUNTRY 0xDD25U
  139. #define MTP_OB_PROP_POSTAL_ADDRESS_BUSINESS_FULL 0xDD26U
  140. #define MTP_OB_PROP_POSTAL_ADDRESS_BUSINESS_LINE_1 0xDD27U
  141. #define MTP_OB_PROP_POSTAL_ADDRESS_BUSINESS_LINE_2 0xDD28U
  142. #define MTP_OB_PROP_POSTAL_ADDRESS_BUSINESS_CITY 0xDD29U
  143. #define MTP_OB_PROP_POSTAL_ADDRESS_BUSINESS_REGION 0xDD2AU
  144. #define MTP_OB_PROP_POSTAL_ADDRESS_BUSINESS_POSTAL_CODE 0xDD2BU
  145. #define MTP_OB_PROP_POSTAL_ADDRESS_BUSINESS_COUNTRY 0xDD2CU
  146. #define MTP_OB_PROP_POSTAL_ADDRESS_OTHER_FULL 0xDD2DU
  147. #define MTP_OB_PROP_POSTAL_ADDRESS_OTHER_LINE_1 0xDD2EU
  148. #define MTP_OB_PROP_POSTAL_ADDRESS_OTHER_LINE_2 0xDD2FU
  149. #define MTP_OB_PROP_POSTAL_ADDRESS_OTHER_CITY 0xDD30U
  150. #define MTP_OB_PROP_POSTAL_ADDRESS_OTHER_REGION 0xDD31U
  151. #define MTP_OB_PROP_POSTAL_ADDRESS_OTHER_POSTAL_CODE 0xDD32U
  152. #define MTP_OB_PROP_POSTAL_ADDRESS_OTHER_COUNTRY 0xDD33U
  153. #define MTP_OB_PROP_ORGANIZATION_NAME 0xDD34U
  154. #define MTP_OB_PROP_PHONETIC_ORGANIZATION_NAME 0xDD35U
  155. #define MTP_OB_PROP_ROLE 0xDD36U
  156. #define MTP_OB_PROP_BIRTHDATE 0xDD37U
  157. #define MTP_OB_PROP_MESSAGE_TO 0xDD40U
  158. #define MTP_OB_PROP_MESSAGE_CC 0xDD41U
  159. #define MTP_OB_PROP_MESSAGE_BCC 0xDD42U
  160. #define MTP_OB_PROP_MESSAGE_READ 0xDD43U
  161. #define MTP_OB_PROP_MESSAGE_RECEIVED_TIME 0xDD44U
  162. #define MTP_OB_PROP_MESSAGE_SENDER 0xDD45U
  163. #define MTP_OB_PROP_ACT_BEGIN_TIME 0xDD50U
  164. #define MTP_OB_PROP_ACT_END_TIME 0xDD51U
  165. #define MTP_OB_PROP_ACT_LOCATION 0xDD52U
  166. #define MTP_OB_PROP_ACT_REQUIRED_ATTENDEES 0xDD54U
  167. #define MTP_OB_PROP_ACT_OPTIONAL_ATTENDEES 0xDD55U
  168. #define MTP_OB_PROP_ACT_RESOURCES 0xDD56U
  169. #define MTP_OB_PROP_ACT_ACCEPTED 0xDD57U
  170. #define MTP_OB_PROP_OWNER 0xDD5DU
  171. #define MTP_OB_PROP_EDITOR 0xDD5EU
  172. #define MTP_OB_PROP_WEBMASTER 0xDD5FU
  173. #define MTP_OB_PROP_URL_SOURCE 0xDD60U
  174. #define MTP_OB_PROP_URL_DESTINATION 0xDD61U
  175. #define MTP_OB_PROP_TIME_BOOKMARK 0xDD62U
  176. #define MTP_OB_PROP_OBJECT_BOOKMARK 0xDD63U
  177. #define MTP_OB_PROP_BYTE_BOOKMARK 0xDD64U
  178. #define MTP_OB_PROP_LAST_BUILD_DATE 0xDD70U
  179. #define MTP_OB_PROP_TIME_TO_LIVE 0xDD71U
  180. #define MTP_OB_PROP_MEDIA_GUID 0xDD72U
  181. /* MTP event codes*/
  182. #define MTP_EVENT_UNDEFINED 0x4000U
  183. #define MTP_EVENT_CANCELTRANSACTION 0x4001U
  184. #define MTP_EVENT_OBJECTADDED 0x4002U
  185. #define MTP_EVENT_OBJECTREMOVED 0x4003U
  186. #define MTP_EVENT_STOREADDED 0x4004U
  187. #define MTP_EVENT_STOREREMOVED 0x4005U
  188. #define MTP_EVENT_DEVICEPROPCHANGED 0x4006U
  189. #define MTP_EVENT_OBJECTINFOCHANGED 0x4007U
  190. #define MTP_EVENT_DEVICEINFOCHANGED 0x4008U
  191. #define MTP_EVENT_REQUESTOBJECTTRANSFER 0x4009U
  192. #define MTP_EVENT_STOREFULL 0x400AU
  193. #define MTP_EVENT_DEVICERESET 0x400BU
  194. #define MTP_EVENT_STORAGEINFOCHANGED 0x400CU
  195. #define MTP_EVENT_CAPTURECOMPLETE 0x400DU
  196. #define MTP_EVENT_UNREPORTEDSTATUS 0x400EU
  197. #define MTP_EVENT_OBJECTPROPCHANGED 0xC801U
  198. #define MTP_EVENT_OBJECTPROPDESCCHANGED 0xC802U
  199. #define MTP_EVENT_OBJECTREFERENCESCHANGED 0xC803U
  200. /*
  201. * MTP Class specification Revision 1.1
  202. * Appendix D. Operations
  203. */
  204. /* Operations code */
  205. #define MTP_OP_GET_DEVICE_INFO 0x1001U
  206. #define MTP_OP_OPEN_SESSION 0x1002U
  207. #define MTP_OP_CLOSE_SESSION 0x1003U
  208. #define MTP_OP_GET_STORAGE_IDS 0x1004U
  209. #define MTP_OP_GET_STORAGE_INFO 0x1005U
  210. #define MTP_OP_GET_NUM_OBJECTS 0x1006U
  211. #define MTP_OP_GET_OBJECT_HANDLES 0x1007U
  212. #define MTP_OP_GET_OBJECT_INFO 0x1008U
  213. #define MTP_OP_GET_OBJECT 0x1009U
  214. #define MTP_OP_GET_THUMB 0x100AU
  215. #define MTP_OP_DELETE_OBJECT 0x100BU
  216. #define MTP_OP_SEND_OBJECT_INFO 0x100CU
  217. #define MTP_OP_SEND_OBJECT 0x100DU
  218. #define MTP_OP_FORMAT_STORE 0x100FU
  219. #define MTP_OP_RESET_DEVICE 0x1010U
  220. #define MTP_OP_GET_DEVICE_PROP_DESC 0x1014U
  221. #define MTP_OP_GET_DEVICE_PROP_VALUE 0x1015U
  222. #define MTP_OP_SET_DEVICE_PROP_VALUE 0x1016U
  223. #define MTP_OP_RESET_DEVICE_PROP_VALUE 0x1017U
  224. #define MTP_OP_TERMINATE_OPEN_CAPTURE 0x1018U
  225. #define MTP_OP_MOVE_OBJECT 0x1019U
  226. #define MTP_OP_COPY_OBJECT 0x101AU
  227. #define MTP_OP_GET_PARTIAL_OBJECT 0x101BU
  228. #define MTP_OP_INITIATE_OPEN_CAPTURE 0x101CU
  229. #define MTP_OP_GET_OBJECT_PROPS_SUPPORTED 0x9801U
  230. #define MTP_OP_GET_OBJECT_PROP_DESC 0x9802U
  231. #define MTP_OP_GET_OBJECT_PROP_VALUE 0x9803U
  232. #define MTP_OP_SET_OBJECT_PROP_VALUE 0x9804U
  233. #define MTP_OP_GET_OBJECT_PROPLIST 0x9805U
  234. #define MTP_OP_GET_OBJECT_PROP_REFERENCES 0x9810U
  235. #define MTP_OP_GETSERVICEIDS 0x9301U
  236. #define MTP_OP_GETSERVICEINFO 0x9302U
  237. #define MTP_OP_GETSERVICECAPABILITIES 0x9303U
  238. #define MTP_OP_GETSERVICEPROPDESC 0x9304U
  239. /*
  240. * MTP Class specification Revision 1.1
  241. * Appendix C. Device Properties
  242. */
  243. /* MTP device properties code*/
  244. #define MTP_DEV_PROP_UNDEFINED 0x5000U
  245. #define MTP_DEV_PROP_BATTERY_LEVEL 0x5001U
  246. #define MTP_DEV_PROP_FUNCTIONAL_MODE 0x5002U
  247. #define MTP_DEV_PROP_IMAGE_SIZE 0x5003U
  248. #define MTP_DEV_PROP_COMPRESSION_SETTING 0x5004U
  249. #define MTP_DEV_PROP_WHITE_BALANCE 0x5005U
  250. #define MTP_DEV_PROP_RGB_GAIN 0x5006U
  251. #define MTP_DEV_PROP_F_NUMBER 0x5007U
  252. #define MTP_DEV_PROP_FOCAL_LENGTH 0x5008U
  253. #define MTP_DEV_PROP_FOCUS_DISTANCE 0x5009U
  254. #define MTP_DEV_PROP_FOCUS_MODE 0x500AU
  255. #define MTP_DEV_PROP_EXPOSURE_METERING_MODE 0x500BU
  256. #define MTP_DEV_PROP_FLASH_MODE 0x500CU
  257. #define MTP_DEV_PROP_EXPOSURE_TIME 0x500DU
  258. #define MTP_DEV_PROP_EXPOSURE_PROGRAM_MODE 0x500EU
  259. #define MTP_DEV_PROP_EXPOSURE_INDEX 0x500FU
  260. #define MTP_DEV_PROP_EXPOSURE_BIAS_COMPENSATION 0x5010U
  261. #define MTP_DEV_PROP_DATETIME 0x5011U
  262. #define MTP_DEV_PROP_CAPTURE_DELAY 0x5012U
  263. #define MTP_DEV_PROP_STILL_CAPTURE_MODE 0x5013U
  264. #define MTP_DEV_PROP_CONTRAST 0x5014U
  265. #define MTP_DEV_PROP_SHARPNESS 0x5015U
  266. #define MTP_DEV_PROP_DIGITAL_ZOOM 0x5016U
  267. #define MTP_DEV_PROP_EFFECT_MODE 0x5017U
  268. #define MTP_DEV_PROP_BURST_NUMBER 0x5018U
  269. #define MTP_DEV_PROP_BURST_INTERVAL 0x5019U
  270. #define MTP_DEV_PROP_TIMELAPSE_NUMBER 0x501AU
  271. #define MTP_DEV_PROP_TIMELAPSE_INTERVAL 0x501BU
  272. #define MTP_DEV_PROP_FOCUS_METERING_MODE 0x501CU
  273. #define MTP_DEV_PROP_UPLOAD_URL 0x501DU
  274. #define MTP_DEV_PROP_ARTIST 0x501EU
  275. #define MTP_DEV_PROP_COPYRIGHT_INFO 0x501FU
  276. #define MTP_DEV_PROP_SYNCHRONIZATION_PARTNER 0xD401U
  277. #define MTP_DEV_PROP_DEVICE_FRIENDLY_NAME 0xD402U
  278. #define MTP_DEV_PROP_VOLUME 0xD403U
  279. #define MTP_DEV_PROP_SUPPORTEDFORMATSORDERED 0xD404U
  280. #define MTP_DEV_PROP_DEVICEICON 0xD405U
  281. #define MTP_DEV_PROP_PLAYBACK_RATE 0xD410U
  282. #define MTP_DEV_PROP_PLAYBACK_OBJECT 0xD411U
  283. #define MTP_DEV_PROP_PLAYBACK_CONTAINER 0xD412U
  284. #define MTP_DEV_PROP_SESSION_INITIATOR_VERSION_INFO 0xD406U
  285. #define MTP_DEV_PROP_PERCEIVED_DEVICE_TYPE 0xD407U
  286. /* Container Types */
  287. #define MTP_CONT_TYPE_UNDEFINED 0U
  288. #define MTP_CONT_TYPE_COMMAND 1U
  289. #define MTP_CONT_TYPE_DATA 2U
  290. #define MTP_CONT_TYPE_RESPONSE 3U
  291. #define MTP_CONT_TYPE_EVENT 4U
  292. #ifndef MTP_STORAGE_ID
  293. #define MTP_STORAGE_ID 0x00010001U /* SD card is inserted*/
  294. #endif /* MTP_STORAGE_ID */
  295. #define MTP_NBR_STORAGE_ID 1U
  296. #define FREE_SPACE_IN_OBJ_NOT_USED 0xFFFFFFFFU
  297. /* MTP storage type */
  298. #define MTP_STORAGE_UNDEFINED 0U
  299. #define MTP_STORAGE_FIXED_ROM 0x0001U
  300. #define MTP_STORAGE_REMOVABLE_ROM 0x0002U
  301. #define MTP_STORAGE_FIXED_RAM 0x0003U
  302. #define MTP_STORAGE_REMOVABLE_RAM 0x0004U
  303. /* MTP file system type */
  304. #define MTP_FILESYSTEM_UNDEFINED 0U
  305. #define MTP_FILESYSTEM_GENERIC_FLAT 0x0001U
  306. #define MTP_FILESYSTEM_GENERIC_HIERARCH 0x0002U
  307. #define MTP_FILESYSTEM_DCF 0x0003U
  308. /* MTP access capability */
  309. #define MTP_ACCESS_CAP_RW 0U /* read write */
  310. #define MTP_ACCESS_CAP_RO_WITHOUT_DEL 0x0001U
  311. #define MTP_ACCESS_CAP_RO_WITH_DEL 0x0002U
  312. /* MTP standard data types supported */
  313. #define MTP_DATATYPE_INT8 0x0001U
  314. #define MTP_DATATYPE_UINT8 0x0002U
  315. #define MTP_DATATYPE_INT16 0x0003U
  316. #define MTP_DATATYPE_UINT16 0x0004U
  317. #define MTP_DATATYPE_INT32 0x0005U
  318. #define MTP_DATATYPE_UINT32 0x0006U
  319. #define MTP_DATATYPE_INT64 0x0007U
  320. #define MTP_DATATYPE_UINT64 0x0008U
  321. #define MTP_DATATYPE_UINT128 0x000AU
  322. #define MTP_DATATYPE_STR 0xFFFFU
  323. /* MTP reading only or reading/writing */
  324. #define MTP_PROP_GET 0x00U
  325. #define MTP_PROP_GET_SET 0x01U
  326. #endif