⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mtp_types.h

📁 本程序为ST公司开发的源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
/* =============================================================================
 *
 *  @copyright   (C) COPYRIGHT MICROSOFT CORPORATION, 2004
 * 
 * =============================================================================
 */
/** @file
 *  @brief MTP types and constants
 *   
 *  Contains:
 *      - types built from the base types defined in platform_specific.h
 *      - constants for all MTP properties, operations, and events
 */

#ifndef MTP_TYPES_H
#define MTP_TYPES_H

//#include "platform_specific.h"

#if 0

#define MAX_ARRAY_ALLOC_SIZE        (0xFFFFFFFF)   /**< @brief Most bytes to allocate for a single array */
#define MAXSTRINGSIZE           (255)          /**< @brief per mtp spec: most characters a string can have */

#define OBJECTHANDLE_ALL        (0xFFFFFFFF)   /**< @brief per mtp spec: special value to indicate all object handles */
#define OBJECTHANDLE_UNDEFINED  (0x0)          /**< @brief per mtp spec: special value to indicate an undefined object handle */
#define OBJECTHANDLE_ROOT       (0xFFFFFFFF)   /**< @brief per mtp spec: special value to indicate root object handle */

#define STORAGEID_ALL           (0xFFFFFFFF)   /**< @brief per mtp spec: special value to indicate all storage ids */
#define STORAGEID_DEFAULT       (0)            /**< @brief per mtp spec: special value to indicate default storage id */
#define STORAGEID_UNDEFINED     (0)            /**< @brief per mtp spec: special value to indicate an undefined storage id */
#define STORAGEID_PHYSICAL      (0xFFFF0000)   /**< @brief per mtp spec: physical portion of storage id */
#define STORAGEID_LOGICAL       (0x0000FFFF)   /**< @brief per mtp spec: logical portion of storage id */

#define SESSIONID_ALL           (0)            /**< @brief per mtp spec: special value to indicate all session ids */
#define SESSIONID_NOSESSION     (0)            /**< @brief per mtp spec: special value to indicate no session id */

#define TRANSACTIONID_ALL       (0xFFFFFFFF)   /**< @brief per mtp spec: special value to indicate all transaction ids */ 
#define TRANSACTIONID_NOSESSION (0)            /**< @brief per mtp spec: special value to indicate no nession */
#define TRANSACTIONID_MIN       (1)            /**< @brief per mtp spec: minimum transaction id */
#define TRANSACTIONID_MAX       (0xFFFFFFFE)   /**< @brief per mtp spec: maximum transaction id, will wrap to min after this */

#define DATASIZE_UNKNOWN        (0xFFFFFFFF)  

#define COMMAND_NUMPARAMS_MAX   (5)            /**< @brief per mtp spec: max parameters a command can have */
#define RESPONSE_NUMPARAMS_MAX  (5)            /**< @brief per mtp spec: max parameters a response can have */
#define EVENT_NUMPARAMS_MAX     (3)            /**< @brief per mtp spec: max parameters an event can have */

#define FORMATMASK_IMAGE        (0x0800)        
#define DATATYPE_ARRAYMASK      (0x4000)     

#define ERROR_MTP_SPECIFIC (0x80004005) /**< TODO: move this mtp_results.h */
#endif

/** @brief Values for CMDCODE datatype
 *
 */
#if 0   //no need to define so far
enum _CMDCODE
{       
    CMDCODE_OPEN                      = 0x0001,
    CMDCODE_CLOSE                     = 0x0002,
    CMDCODE_HELP                      = 0x0003,
    CMDCODE_ECHO                      = 0x0004,
    CMDCODE_QUIT                      = 0x0005,
    CMDCODE_DEBUG                     = 0x0006,
    
    CMDCODE_UNDEFINED                 = 0x1000,
    CMDCODE_GETDEVICEINFO             = 0x1001,
    CMDCODE_OPENSESSION               = 0x1002,
    CMDCODE_CLOSESESSION              = 0x1003,
    CMDCODE_GETSTORAGEIDS             = 0x1004,
    CMDCODE_GETSTORAGEINFO            = 0x1005,
    CMDCODE_GETNUMOBJECTS             = 0x1006,
    CMDCODE_GETOBJECTHANDLES          = 0x1007,
    CMDCODE_GETOBJECTINFO             = 0x1008,
    CMDCODE_GETOBJECT                 = 0x1009,
    CMDCODE_GETTHUMB                  = 0x100a,
    CMDCODE_DELETEOBJECT              = 0x100b,
    CMDCODE_SENDOBJECTINFO            = 0x100c,
    CMDCODE_SENDOBJECT                = 0x100d,
    CMDCODE_INITIATECAPTURE           = 0x100e,
    CMDCODE_FORMATSTORE               = 0x100f,
    CMDCODE_RESETDEVICE               = 0x1010,
    CMDCODE_SELFTEST                  = 0x1011,
    CMDCODE_SETOBJECTPROTECTION       = 0x1012,
    CMDCODE_POWERDOWN                 = 0x1013,
    CMDCODE_GETDEVICEPROPDESC         = 0x1014,
    CMDCODE_GETDEVICEPROPVALUE        = 0x1015,
    CMDCODE_SETDEVICEPROPVALUE        = 0x1016,
    CMDCODE_RESETDEVICEPROPVALUE      = 0x1017,
    CMDCODE_TERMINATEOPENCAPTURE      = 0x1018,
    CMDCODE_MOVEOBJECT                = 0x1019,
    CMDCODE_COPYOBJECT                = 0x101a,
    CMDCODE_GETPARTIALOBJECT          = 0x101b,
    CMDCODE_INITIATEOPENCAPTURE       = 0x101c,
#if 1 // FHA added.
    /* MTP Extentions : Advanced Audio/Video Transfer (AAVT) Extention for MTP */
    CMDCODE_OPENMEDIASESSION         = 0x9170,
    CMDCODE_CLOSEMEDIASESSION        = 0x9171,
    CMDCODE_GETNEXTDATABLOCK         = 0x9172,
    CMDCODE_SETCURRENTTIMEPOSITION   = 0x9173,
    /* MTP Extentions : Windows Media DRM for Network Devices MTP Extention */
    CMDCODE_SENDREGISTRATIONREQUST   = 0x9180,
    CMDCODE_GETREGISTRATIONRESPONSE  = 0x9181,
    CMDCODE_GETPROXIMITYCHALLENGE    = 0x9182,
    CMDCODE_SENDPROXIMITYRESPONSE    = 0x9183,
    CMDCODE_SENDWMDRMNDLICENSEREQUEST = 0x9184,
    CMDCODE_GETWMDRMNDLICENSERESPONSE = 0x9185,
#endif
    CMDCODE_GETOBJECTPROPSSUPPORTED   = 0x9801,
    CMDCODE_GETOBJECTPROPDESC         = 0x9802,
    CMDCODE_GETOBJECTPROPVALUE        = 0x9803,
    CMDCODE_SETOBJECTPROPVALUE        = 0x9804,
    CMDCODE_GETOBJECTPROPLIST         = 0x9805,
    CMDCODE_SETOBJECTPROPLIST         = 0x9806,
    CMDCODE_GETINTERDEPENDENTPROPDESC = 0x9807,
    CMDCODE_SENDOBJECTPROPLIST        = 0x9808,
    CMDCODE_GETOBJECTREFERENCES       = 0x9810,
    CMDCODE_SETOBJECTREFERENCES       = 0x9811,
    CMDCODE_UPDATEDEVICEFIRMWARE      = 0x9812,
    CMDCODE_RESETOBJECTPROPVALUE      = 0x9813,
    CMDCODE_RESERVED_FIRST            = 0x1026,
    CMDCODE_RESERVED_LAST             = 0x1fff,
    CMDCODE_VENDOREXTENSION_FIRST     = 0x9000,
/** @brief CMDcode for the 'skip' playback operation. */
    CMDCODE_PLAYBACK_SKIP             = 0x9820,
//#ifdef MTP_PLAYBACK_SUPPORT
    CMDCODE_GETTRACKS                 = 0x9821,
    CMDCODE_PLAYTRACK                 = 0x9822,
    CMDCODE_PAUSE                     = 0x9823,
    CMDCODE_STOP                      = 0x9824,
    CMDCODE_NEXTTRACK                 = 0x9825,
    CMDCODE_PREVIOUSTRACK             = 0x9826,
    CMDCODE_FFREW                     = 0x9827,
    CMDCODE_MUTE                      = 0x9828,
    /* these are all aliased to other commands, basically */
    CMDCODE_DELETETRACK               = 0x9829,
    CMDCODE_SENDTRACK                 = 0x982A,
    CMDCODE_COPYTRACK                 = 0x982B,
//#endif
    CMDCODE_CREATEFOLDER              = 0x9830,
    CMDCODE_SENDFILE                  = 0x9831,
    CMDCODE_USAGE                     = 0x9832,
    CMDCODE_STATUS                    = 0x9833,

    CMDCODE_VENDOREXTENSION_LAST      = 0x9fff
};
#endif

#if (1 == HAVE_WMDRM)
/** @brief Values for OPCODE datatype
 *
 */
enum _OPCODE
{       
    OPCODE_UNDEFINED                 = 0x1000,
    OPCODE_GETDEVICEINFO             = 0x1001,
    OPCODE_OPENSESSION               = 0x1002,
    OPCODE_CLOSESESSION              = 0x1003,
    OPCODE_GETSTORAGEIDS             = 0x1004,
    OPCODE_GETSTORAGEINFO            = 0x1005,
    OPCODE_GETNUMOBJECTS             = 0x1006,
    OPCODE_GETOBJECTHANDLES          = 0x1007,
    OPCODE_GETOBJECTINFO             = 0x1008,
    OPCODE_GETOBJECT                 = 0x1009,
    OPCODE_GETTHUMB                  = 0x100a,
    OPCODE_DELETEOBJECT              = 0x100b,
    OPCODE_SENDOBJECTINFO            = 0x100c,
    OPCODE_SENDOBJECT                = 0x100d,
    OPCODE_INITIATECAPTURE           = 0x100e,
    OPCODE_FORMATSTORE               = 0x100f,
    OPCODE_RESETDEVICE               = 0x1010,
    OPCODE_SELFTEST                  = 0x1011,
    OPCODE_SETOBJECTPROTECTION       = 0x1012,
    OPCODE_POWERDOWN                 = 0x1013,
    OPCODE_GETDEVICEPROPDESC         = 0x1014,
    OPCODE_GETDEVICEPROPVALUE        = 0x1015,
    OPCODE_SETDEVICEPROPVALUE        = 0x1016,
    OPCODE_RESETDEVICEPROPVALUE      = 0x1017,
    OPCODE_TERMINATECAPTURE          = 0x1018,
    OPCODE_MOVEOBJECT                = 0x1019,
    OPCODE_COPYOBJECT                = 0x101a,
    OPCODE_GETPARTIALOBJECT          = 0x101b,
    OPCODE_INITIATEOPENCAPTURE       = 0x101c,
#if 1 // FHA added.
    /* MTP Extentions : Advanced Audio/Video Transfer (AAVT) Extention for MTP */
    OPCODE_OPENMEDIASESSION         = 0x9170,
    OPCODE_CLOSEMEDIASESSION        = 0x9171,
    OPCODE_GETNEXTDATABLOCK         = 0x9172,
    OPCODE_SETCURRENTTIMEPOSITION   = 0x9173,
    /* MTP Extentions : Windows Media DRM for Network Devices MTP Extention */
    OPCODE_SENDREGISTRATIONREQUST   = 0x9180,
    OPCODE_GETREGISTRATIONRESPONSE  = 0x9181,
    OPCODE_GETPROXIMITYCHALLENGE    = 0x9182,
    OPCODE_SENDPROXIMITYRESPONSE    = 0x9183,
    OPCODE_SENDWMDRMNDLICENSEREQUEST = 0x9184,
    OPCODE_GETWMDRMNDLICENSERESPONSE = 0x9185,
#endif
    OPCODE_GETOBJECTPROPSSUPPORTED   = 0x9801,
    OPCODE_GETOBJECTPROPDESC         = 0x9802,
    OPCODE_GETOBJECTPROPVALUE        = 0x9803,
    OPCODE_SETOBJECTPROPVALUE        = 0x9804,
    OPCODE_GETOBJECTPROPLIST         = 0x9805,
    OPCODE_SETOBJECTPROPLIST         = 0x9806,
    OPCODE_GETINTERDEPENDENTPROPDESC = 0x9807,
    OPCODE_SENDOBJECTPROPLIST        = 0x9808,
    OPCODE_GETOBJECTREFERENCES       = 0x9810,
    OPCODE_SETOBJECTREFERENCES       = 0x9811,
    OPCODE_UPDATEDEVICEFIRMWARE      = 0x9812,
    OPCODE_RESETOBJECTPROPVALUE      = 0x9813,
    OPCODE_RESERVED_FIRST            = 0x1026,
    OPCODE_RESERVED_LAST             = 0x1fff,
    OPCODE_VENDOREXTENSION_FIRST     = 0x9000,
/** @brief Opcode for the 'skip' playback operation. */
    OPCODE_PLAYBACK_SKIP             = 0x9820,
    OPCODE_VENDOREXTENSION_LAST      = 0x9fff
};

/** @brief Values for RESPONSECODE datatype
 *
 */
enum _RESPONSECODE
{   
    RESPONSECODE_UNDEFINED                  = 0x2000,
    RESPONSECODE_OK                         = 0x2001,
    RESPONSECODE_GENERALERROR               = 0x2002,
    RESPONSECODE_SESSIONNOTOPEN             = 0x2003,
    RESPONSECODE_INVALIDTRANSACTIONID       = 0x2004,
    RESPONSECODE_OPERATIONNOTSUPPORTED      = 0x2005,
    RESPONSECODE_PARAMETERNOTSUPPORTED      = 0x2006,
    RESPONSECODE_INCOMPLETETRANSFER         = 0x2007,
    RESPONSECODE_INVALIDSTORAGEID           = 0x2008,
    RESPONSECODE_INVALIDOBJECTHANDLE        = 0x2009,
    RESPONSECODE_INVALIDPROPERTYCODE        = 0x200a,
    RESPONSECODE_INVALIDOBJECTFORMATCODE    = 0x200b,
    RESPONSECODE_STOREFULL                  = 0x200c,
    RESPONSECODE_OBJECTWRITEPROTECTED       = 0x200d,
    RESPONSECODE_STOREWRITEPROTECTED        = 0x200e,
    RESPONSECODE_ACCESSDENIED               = 0x200f,
    RESPONSECODE_NOTHUMBNAILPRESENT         = 0x2010,
    RESPONSECODE_SELFTESTFAILED             = 0x2011,
    RESPONSECODE_PARTIALDELETION            = 0x2012,
    RESPONSECODE_STORENOTAVAILABLE          = 0x2013,
    RESPONSECODE_NOSPECIFICATIONBYFORMAT    = 0x2014,
    RESPONSECODE_NOVALIDOBJECTINFO          = 0x2015,
    RESPONSECODE_INVALIDCODEFORMAT          = 0x2016,
    RESPONSECODE_UNKNOWNVENDORCODE          = 0x2017,
    RESPONSECODE_CAPTUREALREADYTERMINATED   = 0x2018,
    RESPONSECODE_DEVICEBUSY                 = 0x2019,
    RESPONSECODE_INVALIDPARENT              = 0x201a,
    RESPONSECODE_INVALIDPROPFORMAT          = 0x201b,
    RESPONSECODE_INVALIDPROPVALUE           = 0x201c,
    RESPONSECODE_INVALIDPARAMETER           = 0x201d,
    RESPONSECODE_SESSIONALREADYOPENED       = 0x201e,
    RESPONSECODE_TRANSACTIONCANCELLED       = 0x201f,
    RESPONSECODE_DESTINATIONUNSUPPORTED     = 0x2020,
    RESPONSECODE_RESERVED_FIRST             = 0x2021,
    RESPONSECODE_RESERVED_LAST              = 0x2fff,
    RESPONSECODE_VENDOREXTENSION_FIRST      = 0xa000,
    RESPONSECODE_VENDOREXTENSION_LAST       = 0xa7ff,
    RESPONSECODE_INVALIDOBJECTPROPCODE      = 0xa801,
    RESPONSECODE_INVALIDOBJECTPROPFORMAT    = 0xa802,
    RESPONSECODE_INVALIDOBJECTPROPVALUE     = 0xa803,
    RESPONSECODE_INVALIDOBJECTREFERENCE     = 0xa804,
    RESPONSECODE_INVALIDOBJECTGROUPCODE     = 0xa805,
    RESPONSECODE_INVALIDDATASET             = 0xa806,
    RESPONSECODE_NOSPECIFICATIONBYGROUP	    = 0xa807,
    RESPONSECODE_NOSPECIFICATIONBYDEPTH	    = 0xa808,
    RESPONSECODE_OBJECTTOOLARGE             = 0xa809,

/* Added Mishima for Network Devices Extension  */
    RESPONSECODE_INVALIDCERTIFICATE			= 0xa180,
    RESPONSECODE_CERTIFICATEREVOKED			= 0xa181,
    RESPONSECODE_MUSTAPPROVE				= 0xa182,
    RESPONSECODE_LICENSEUNAVAILABLE			= 0xa183,
    RESPONSECODE_TRANSMITTERFAILURE			= 0xa184,
    RESPONSECODE_UNABLETOVERIFYPROXIMITY	= 0xa186,
    RESPONSECODE_MUSTREGISTER				= 0xa187,
    RESPONSECODE_MUSTREVALIDATE				= 0xa188,
    RESPONSECODE_INVALIDPROXIMITYRESPONSE	= 0xa189,
    RESPONSECODE_INVALIDSESSION				= 0xa18a,
    RESPONSECODE_UNABLETOOPENFILE			= 0xa18b,
    RESPONSECODE_UNSUPPORTEDPROTOCOLVERSION	= 0xa18c,
    RESPONSECODE_BADREQUEST					= 0xa18d
};
#endif  //end of #if (1 == HAVE_WMDRM)

/** @brief Values for EVENTCODE datatype
 *
 */
#if 0	// no need to define so far

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -