📄 mtp_types.h
字号:
*/
enum _STORAGEACCESSCAPABILITY
{
STORAGEACCESSCAPABILITY_READ_WRITE = 0x0000,
STORAGEACCESSCAPABILITY_READ_DELETE = 0x0001,
STORAGEACCESSCAPABILITY_READ_NO_DELETE = 0x0002,
STORAGEACCESSCAPABILITY_RESERVED_FIRST = 0x0003,
STORAGEACCESSCAPABILITY_RESERVED_LAST = 0xFFFF
};
/** @brief Values for PROTECTIONSTATUS datatype
*
*/
enum _PROTECTIONSTATUS
{
PROTECTIONSTATUS_NONE = 0x0000,
PROTECTIONSTATUS_READONLY = 0x0001,
PROTECTIONSTATUS_READONLYDATA = 0x8002,
PROTECTIONSTATUS_RESERVED_FIRST = 0x8003,
PROTECTIONSTATUS_RESERVED_LAST = 0xFFFF
};
/** @brief Values for ASSOCIATIONTYPE datatype
*
*/
enum _ASSOCIATIONTYPE
{
ASSOCIATIONTYPE_UNDEFINED = 0x0000,
ASSOCIATIONTYPE_GENERICFOLDER = 0x0001,
ASSOCIATIONTYPE_ALBUM = 0x0002,
ASSOCIATIONTYPE_TIMESEQUENCE = 0x0003,
ASSOCIATIONTYPE_HPANORAMIC = 0x0004,
ASSOCIATIONTYPE_VPANORAMIC = 0x0005,
ASSOCIATIONTYPE_2DPANORAMIC = 0x0006,
ASSOCIATIONTYPE_ANCILLARYDATA = 0x0007,
ASSOCIATIONTYPE_RESERVED_FIRST = 0x0008,
ASSOCIATIONTYPE_RESERVED_LAST = 0x7FFF,
ASSOCIATIONTYPE_VENDOREXTENSION_FIRST = 0x8000,
ASSOCIATIONTYPE_VENDOREXTENSION_LAST = 0xFFFF
};
/** @brief Values for DATATYPE datatype
*
*/
enum _DATATYPE
{
DATATYPE_UNDEFINED = 0x0000,
DATATYPE_INT8 = 0x0001,
DATATYPE_UINT8 = 0x0002,
DATATYPE_INT16 = 0x0003,
DATATYPE_UINT16 = 0x0004,
DATATYPE_INT32 = 0x0005,
DATATYPE_UINT32 = 0x0006,
DATATYPE_INT64 = 0x0007,
DATATYPE_UINT64 = 0x0008,
DATATYPE_INT128 = 0x0009,
DATATYPE_UINT128 = 0x000A,
DATATYPE_AINT8 = 0x4001,
DATATYPE_AUINT8 = 0x4002,
DATATYPE_AINT16 = 0x4003,
DATATYPE_AUINT16 = 0x4004,
DATATYPE_AINT32 = 0x4005,
DATATYPE_AUINT32 = 0x4006,
DATATYPE_AINT64 = 0x4007,
DATATYPE_AUINT64 = 0x4008,
DATATYPE_AINT128 = 0x4009,
DATATYPE_AUINT128 = 0x400A,
DATATYPE_STRING = 0xFFFF
};
/** @brief Values for OBJECTPROPCODE datatype
*
*/
enum _OBJECTPROPCODE
{
OBJECTPROPCODE_NOTUSED = 0x0000,
OBJECTPROPCODE_ALL = 0xFFFF,
OBJECTPROPCODE_UNDEFINED = 0xD000,
OBJECTPROPCODE_STORAGEID = 0xDC01,
OBJECTPROPCODE_OBJECTFORMAT = 0xDC02,
OBJECTPROPCODE_PROTECTIONSTATUS = 0xDC03,
OBJECTPROPCODE_OBJECTSIZE = 0xDC04,
OBJECTPROPCODE_ASSOCIATIONTYPE = 0xDC05,
OBJECTPROPCODE_ASSOCIATIONDESC = 0xDC06,
OBJECTPROPCODE_OBJECTFILENAME = 0xDC07,
OBJECTPROPCODE_DATECREATED = 0xDC08,
OBJECTPROPCODE_DATEMODIFIED = 0xDC09,
OBJECTPROPCODE_KEYWORDS = 0xDC0A,
OBJECTPROPCODE_PARENT = 0xDC0B,
OBJECTPROPCODE_PERSISTENTUNIQUEOBJECTIDENTIFIER = 0xDC41,
OBJECTPROPCODE_SYNCID = 0xDC42,
OBJECTPROPCODE_PROPERTYBAG = 0xDC43,
OBJECTPROPCODE_NAME = 0xDC44,
OBJECTPROPCODE_CREATEDBY = 0xDC45,
OBJECTPROPCODE_ARTIST = 0xDC46,
OBJECTPROPCODE_DATEAUTHORED = 0xDC47,
OBJECTPROPCODE_DESCRIPTION = 0xDC48,
OBJECTPROPCODE_URLREFERENCE = 0xDC49,
OBJECTPROPCODE_LANGUAGELOCALE = 0xDC4A,
OBJECTPROPCODE_COPYRIGHTINFORMATION = 0xDC4B,
OBJECTPROPCODE_SOURCE = 0xDC4C,
OBJECTPROPCODE_ORIGINLOCATION = 0xDC4D,
OBJECTPROPCODE_DATEADDED = 0xDC4E,
OBJECTPROPCODE_NONCONSUMABLE = 0xDC4F,
OBJECTPROPCODE_CORRUPTUNPLAYABLE = 0xDC4F,
OBJECTPROPCODE_REPRESENTATIVESAMPLEFORMAT = 0xDC81,
OBJECTPROPCODE_REPRESENTATIVESAMPLESIZE = 0xDC82,
OBJECTPROPCODE_REPRESENTATIVESAMPLEHEIGHT = 0xDC83,
OBJECTPROPCODE_REPRESENTATIVESAMPLEWIDTH = 0xDC84,
OBJECTPROPCODE_REPRESENTATIVESAMPLEDURATION = 0xDC85,
OBJECTPROPCODE_REPRESENTATIVESAMPLEDATA = 0xDC86,
OBJECTPROPCODE_WIDTH = 0xDC87,
OBJECTPROPCODE_HEIGHT = 0xDC88,
OBJECTPROPCODE_DURATION = 0xDC89,
OBJECTPROPCODE_USERRATING = 0xDC8A,
OBJECTPROPCODE_TRACK = 0xDC8B,
OBJECTPROPCODE_GENRE = 0xDC8C,
OBJECTPROPCODE_CREDITS = 0xDC8D,
OBJECTPROPCODE_LYRICS = 0xDC8E,
OBJECTPROPCODE_SUBSCRIPTIONCONTENTID = 0xDC8F,
OBJECTPROPCODE_PRODUCEDBY = 0xDC90,
OBJECTPROPCODE_USECOUNT = 0xDC91,
OBJECTPROPCODE_SKIPCOUNT = 0xDC92,
OBJECTPROPCODE_LASTACCESSED = 0xDC93,
OBJECTPROPCODE_PARENTALRATING = 0xDC94,
OBJECTPROPCODE_METAGENRE = 0xDC95,
OBJECTPROPCODE_COMPOSER = 0xDC96,
OBJECTPROPCODE_EFFECTIVERATING = 0xDC97,
OBJECTPROPCODE_SUBTITLE = 0xDC98,
OBJECTPROPCODE_ORIGINALRELEASEDATE = 0xDC99,
OBJECTPROPCODE_ALBUMNAME = 0xDC9A,
OBJECTPROPCODE_ALBUMARTIST = 0xDC9B,
OBJECTPROPCODE_MOOD = 0xDC9C,
OBJECTPROPCODE_DRMSTATUS = 0xDC9D,
OBJECTPROPCODE_SUBDESCRIPTION = 0xDC9E,
OBJECTPROPCODE_ISCROPPED = 0xDCD1,
OBJECTPROPCODE_ISCOLOURCORRECTED = 0xDCD2,
OBJECTPROPCODE_TOTALBITRATE = 0xDE91,
OBJECTPROPCODE_BITRATETYPE = 0xDE92,
OBJECTPROPCODE_SAMPLERATE = 0xDE93,
OBJECTPROPCODE_NUMBEROFCHANNELS = 0xDE94,
OBJECTPROPCODE_AUDIOBITDEPTH = 0xDE95,
OBJECTPROPCODE_BLOCKALIGNMENT = 0xDE96,
OBJECTPROPCODE_SCANTYPE = 0xDE97,
OBJECTPROPCODE_COLOURRANGE = 0xDE98,
OBJECTPROPCODE_AUDIOFORMATCODE = 0xDE99,
OBJECTPROPCODE_AUDIOBITRATE = 0xDE9A,
OBJECTPROPCODE_VIDEOFORMATCODE = 0xDE9B,
OBJECTPROPCODE_VIDEOBITRATE = 0xDE9C,
OBJECTPROPCODE_FRAMESTHOUSANDSECONDS = 0xDE9D,
OBJECTPROPCODE_KEYFRAMEDISTANCE = 0xDE9E,
OBJECTPROPCODE_BUFFERSIZE = 0xDE9F,
OBJECTPROPCODE_QUALITY = 0xDEA0
};
/** @brief Values for PROPGETSET datatype
*
*/
enum _PROPGETSET
{
PROPGETSET_GETONLY = 0x00,
PROPGETSET_GETSET = 0x01
};
/** @brief Values for FORMFLAGS datatype
*
*/
enum _FORMFLAGS
{
FORMFLAGSNONE = 0,
FORMFLAGSRANGE = 1,
FORMFLAGSENUM = 2
};
/** @brief Values for PROPERTYGROUP datatype
*
*/
enum _PROPERTYGROUP
{
PROPERTYGROUP_UNDEFINED = 0x0,
PROPERTYGROUP_NOTUSED = 0x0
};
/** @brief Values for HACKMODEL datatype
* @note
* Right now, Sony devices do not provide model in DeviceInfo. m_HackVersion is used to
* differentiate newer and older firmware of Sony devices
*/
enum
{
HACKMODEL_NONE = 0,
HACKMODEL_DC4800 = 1,
HACKMODEL_NIKON_E2500 = 2,
HACKMODEL_SONY = 3,
HACKMODEL_KODAK_MC3 = 4,
HACKMODEL_SIGMATEL128 = 5,
HACKMODEL_CANON = 6
};
/*! @brief Typedef for form flag in device/object property datasets. See ::_DATATYPE */
typedef MTP_UINT8 FORMFLAGS;
/*! @brief Typedef for Get/set status of properties. See ::_DATATYPE */
typedef MTP_UINT8 PROPGETSET;
typedef MTP_UINT32 PROPERTYGROUP;
typedef MTP_UINT16 HACKMODEL;
/*! @brief Typedef for MTP datatypes. See ::_DATATYPE */
typedef MTP_UINT16 DATATYPE;
/*! @brief Typedef for MTP command codes. See ::_CMDCODE */
typedef MTP_UINT16 CMDCODE;
/*! @brief Typedef for MTP operation codes. See ::_OPCODE */
typedef MTP_UINT16 OPCODE;
/*! @brief Typedef for MTP response codes. See ::_RESPONSECODE */
typedef MTP_UINT16 RESPONSECODE;
/*! @brief Typedef for MTP event codes. See ::_EVENTCODE */
typedef MTP_UINT16 EVENTCODE;
/*! @brief typedef for functional mode; see enumeration ::_FUNCTIONALMODE */
typedef MTP_UINT16 FUNCTIONALMODE;
/*! @brief typedef for device property code; see enumeration ::_DEVICEPROPCODE */
typedef MTP_UINT32 DEVICEPROPCODE;
/*! @brief typedef for object property code; see enumeration ::_DEVICEPROPCODE */
typedef MTP_UINT32 OBJECTPROPCODE;
/*! @brief typedef for object format code; see enumeration ::_DEVICEPROPCODE */
typedef MTP_UINT16 FORMATCODE;
/*! @brief typedef for file system type; see enumeration ::_DEVICEPROPCODE */
typedef MTP_UINT16 FILESYSTEMTYPE;
/*! @brief typedef for storage access capability; see enumeration ::_DEVICEPROPCODE */
typedef MTP_UINT16 STORAGEACCESSCAPABILITY;
/*! @brief typedef for object protection status; see enumeration ::_DEVICEPROPCODE */
typedef MTP_UINT16 PROTECTIONSTATUS;
/*! @brief typedef for object association type; see enumeration ::_DEVICEPROPCODE */
typedef MTP_UINT16 ASSOCIATIONTYPE;
/*! @brief typedef for storage type; see enumeration ::_DEVICEPROPCODE */
typedef MTP_UINT16 STORAGETYPE;
/** @brief MTP_VARIANT datatype
* This struct can hold any type of data that a device/object property can contain.
*
* @note
* - MtpVariantInit should be used to initialize the struct.
* - MtpVariantClear must be used to release any memory (for an array or string) that
* was contained within the struct.
* - MtpVaraintSetType must be used to set the datatype.
*/
union mtp_variantvalue
{
MTP_INT8 m_Int8;
MTP_UINT8 m_Uint8;
MTP_INT16 m_Int16;
MTP_UINT16 m_Uint16;
MTP_INT32 m_Int32;
MTP_UINT32 m_Uint32;
MTP_INT64 m_Int64;
MTP_UINT64 m_Uint64;
MTP_INT128 m_Int128;
MTP_UINT128 m_Uint128;
MTP_STRING m_Str;
MTP_INT8 *m_pInt8;
MTP_UINT8 *m_pUint8;
MTP_INT16 *m_pInt16;
MTP_UINT16 *m_pUint16;
MTP_INT32 *m_pInt32;
MTP_UINT32 *m_pUint32;
MTP_INT64 *m_pInt64;
MTP_UINT64 *m_pUint64;
MTP_INT128 *m_pInt128;
MTP_UINT128 *m_pUint128;
};
typedef struct tagMTP_VARIANT
{
DATATYPE m_Type;
MTP_UINT32 m_cbElementSize;
MTP_UINT32 m_dwNumElements;
union mtp_variantvalue v;
} MTP_VARIANT;
/** @brief holds property lists for use with GetObjectPropList, etc.
*
*/
typedef struct tagPROPLIST_ITEM
{
MTP_UINT32 ObjectHandle;
OBJECTPROPCODE PropCode;
DATATYPE DataType;
MTP_VARIANT PropValue;
} PROPLIST_ITEM;
#endif // End of #if 0
#endif /* MTP_TYPES_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -