- Visual C++源码
- Visual Basic源码
- C++ Builder源码
- Java源码
- Delphi源码
- C/C++源码
- PHP源码
- Perl源码
- Python源码
- Asm源码
- Pascal源码
- Borland C++源码
- Others源码
- SQL源码
- VBScript源码
- JavaScript源码
- ASP/ASPX源码
- C#源码
- Flash/ActionScript源码
- matlab源码
- PowerBuilder源码
- LabView源码
- Flex源码
- MathCAD源码
- VBA源码
- IDL源码
- Lisp/Scheme源码
- VHDL源码
- Objective-C源码
- Fortran源码
- tcl/tk源码
- QT源码
mtp.h
资源名称:SDK_M5661.rar [点击查看]
上传用户:hjhsjcl
上传日期:2020-09-25
资源大小:11378k
文件大小:28k
源码类别:
压缩解压
开发平台:
C++ Builder
- /***********************************************************************************
- *
- * Copyright (C) 2005 ALi Corporation. All Rights Reserved.
- *
- * File: mtp.h
- *
- * Contents:
- *
- * History:
- * Date By Reason
- * =========== =========== ===========
- * 2005/1/17 Jeremy Jiang development
- *
- ************************************************************************************/
- #define _MTP_COMMON_ 0
- #define _MTP_KERNEL_ 0
- #define _MTP_SPECIAL_CMD_ 0 //051010
- #if(_PM_MTP_|_PM_MTP_INIT_)
- #undef _MTP_COMMON_
- #define _MTP_COMMON_ 1
- #if(!_PM_MTP_INIT_)
- #undef _MTP_KERNEL_
- #define _MTP_KERNEL_ 1
- #undef _MTP_SPECIAL_CMD_
- #define _MTP_SPECIAL_CMD_ 1
- #endif
- #endif
- //#ifndef _MTP_H
- //#define _MTP_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #ifndef uint8_t
- #define int8_t volatile char
- #define uint8_t volatile unsigned char
- #define uint16_t volatile unsigned int
- #define uint32_t volatile unsigned long
- #define addr_t volatile unsigned char xdata *
- #endif
- //Reverse WORD
- #define _htons(addr) ((((uint16_t)(addr) & 0x000000FF) << 8) |
- (((uint16_t)(addr) & 0x0000FF00) >> 8))
- //Reverse DWORD
- #define _htonl(addr) ((((uint32_t)(addr) & 0x000000FF) << 24) |
- (((uint32_t)(addr) & 0x0000FF00) << 8) |
- (((uint32_t)(addr) & 0x00FF0000) >> 8) |
- (((uint32_t)(addr) & 0xFF000000) >> 24))
- #define OFFSET_DATA(m, o) (*((uint8_t *)&(m) + o))
- //#define UsbInb(n) (n) = obUSBDEVEPBFIFO
- #define UsbInb(n) {
- while((obUSBDEVEPBFCTR & EP_STS_EMPTY)) { };
- (n) = obUSBDEVEPBFIFO;
- }
- #define UsbOutb(n) { WaitEPANotFull(); obUSBDEVEPAFIFO = (n); }
- #define UsbOutEPCb(n) { WaitEPCNotFull(); obUSBDEVEPCFIFO = (n); } //Chris 061222#1 //Chris070521#1
- /* Defines the type of USB containe */
- #define MTP_TP_COMMANDBLOCK _htons(0x0001)
- #define MTP_TP_DATABLOCK _htons(0x0002)
- #define MTP_TP_RESPONSEBLOCK _htons(0x0003)
- #define MTP_TP_EVENTBLOCK _htons(0x0004)
- #define PTP_CMD_NULL _htons(0x0000)
- /* Standard PTP operation codes */
- #define PTP_OPCODE_UNDEFINED _htons(0x1000)
- #define PTP_OPCODE_GETDEVICEINFO _htons(0x1001)
- #define PTP_OPCODE_OPENSESSION _htons(0x1002)
- #define PTP_OPCODE_CLOSESESSION _htons(0x1003)
- #define PTP_OPCODE_GETSTORAGEIDS _htons(0x1004)
- #define PTP_OPCODE_GETSTORAGEINFO _htons(0x1005)
- #define PTP_OPCODE_GETNUMOBJECTS _htons(0x1006)
- #define PTP_OPCODE_GETOBJECTHANDLES _htons(0x1007)
- #define PTP_OPCODE_GETOBJECTINFO _htons(0x1008)
- #define PTP_OPCODE_GETOBJECT _htons(0x1009)
- #define PTP_OPCODE_GETTHUMB _htons(0x100A)
- #define PTP_OPCODE_DELETEOBJECT _htons(0x100B)
- #define PTP_OPCODE_SENDOBJECTINFO _htons(0x100C)
- #define PTP_OPCODE_SENDOBJECT _htons(0x100D)
- #define PTP_OPCODE_INITIATECAPTURE _htons(0x100E)
- #define PTP_OPCODE_FORMATSTORE _htons(0x100F)
- #define PTP_OPCODE_RESETDEVICE _htons(0x1010)
- #define PTP_OPCODE_SELFTEST _htons(0x1011)
- #define PTP_OPCODE_SETOBJECTPROTECTION _htons(0x1012)
- #define PTP_OPCODE_POWERDOWN _htons(0x1013)
- #define PTP_OPCODE_GETDEVICEPROPDESC _htons(0x1014)
- #define PTP_OPCODE_GETDEVICEPROPVALUE _htons(0x1015)
- #define PTP_OPCODE_SETDEVICEPROPVALUE _htons(0x1016)
- #define PTP_OPCODE_RESETDEVICEPROPVALUE _htons(0x1017)
- #define PTP_OPCODE_TERMINATECAPTURE _htons(0x1018)
- #define PTP_OPCODE_MOVEOBJECT _htons(0x1019)
- #define PTP_OPCODE_COPYOBJECT _htons(0x101A)
- #define PTP_OPCODE_GETPARTIALOBJECT _htons(0x101B)
- #define PTP_OPCODE_INITIATEOPENCAPTURE _htons(0x101C)
- #define PTP_OPCODE_VENDOREXTENDEDBASE _htons(0x9000)
- /* ALi Special Command */
- #define ALI_OPCODE_SPECIAL_CMD _htons(0x9700)
- /* MTP extended operations */
- #define MTP_OPCODE_UNDEFINED _htons(0x9800)
- #define MTP_OPCODE_GETOBJECTPROPSUPPORTED _htons(0x9801)
- #define MTP_OPCODE_GETOBJECTPROPDESC _htons(0x9802)
- #define MTP_OPCODE_GETOBJECTPROPVALUE _htons(0x9803)
- #define MTP_OPCODE_SETOBJECTPROPVALUE _htons(0x9804)
- #define MTP_OPCODE_GETOBJECTPROPLIST _htons(0x9805)
- #define MTP_OPCODE_SETOBJECTPROPLIST _htons(0x9806)
- #define MTP_OPCODE_GETINTERDEPPROPDESC _htons(0x9807)
- #define MTP_OPCODE_SENDOBJECTPROPLIST _htons(0x9808)
- #define MTP_OPCODE_GETOBJECTREFERENCES _htons(0x9810)
- #define MTP_OPCODE_SETOBJECTREFERENCES _htons(0x9811)
- #define PTP_CODE_VENDOR_OP1 (PTP_OPCODE_VENDOREXTENDEDBASE + 1)
- #define PTP_CODE_VENDOR_MIN PTP_CODE_VENDOR_OP1
- #define PTP_CODE_VENDOR_OP2 (PTP_OPCODE_VENDOREXTENDEDBASE + 2)
- #define PTP_CODE_VENDOR_MAX PTP_CODE_VENDOR_OP2
- #define DRM_OPCODE_GETSECURETIMECHALLENGE _htons(0x9101)
- #define DRM_OPCODE_SETSECURETIMERESPONSE _htons(0x9102)
- #define DRM_OPCODE_SETLICENSERESPONSE _htons(0x9103)
- #define DRM_OPCODE_GETSYNCLIST _htons(0x9104)
- #define DRM_OPCODE_SENDMETERCHALLENGE _htons(0x9105)
- #define DRM_OPCODE_GETMETERCHALLENGE _htons(0x9106)
- #define DRM_OPCODE_SETMETERRESPONSE _htons(0x9107)
- #define DRM_OPCODE_CLEANDATASTORE _htons(0x9108)
- #define DRM_OPCODE_GETLICENSESTATE _htons(0x9109)
- #define DRM_OPCODE_SENDWMDRMPDCOMMAND _htons(0x910A)
- #define DRM_OPCODE_SENDWMDRMPDREQUEST _htons(0x910B)
- #define DRM_OPCODE_METADATAROUNDTRIP _htons(0x9201) //Chris 060719 #3
- /* Standard event codes */
- #define PTP_EVENTCODE_UNDEFINED _htons(0x4000)
- #define PTP_EVENTCODE_CANCELTRANSACTION _htons(0x4001)
- #define PTP_EVENTCODE_OBJECTADDED _htons(0x4002)
- #define PTP_EVENTCODE_OBJECTREMOVED _htons(0x4003)
- #define PTP_EVENTCODE_STOREADDED _htons(0x4004)
- #define PTP_EVENTCODE_STOREREMOVED _htons(0x4005)
- #define PTP_EVENTCODE_DEVICEPROPCHANGED _htons(0x4006)
- #define PTP_EVENTCODE_OBJECTINFOCHANGED _htons(0x4007)
- #define PTP_EVENTCODE_DEVICEINFOCHANGED _htons(0x4008)
- #define PTP_EVENTCODE_REQUESTOBJECTTRANSFER _htons(0x4009)
- #define PTP_EVENTCODE_STOREFULL _htons(0x400A)
- #define PTP_EVENTCODE_DEVICERESET _htons(0x400B)
- #define PTP_EVENTCODE_STORAGEINFOCHANGED _htons(0x400C)
- #define PTP_EVENTCODE_CAPTURECOMPLETE _htons(0x400D)
- #define PTP_EVENTCODE_UNREPORTEDSTATUS _htons(0x400E)
- #define PTP_EVENTCODE_VENDOREXTENTION1 _htons(0xC001)
- #define PTP_EVENTCODE_VENDOREXTENTION2 _htons(0xC002)
- #define PTP_FORMATCODE_UNDEFINED _htons(0x3000)
- #define PTP_FORMATCODE_ASSOCIATION _htons(0x3001)
- #define PTP_FORMATCODE_SCRIPT _htons(0x3002)
- #define PTP_FORMATCODE_EXECUTABLE _htons(0x3003)
- #define PTP_FORMATCODE_TEXT _htons(0x3004)
- #define PTP_FORMATCODE_HTML _htons(0x3005)
- #define PTP_FORMATCODE_DPOF _htons(0x3006)
- #define PTP_FORMATCODE_AIFF _htons(0x3007)
- #define PTP_FORMATCODE_WAVE _htons(0x3008)
- #define PTP_FORMATCODE_MP3 _htons(0x3009)
- #define PTP_FORMATCODE_AVI _htons(0x300A)
- #define PTP_FORMATCODE_MPEG _htons(0x300B)
- #define PTP_FORMATCODE_ASF _htons(0x300C)
- #define PTP_FORMATCODE_IMAGE_UNDEFINED _htons(0x3800)
- #define PTP_FORMATCODE_IMAGE_EXIF _htons(0x3801)
- #define PTP_FORMATCODE_IMAGE_TIFFEP _htons(0x3802)
- #define PTP_FORMATCODE_IMAGE_FLASHPIX _htons(0x3803)
- #define PTP_FORMATCODE_IMAGE_BMP _htons(0x3804)
- #define PTP_FORMATCODE_IMAGE_CIFF _htons(0x3805)
- #define PTP_FORMATCODE_IMAGE_GIF _htons(0x3807)
- #define PTP_FORMATCODE_IMAGE_JFIF _htons(0x3808)
- #define PTP_FORMATCODE_IMAGE_PCD _htons(0x3809)
- #define PTP_FORMATCODE_IMAGE_PICT _htons(0x380A)
- #define PTP_FORMATCODE_IMAGE_PNG _htons(0x380B)
- #define PTP_FORMATCODE_IMAGE_TIFF _htons(0x380D)
- #define PTP_FORMATCODE_IMAGE_TIFFIT _htons(0x380E)
- #define PTP_FORMATCODE_IMAGE_JP2 _htons(0x380F)
- #define PTP_FORMATCODE_IMAGE_JPX _htons(0x3810)
- /* MTP-defined Object Formats */
- #define MTP_FORMATCODE_UNDEFINED_FIRMWARE _htons(0xB802)
- #define MTP_FORMATCODE_WINDOWS_IMAGE_FORMAT _htons(0xB881)
- #define MTP_FORMATCODE_UNDEFINED_AUDIO _htons(0xB900)
- #define MTP_FORMATCODE_WMA _htons(0xB901)
- #define MTP_FORMATCODE_UNDEFINED_VIDEO _htons(0xB980)
- #define MTP_FORMATCODE_WMV _htons(0xB981)
- #define MTP_FORMATCODE_UNDEFINED_COLLECTION _htons(0xBA00)
- #define MTP_FORMATCODE_ABSTRACT_MULTIMEDIA_ALBUM _htons(0xBA01)
- #define MTP_FORMATCODE_ABSTRACT_IMAGE_ALBUM _htons(0xBA02)
- #define MTP_FORMATCODE_ABSTRACT_AUDIO_ALBUM _htons(0xBA03)
- #define MTP_FORMATCODE_ABSTRACT_VIDEO_ALBUM _htons(0xBA04)
- #define MTP_FORMATCODE_ABSTRACT_AV_PLAYLIST _htons(0xBA05)
- #define MTP_FORMATCODE_ABSTRACT_CONTACT_GROUP _htons(0xBA06)
- #define MTP_FORMATCODE_ABSTRACT_MESSAGE_FOLDER _htons(0xBA07)
- #define MTP_FORMATCODE_ABSTRACT_CHAPTERED_PRODUCTION _htons(0xBA08)
- #define MTP_FORMATCODE_WPL_PLAYLIST _htons(0xBA10)
- #define MTP_FORMATCODE_M3U_PLAYLIST _htons(0xBA11)
- #define MTP_FORMATCODE_MPL_PLAYLIST _htons(0xBA12)
- #define MTP_FORMATCODE_ASX_PLAYLIST _htons(0xBA13)
- #define MTP_FORMATCODE_PLS_PLAYLIST _htons(0xBA14)
- #define MTP_FORMATCODE_UNDEFINED_DOCUMENT _htons(0xBA80)
- #define MTP_FORMATCODE_ABSTRACT_DOCUMENT _htons(0xBA81)
- #define MTP_FORMATCODE_UNDEFINED_MESSAGE _htons(0xBB00)
- #define MTP_FORMATCODE_ABSTRACT_MESSAGE _htons(0xBB01)
- #define MTP_FORMATCODE_UNDEFINED_CONTACT _htons(0xBB80)
- #define MTP_FORMATCODE_ABSTRACT_CONTACT _htons(0xBB81)
- #define MTP_FORMATCODE_VCARD2 _htons(0xBB82)
- #define MTP_FORMATCODE_VCARD3 _htons(0xBB83)
- #define MTP_FORMATCODE_UNDEFINED_CALENDAR_ITEM _htons(0xBE00)
- #define MTP_FORMATCODE_ABSTRACT_CALENDAR_ITEM _htons(0xBE01)
- #define MTP_FORMATCODE_VCALENDAR1 _htons(0xBE02)
- #define MTP_FORMATCODE_UNDEFINED_WINDOWS_EXECUTABLE _htons(0xBE80)
- /* Standard property codes */
- #define PTP_PROPERTYCODE_UNDEFINED _htons(0x5000)
- #define PTP_PROPERTYCODE_BATTERYLEVEL _htons(0x5001)
- #define PTP_PROPERTYCODE_FUNCTIONMODE _htons(0x5002)
- #define PTP_PROPERTYCODE_IMAGESIZE _htons(0x5003)
- #define PTP_PROPERTYCODE_COMPRESSIONSETTING _htons(0x5004)
- #define PTP_PROPERTYCODE_WHITEBALANCE _htons(0x5005)
- #define PTP_PROPERTYCODE_RGBGAIN _htons(0x5006)
- #define PTP_PROPERTYCODE_FNUMBER _htons(0x5007)
- #define PTP_PROPERTYCODE_FOCALLENGTH _htons(0x5008)
- #define PTP_PROPERTYCODE_FOCUSDISTANCE _htons(0x5009)
- #define PTP_PROPERTYCODE_FOCUSMODE _htons(0x500A)
- #define PTP_PROPERTYCODE_EXPOSUREMETERINGMODE _htons(0x500B)
- #define PTP_PROPERTYCODE_FLASHMODE _htons(0x500C)
- #define PTP_PROPERTYCODE_EXPOSURETIME _htons(0x500D)
- #define PTP_PROPERTYCODE_EXPOSUREPROGRAMMODE _htons(0x500E)
- #define PTP_PROPERTYCODE_EXPOSUREINDEX _htons(0x500F)
- #define PTP_PROPERTYCODE_EXPOSURECOMPENSATION _htons(0x5010)
- #define PTP_PROPERTYCODE_DATETIME _htons(0x5011)
- #define PTP_PROPERTYCODE_CAPTUREDELAY _htons(0x5012)
- #define PTP_PROPERTYCODE_STILLCAPTUREMODE _htons(0x5013)
- #define PTP_PROPERTYCODE_CONTRAST _htons(0x5014)
- #define PTP_PROPERTYCODE_SHARPNESS _htons(0x5015)
- #define PTP_PROPERTYCODE_DIGITALZOOM _htons(0x5016)
- #define PTP_PROPERTYCODE_EFFECTMODE _htons(0x5017)
- #define PTP_PROPERTYCODE_BURSTNUMBER _htons(0x5018)
- #define PTP_PROPERTYCODE_BURSTINTERVAL _htons(0x5019)
- #define PTP_PROPERTYCODE_TIMELAPSENUMBER _htons(0x501A)
- #define PTP_PROPERTYCODE_TIMELAPSEINTERVAL _htons(0x501B)
- #define PTP_PROPERTYCODE_FOCUSMETERINGMODE _htons(0x501C)
- #define PTP_PROPERTYCODE_UPLOADURL _htons(0x501D)
- #define PTP_PROPERTYCODE_ARTIST _htons(0x501E)
- #define PTP_PROPERTYCODE_COPYRIGHT _htons(0x501F)
- #define PTP_PROPERTYCODE_VENDOREXTENTION1 _htons(0xD001)
- #define PTP_PROPERTYCODE_VENDOREXTENTION2 _htons(0xD002)
- /* MTP defined Device properties */
- #define MTP_PROPERTYCODE_UNDEFINED _htons(0xD400)
- #define MTP_PROPERTYCODE_SYNCHRONIZATIONPARTNER _htons(0xD401)
- #define MTP_PROPERTYCODE_DEVICEFRIENDLYNAME _htons(0xD402)
- /* Device properties for Janus MTP extension */
- #define MTP_PROPERTYCODE_SECURETIME _htons(0xD101)
- #define MTP_PROPERTYCODE_DEVICECERTIFICATE _htons(0xD102)
- //
- // MTP extended object property codes:
- //
- #define MTP_OBJ_PROPERTYCODE_STORAGEID _htons(0xDC01)
- #define MTP_OBJ_PROPERTYCODE_OBJECTFORMAT _htons(0xDC02)
- #define MTP_OBJ_PROPERTYCODE_PROTECTIONSTATUS _htons(0xDC03)
- #define MTP_OBJ_PROPERTYCODE_OBJECTSIZE _htons(0xDC04)
- #define MTP_OBJ_PROPERTYCODE_ASSOCIATIONTYPE _htons(0xDC05)
- #define MTP_OBJ_PROPERTYCODE_ASSOCIATIONDESC _htons(0xDC06)
- #define MTP_OBJ_PROPERTYCODE_OBJECTFILENAME _htons(0xDC07)
- #define MTP_OBJ_PROPERTYCODE_DATECREATED _htons(0xDC08)
- #define MTP_OBJ_PROPERTYCODE_DATEMODIFIED _htons(0xDC09)
- #define MTP_OBJ_PROPERTYCODE_KEYWORDS _htons(0xDC0A)
- #define MTP_OBJ_PROPERTYCODE_PARENT _htons(0xDC0B)
- #define MTP_OBJ_PROPERTYCODE_PERSISTENTGUID _htons(0xDC41)
- #define MTP_OBJ_PROPERTYCODE_SYNCID _htons(0xDC42)
- #define MTP_OBJ_PROPERTYCODE_PROPERTYBAG _htons(0xDC43)
- #define MTP_OBJ_PROPERTYCODE_NAME _htons(0xDC44)
- #define MTP_OBJ_PROPERTYCODE_CREATEDBY _htons(0xDC45)
- #define MTP_OBJ_PROPERTYCODE_ARTIST _htons(0xDC46)
- #define MTP_OBJ_PROPERTYCODE_DATEAUTHORED _htons(0xDC47)
- #define MTP_OBJ_PROPERTYCODE_DESCRIPTION _htons(0xDC48)
- #define MTP_OBJ_PROPERTYCODE_URLREFERENCE _htons(0xDC49)
- #define MTP_OBJ_PROPERTYCODE_LANGUAGELOCALE _htons(0xDC4A)
- #define MTP_OBJ_PROPERTYCODE_COPYRIGHTINFO _htons(0xDC4B)
- #define MTP_OBJ_PROPERTYCODE_SOURCE _htons(0xDC4C)
- #define MTP_OBJ_PROPERTYCODE_ORIGINLOCATION _htons(0xDC4D)
- #define MTP_OBJ_PROPERTYCODE_DATEADDED _htons(0xDC4E)
- #define MTP_OBJ_PROPERTYCODE_NONCONSUMABLE _htons(0xDC4F)
- #define MTP_OBJ_PROPERTYCODE_CORRUPTUNPLAYABLE _htons(0xDC50)
- #define MTP_OBJ_PROPERTYCODE_SAMPLEFORMAT _htons(0xDC81)
- #define MTP_OBJ_PROPERTYCODE_SAMPLESIZE _htons(0xDC82)
- #define MTP_OBJ_PROPERTYCODE_SAMPLEHEIGHT _htons(0xDC83)
- #define MTP_OBJ_PROPERTYCODE_SAMPLEWIDTH _htons(0xDC84)
- #define MTP_OBJ_PROPERTYCODE_SAMPLEDURATION _htons(0xDC85)
- #define MTP_OBJ_PROPERTYCODE_SAMPLEDATA _htons(0xDC86)
- #define MTP_OBJ_PROPERTYCODE_WIDTH _htons(0xDC87)
- #define MTP_OBJ_PROPERTYCODE_HEIGHT _htons(0xDC88)
- #define MTP_OBJ_PROPERTYCODE_DURATION _htons(0xDC89)
- #define MTP_OBJ_PROPERTYCODE_USERRATING _htons(0xDC8A)
- #define MTP_OBJ_PROPERTYCODE_TRACK _htons(0xDC8B)
- #define MTP_OBJ_PROPERTYCODE_GENRE _htons(0xDC8C)
- #define MTP_OBJ_PROPERTYCODE_CREDITS _htons(0xDC8D)
- #define MTP_OBJ_PROPERTYCODE_LYRICS _htons(0xDC8E)
- #define MTP_OBJ_PROPERTYCODE_SUBSCRIPCONTENTID _htons(0xDC8F)
- #define MTP_OBJ_PROPERTYCODE_PRODUCEDBY _htons(0xDC90)
- #define MTP_OBJ_PROPERTYCODE_USECOUNT _htons(0xDC91)
- #define MTP_OBJ_PROPERTYCODE_SKIPCOUNT _htons(0xDC92)
- #define MTP_OBJ_PROPERTYCODE_LASTACCESSED _htons(0xDC93)
- #define MTP_OBJ_PROPERTYCODE_PARENTALRATING _htons(0xDC94)
- #define MTP_OBJ_PROPERTYCODE_METAGENRE _htons(0xDC95)
- #define MTP_OBJ_PROPERTYCODE_COMPOSER _htons(0xDC96)
- #define MTP_OBJ_PROPERTYCODE_EFFECTIVERATING _htons(0xDC97)
- #define MTP_OBJ_PROPERTYCODE_SUBTITLE _htons(0xDC98)
- #define MTP_OBJ_PROPERTYCODE_ORIGINALRELEASEDATE _htons(0xDC99)
- #define MTP_OBJ_PROPERTYCODE_ALBUMNAME _htons(0xDC9A)
- #define MTP_OBJ_PROPERTYCODE_ALBUMARTIST _htons(0xDC9B)
- #define MTP_OBJ_PROPERTYCODE_MOOD _htons(0xDC9C)
- #define MTP_OBJ_PROPERTYCODE_DRMSTATUS _htons(0xDC9D)
- #define MTP_OBJ_PROPERTYCODE_SUBDESCRIPTION _htons(0xDC9E)
- #define MTP_OBJ_PROPERTYCODE_ISCROPPED _htons(0xDCD1)
- #define MTP_OBJ_PROPERTYCODE_ISCOLORCORRECTED _htons(0xDCD2)
- #define MTP_OBJ_PROPERTYCODE_TOTALBITRATE _htons(0xDE91)
- #define MTP_OBJ_PROPERTYCODE_BITRATETYPE _htons(0xDE92)
- #define MTP_OBJ_PROPERTYCODE_SAMPLERATE _htons(0xDE93)
- #define MTP_OBJ_PROPERTYCODE_NUMBEROFCHANNELS _htons(0xDE94)
- #define MTP_OBJ_PROPERTYCODE_AUDIOBITDEPTH _htons(0xDE95)
- #define MTP_OBJ_PROPERTYCODE_SCANTYPE _htons(0xDE97)
- #define MTP_OBJ_PROPERTYCODE_AUDIOWAVECODEC _htons(0xDE99)
- #define MTP_OBJ_PROPERTYCODE_AUDIOBITRATE _htons(0xDE9A)
- #define MTP_OBJ_PROPERTYCODE_VIDEOFOURCCCODEC _htons(0xDE9B)
- #define MTP_OBJ_PROPERTYCODE_VIDEOBITRATE _htons(0xDE9C)
- #define MTP_OBJ_PROPERTYCODE_FRAMESPER1KSECONDS _htons(0xDE9D)
- #define MTP_OBJ_PROPERTYCODE_KEYFRAMEDISTANCE _htons(0xDE9E)
- #define MTP_OBJ_PROPERTYCODE_BUFFERSIZE _htons(0xDE9F)
- #define MTP_OBJ_PROPERTYCODE_ENCODINGQUALITY _htons(0xDEA0)
- #define DRM_OBJ_PROPERTYCODE_PURCHASEALBUM _htons(0xD901)
- /* PTP Data type codes. */
- #define PTP_DATATYPE_UNDEFINED _htons(0x0000)
- #define PTP_DATATYPE_INT8 _htons(0x0001)
- #define PTP_DATATYPE_UINT8 _htons(0x0002)
- #define PTP_DATATYPE_INT16 _htons(0x0003)
- #define PTP_DATATYPE_UINT16 _htons(0x0004)
- #define PTP_DATATYPE_INT32 _htons(0x0005)
- #define PTP_DATATYPE_UINT32 _htons(0x0006)
- #define PTP_DATATYPE_INT64 _htons(0x0007)
- #define PTP_DATATYPE_UINT64 _htons(0x0008)
- #define PTP_DATATYPE_INT128 _htons(0x0009)
- #define PTP_DATATYPE_UINT128 _htons(0x000A)
- #define PTP_DATATYPE_AINT8 _htons(0x4001)
- #define PTP_DATATYPE_AUINT8 _htons(0x4002)
- #define PTP_DATATYPE_AINT16 _htons(0x4003)
- #define PTP_DATATYPE_AUINT16 _htons(0x4004)
- #define PTP_DATATYPE_AINT32 _htons(0x4005)
- #define PTP_DATATYPE_AUINT32 _htons(0x4006)
- #define PTP_DATATYPE_AINT64 _htons(0x4007)
- #define PTP_DATATYPE_AUINT64 _htons(0x4008)
- #define PTP_DATATYPE_AINT128 _htons(0x4009)
- #define PTP_DATATYPE_AUINT128 _htons(0x400A)
- #define PTP_DATATYPE_STRING _htons(0xFFFF)
- #define PTP_DATATYPE_ARRAYMASK _htons(0x4FF0)
- #define PTP_DATATYPE_ARRAY _htons(0x4000)
- #define PTP_DATATYPE_VALUEMASK _htons(0xFFF0)
- #define PTP_DATATYPE_VALUE _htons(0x0000)
- #define PTP_PROPGETSET_GETONLY 0x00
- #define PTP_PROPGETSET_GETSET 0x01
- typedef enum PropFormFlag
- {
- NoneForm = 0x00, //Allen060419#1
- RangeForm = 0x01,
- EnumForm = 0x02,
- DateTimeForm = 0x03,
- ItemListForm = 0x04,
- RegularExpressionForm = 0x05,
- ByteArray = 0x06,
- LongStringForm = 0xFF
- } ePropFormFlag;
- #define GroupCodeNone _htonl(0x00000000)
- #define GroupCodeSyncProps _htonl(0x00000001)
- #define GroupCodeUIProps _htonl(0x00000002)
- #define GroupCodeObjInfo _htonl(0x00000004)
- #define GroupCodeOftenUsed _htonl(0x00000008)
- #define GroupCodeSupplemental _htonl(0x00000100)
- #define GroupCodeUnknownProp _htonl(0x00010000)
- #define GroupCodeSlow _htonl(0x00FF0000)
- #define GroupCodeAll _htonl(0xFFFFFFFF)
- #define MTP_RC_OK _htons(0x2001)
- #define MTP_RC_Operation_Not_Supported _htons(0x2005)
- #define PTP_RCODE_NULL _htons(0x0000)
- #define PTP_RCODE_WAITDATA _htons(0x0001)
- #define PTP_RCODE_UNDEFINED _htons(0x2000)
- #define PTP_RCODE_OK _htons(0x2001)
- #define PTP_RCODE_GENERALERROR _htons(0x2002)
- #define PTP_RCODE_SESSIONNOTOPEN _htons(0x2003)
- #define PTP_RCODE_INVALIDTRANSACTIONID _htons(0x2004)
- #define PTP_RCODE_OPERATIONNOTSUPPORTED _htons(0x2005)
- #define PTP_RCODE_PARAMETERNOTSUPPORTED _htons(0x2006)
- #define PTP_RCODE_INCOMPLETETRANSFER _htons(0x2007)
- #define PTP_RCODE_INVALIDSTORAGEID _htons(0x2008)
- #define PTP_RCODE_INVALIDOBJECTHANDLE _htons(0x2009)
- #define PTP_RCODE_PROPERTYNOTSUPPORTED _htons(0x200A)
- #define PTP_RCODE_INVALIDOBJECTFORMATCODE _htons(0x200B)
- #define PTP_RCODE_STOREFULL _htons(0x200C)
- #define PTP_RCODE_OBJECTWRITEPROTECTED _htons(0x200D)
- #define PTP_RCODE_STOREWRITEPROTECTED _htons(0x200E)
- #define PTP_RCODE_ACCESSDENIED _htons(0x200F)
- #define PTP_RCODE_NOTHUMBNAILPRESENT _htons(0x2010)
- #define PTP_RCODE_SELFTESTFAILED _htons(0x2011)
- #define PTP_RCODE_PARTIALDELETION _htons(0x2012)
- #define PTP_RCODE_STORENOTAVAILABLE _htons(0x2013)
- #define PTP_RCODE_NOSPECIFICATIONBYFORMAT _htons(0x2014)
- #define PTP_RCODE_NOVALIDOBJECTINFO _htons(0x2015)
- #define PTP_RCODE_INVALIDCODEFORMAT _htons(0x2016)
- #define PTP_RCODE_UNKNOWNVENDORCODE _htons(0x2017)
- #define PTP_RCODE_CAPTUREALREADYTERMINATED _htons(0x2018)
- #define PTP_RCODE_DEVICEBUSY _htons(0x2019)
- #define PTP_RCODE_INVALIDPARENT _htons(0x201A)
- #define PTP_RCODE_INVALIDPROPFORMAT _htons(0x201B)
- #define PTP_RCODE_INVALIDPROPVALUE _htons(0x201C)
- #define PTP_RCODE_INVALIDPARAMETER _htons(0x201D)
- #define PTP_RCODE_SESSIONALREADYOPENED _htons(0x201E)
- #define PTP_RCODE_TRANSACTIONCANCELLED _htons(0x201F)
- #define MTP_RCODE_OBJECTTOOLARGE _htons(0xA809) //050510
- #define MTP_RCODE_WMDRMPD_FAIL _htons(0xA101) //050824
- #define MAX_MTP_PARAMS 5
- //050827: DRM_LICENSE_STATE_CATEGORY
- #define WM_DRM_LICENSE_STATE_NORIGHT _htonl(0)
- #define WM_DRM_LICENSE_STATE_UNLIM _htonl(1)
- #define WM_DRM_LICENSE_STATE_COUNT _htonl(2)
- #define WM_DRM_LICENSE_STATE_FROM _htonl(3)
- #define WM_DRM_LICENSE_STATE_UNTIL _htonl(4)
- #define WM_DRM_LICENSE_STATE_FROM_UNTIL _htonl(5)
- #define WM_DRM_LICENSE_STATE_COUNT_FROM _htonl(6)
- #define WM_DRM_LICENSE_STATE_COUNT_UNTIL _htonl(7)
- #define WM_DRM_LICENSE_STATE_COUNT_FROM_UNTIL _htonl(8)
- #define WM_DRM_LICENSE_STATE_EXPIRATION_AFTER_FIRSTUSE _htonl(9)
- #define WM_DRM_LICENSE_STATE_FORCE_SYNC _htonl(10)
- //MTPObjectProp.h start
- ///////////////////////////Object Information Dataset Order////////////////////////
- #define ORDER_INFO_STORAGE_ID 0
- #define ORDER_INFO_OBJECT_FORMAT 4
- #define ORDER_INFO_PROTECTION_STATUS 6
- #define ORDER_INFO_OBJECT_COMPRESSED_SIZE 8
- #define ORDER_INFO_THUMB_FORMAT 12
- #define ORDER_INFO_THUMB_COMPRESSED_SIZE 14
- #define ORDER_INFO_THUMB_PIX_WIDTH 18
- #define ORDER_INFO_THUMB_PIX_HEIGHT 22
- #define ORDER_INFO_IMAGE_PIX_WIDTH 26
- #define ORDER_INFO_IMAGE_PIX_HEIGHT 30
- #define ORDER_INFO_IMAGE_BIT_DEPTH 34
- #define ORDER_INFO_PARENT_OBJECT 38
- #define ORDER_INFO_ASSOCIATION_TYPE 42
- #define ORDER_INFO_ASSOCIATION_DESC 44
- #define ORDER_INFO_SEQUENCE_NUMBER 48
- #define ORDER_INFO_FILENAME 52
- #define ORDER_INFO_DATE_CREATED 16
- #define ORDER_INFO_DATE_MODIFIED 17
- #define ORDER_INFO_KEYWORDS 18
- ///////////////////////////Object Property Dataset Order(Custom)///////////////////
- #define ORDER_PROP_STORAGE_ID 0
- #define ORDER_PROP_OBJECT_FORMAT 1
- #define ORDER_PROP_PROTECTION_STATUS 2
- #define ORDER_PROP_OBJECT_SIZE 3
- #define ORDER_PROP_ASSOCIATION_TYPE 4
- #define ORDER_PROP_ASSOCIATION_DESC 5
- #define ORDER_PROP_OBJECT_FILENAME 6
- #define ORDER_PROP_DATE_CREATED 7
- #define ORDER_PROP_DATE_MODIFIED 8
- ///////////////////////////////////////////////////////////////////////////////////
- #define LENGTH_OBJECT_HANDLES 4
- #define LENGTH_PROPERTY_CODE 2
- #define PROP_SUCCESS 0x00
- #define PROP_FAILED 0x01
- #define PROP_NOT_END 0x03
- #define PROP_OPEN_FILE_ERROR 0x04
- #define PROP_HANDLE_NOT_FOUND 0x05
- #define PROP_PROPERTY_NOT_SUPPORTED 0x06
- #define PROP_NO_SPACE 0x07
- #define PROP_BUFF_OVERFLOW 0x08
- #define PROP_FILE_CONTINUOUS 0x09 //Allen060713
- // gxbMtpState
- #define MTP_SESSIONOPEN 0x80
- #define MTP_WAIT_DATAOUT 0x40
- #define MTP_CLASS_ERROR 0x04 //allen050610#0: switch to MSC
- #define MTP_PHASE_ERROR 0x02
- #define MTP_PIO_OVF 0x01
- #define HEADER_ONLY 0x0000 //For SendMtpDataBlock allen 050418
- #define PROP_NAME_MAX_LEN 255 //127 Unicode word = 254 bytes change by chris from 127->255 for longfilename
- #define PROP_NAME_MAX_LEN1 63 //127 Unicode word = 254 bytes
- //MTPObjectProp.h end
- #define BYTE_ADDR(m) ((uint8_t *)(&m))
- #if MTP_SUPPORT_METERING
- #ifdef MTP_DEBUG_METERING
- // Chris Test 060605 wOffset+wLen <= 512
- #define DEBUG_WRITE_PRIV(bSec,wOffset, wLen,xData,i)
- {
- NandPrivateEn();
- FsRead(bSec,1,FS_DATA_0_0);
- for(i=0;i<wLen;i++)
- gxbFsData[wOffset+gxwOffsetDataSec+i]=xData[i];
- FsWrite(bSec,1,FS_DATA_0_0);
- NandPrivateDis();
- }
- #endif
- #endif
- void MtpSendMSOSExtConfDesc(uint8_t) large;
- void MtpSendExtPropDesc(uint8_t) large;
- void UsbDmaReadWrite(bit, uint16_t, uint16_t) large;
- bit UsbPioRead(PBYTE, WORD) large; //050421c
- void UsbPioWrite(PBYTE, WORD) large;
- void DMAWriteSingleByte(bit , XWORD, XWORD) large; //Chris Add 060511
- //modify by tne 2005/04/14
- //#define UsbDmaRead(offset, size) UsbDmaReadWrite(USB_DMA_READ, (WORD)(gUsbDataBuf + offset), size) 050526 del
- //#define UsbDmaWrite(offset, size) UsbDmaReadWrite(USB_DMA_WRITE, (WORD)(gUsbDataBuf + offset), size) 050526 del
- //#define UsbDmaRead(offset, size) UsbDmaReadWrite(1, offset, size)
- //#define UsbDmaWrite(offset, size) UsbDmaReadWrite(0, offset, size)
- /*
- #else
- //#define UsbPioRead(offset, size, check) UsbPioRead(offset, size, check)
- //#define UsbPioWrite(offset, size) UsbPioWrite(offset, size)
- #ifdef __cplusplus
- }
- #endif
- #endif*/
- typedef struct{
- DWORD dwObjectHandle;
- WORD wPropCode;
- WORD wDatatype;
- }MTP_OBJECT_PROP_LIST; //050504
- typedef struct{
- DWORD Length; //reverse
- WORD Type;
- WORD Code;
- DWORD TransactionID;
- }MTP_CONTAINER_HEADER;
- typedef struct{
- XBYTE* xbpBuf;
- WORD wBufferSize;
- }MTP_CONTAINER_DATA;
- typedef struct{
- MTP_CONTAINER_HEADER Header;
- union
- {
- DWORD dw[MAX_MTP_PARAMS];
- WORD w[MAX_MTP_PARAMS * 2];
- BYTE b[MAX_MTP_PARAMS * 4];
- } Operation;
- union
- {
- DWORD dw[MAX_MTP_PARAMS];
- WORD w[MAX_MTP_PARAMS * 2];
- BYTE b[MAX_MTP_PARAMS * 4];
- } Response;
- MTP_CONTAINER_DATA Data;
- WORD wResponseLen;
- WORD wRemainLen;
- }MTP_CONTAINER; //60B
- #define PROPERTY_NUM 25/*24*/ //050507 //060503 Chris modify +2 //060728 #4 Chris
- typedef struct{
- DWORD StorageID; //0
- WORD ObjectFormat;
- WORD ProtectionStatus;
- DWORD ObjectCompressedSize;
- WORD ThumbFormat;
- DWORD ThumbCompressedSize;
- DWORD ThumbPixWidth;
- DWORD ThumbPixHeight;
- DWORD ImagePixWidth;
- DWORD ImagePixHeight;
- DWORD ImageBitDepth;
- DWORD ParentObject;
- WORD AssociationType;
- DWORD AssociationDesc;
- DWORD SequenceNumber;
- }MTP_OBJECT_INFO_DATASET;
- //Chris for Metering 060816 #1
- typedef struct {
- BYTE bEnMID[24];
- BYTE bEnTID[24];
- BYTE bEnPublickey[56];
- //WORD wRecordsLen; //Chris remove 061024 #16
- BYTE bURLLen;
- BYTE bURL[255];
- }MTP_METERING_DATA;
- //050530
- /* //Walace060630#1 start
- #define STORAGE_NOT_AVAILABLE 0x00
- #define STORAGE_FSINIT_DONE 0x01
- #define STORAGE_DBINIT_DONE 0x02
- #define STORAGE_AVAILABLE 0x03
- */
- #define STORAGE_NOT_EXIST 0x00
- #define STORAGE_EXIST 0x01
- #define STORAGE_FSINIT_DONE 0x02
- #define STORAGE_DBINIT_DONE 0x04
- #define STORAGE_EXIST_FS_DONE (STORAGE_EXIST|STORAGE_FSINIT_DONE)
- #define STORAGE_READY (STORAGE_EXIST|STORAGE_FSINIT_DONE|STORAGE_DBINIT_DONE)
- //Walace060630#1 end
- #ifdef _MTP_H_
- #define EXTERN
- #define _AT_(addr) _at_ addr
- #else
- #define EXTERN extern
- #define _AT_(addr)
- #endif
- #define gpMtpContainer ((MTP_CONTAINER*)gUsbDataBuf)
- EXTERN void SendMtpDataBlock(PBYTE pBuf, DWORD dwLen) large;
- EXTERN void SendMtpResponseBlock(WORD wCode, WORD wLen) large;
- EXTERN void MtpProcess(void) large;
- EXTERN API void MtpDeviceInit(); //050425
- EXTERN void API CardDetect(BOOL fSendEvent); //050530 //Chris 061222#1 //Chris070521#1
- EXTERN void MTPLicScan(void) large; //Chris 060918 #1 for MaxLic scan
- //Allen060419#1 start
- #if 0 //Walace070205#1
- #define MTP_CLK_INIT 0
- #define MTP_CLK_FAST 1
- #define MTP_CLK_NORAML 2
- #endif
- //Chris 060807 #2 for GetPropList
- #define GetObjNumbers 0
- #define GetObjHandles 1
- #define GetObjPropList 2
- #define GetObjInfo 3
- #define GET_DATA 0
- #define GET_LEN 1
- #define BYPASS_DATA 2
- #define SEND_METER_CHALLENGE 0
- #define SET_METER_RESPONSE 1
- #if 0 //Walace070205#1
- EXTERN API void MtpSetSysSpeed(BYTE bClk) large; //060127
- #endif
- EXTERN void SendEvent(DWORD dwLen, WORD wCode, DWORD dwParameter);// large; //Chris 061222#1 //Chris070521#1
- #if(_MTP_SPECIAL_CMD_) //Allen060118
- EXTERN API bit CheckValidObjectHandle0(DWORD dwObjectHandle, BYTE bStatusMask) large;
- EXTERN API bit ChangeStorage(BYTE bStorLun) large;
- #endif
- //Allen060419#1 end
- //add by tne 2005/04/21
- //set here 1 to watch gipoa to know if transfor data
- //It's a debug option, please set 0 normally
- #if 0 //Chris change from #if(0) ->#if 0 for Source Insight view
- #define MTP_TRANS_LIGHT_START() obGPIOADIR |= 0x01;
- #define DISP_MTP_TRANS_LIGHT() obGPIOADAT ^= 0x01;
- #define MTP_TRANS_LIGHT_END() obGPIOADAT = 0x00;
- obGPIOADIR &= 0xEF;
- #else
- #define MTP_TRANS_LIGHT_START()
- #define DISP_MTP_TRANS_LIGHT()
- #define MTP_TRANS_LIGHT_END()
- #endif
- //////////////////////////////////////////////////////////////////////
- //050423a allen
- #define NULL 0
- //050424b allen
- #undef EXTERN
- #undef _AT_