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

📄 mtp_types.h

📁 本程序为ST公司开发的源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
 */
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 + -