libmtp - types
Contents
Detailed Description
Enumeration Type Documentation
enumLIBMTP_datatype_t
These are the data types
enumLIBMTP_devicecap_t
These are device capabilities
EnumeratorLIBMTP_DEVICECAP_GetPartialObject
This capability tells whether you can call the function getting partial objects,
Seealso
LIBMTP_GetPartialObject()
LIBMTP_DEVICECAP_SendPartialObject
This capability tells whether you can call the function sending partial objects.
Seealso
LIBMTP_SendPartialObject()
LIBMTP_DEVICECAP_EditObjects
This capability tells whether you can call the functions editing objects in-place on a device.
Seealso
LIBMTP_BeginEditObject()
LIBMTP_EndEditObject()
LIBMTP_TruncateObject()
LIBMTP_DEVICECAP_MoveObject
This capability tells whether you can call the function to move an object,
Seealso
LIBMTP_MoveObject()
LIBMTP_DEVICECAP_CopyObject
This capability tells whether you can call the function to copy an object,
Seealso
LIBMTP_CopyObject()
enumLIBMTP_error_number_t
These are the numbered error codes. You can also get string representations for errors.
enumLIBMTP_filetype_t
The filetypes defined here are the external types used by the libmtp library interface. The types used
internally as PTP-defined enumerator types is something different.
enumLIBMTP_property_t
The properties defined here are the external types used by the libmtp library interface.
Macro Definition Documentation
#defineLIBMTP_DEBUG_NONE0x00
The debug flags defined here are the external flags used by the libmtp library interface.
Please keep this list in sync with libmtp.c.
#defineLIBMTP_FILETYPE_IS_ADDRESSBOOK(a)Value:.PP
(a == LIBMTP_FILETYPE_VCARD2 ||\
a == LIBMTP_FILETYPE_VCARD3)
Addressbook and Business card filetype test
#defineLIBMTP_FILETYPE_IS_AUDIO(a)Value:.PP
(a == LIBMTP_FILETYPE_WAV ||\
a == LIBMTP_FILETYPE_MP3 ||\
a == LIBMTP_FILETYPE_MP2 ||\
a == LIBMTP_FILETYPE_WMA ||\
a == LIBMTP_FILETYPE_OGG ||\
a == LIBMTP_FILETYPE_FLAC ||\
a == LIBMTP_FILETYPE_AAC ||\
a == LIBMTP_FILETYPE_M4A ||\
a == LIBMTP_FILETYPE_AUDIBLE ||\
a == LIBMTP_FILETYPE_UNDEF_AUDIO)
Audio filetype test.
For filetypes that can be either audio or video, use LIBMTP_FILETYPE_IS_AUDIOVIDEO
#defineLIBMTP_FILETYPE_IS_AUDIOVIDEO(a)Value:.PP
(a == LIBMTP_FILETYPE_MP4 ||\
a == LIBMTP_FILETYPE_ASF ||\
a == LIBMTP_FILETYPE_QT)
Audio and&slash;or video filetype test.
#defineLIBMTP_FILETYPE_IS_CALENDAR(a)Value:.PP
(a == LIBMTP_FILETYPE_VCALENDAR1 ||\
a == LIBMTP_FILETYPE_VCALENDAR2)
Calendar and Appointment filetype test
#defineLIBMTP_FILETYPE_IS_IMAGE(a)Value:.PP
(a == LIBMTP_FILETYPE_JPEG ||\
a == LIBMTP_FILETYPE_JFIF ||\
a == LIBMTP_FILETYPE_TIFF ||\
a == LIBMTP_FILETYPE_BMP ||\
a == LIBMTP_FILETYPE_GIF ||\
a == LIBMTP_FILETYPE_PICT ||\
a == LIBMTP_FILETYPE_PNG ||\
a == LIBMTP_FILETYPE_JP2 ||\
a == LIBMTP_FILETYPE_JPX ||\
a == LIBMTP_FILETYPE_WINDOWSIMAGEFORMAT)
Image filetype test
#defineLIBMTP_FILETYPE_IS_TRACK(a)Value:.PP
(LIBMTP_FILETYPE_IS_AUDIO(a) ||\
LIBMTP_FILETYPE_IS_VIDEO(a) ||\
LIBMTP_FILETYPE_IS_AUDIOVIDEO(a))
Test if filetype is a track. Use this to determine if the File API or Track API should be used to upload
or download an object.
Examplessendtr.c, and tracks.c.
#defineLIBMTP_FILETYPE_IS_VIDEO(a)Value:.PP
(a == LIBMTP_FILETYPE_WMV ||\
a == LIBMTP_FILETYPE_AVI ||\
a == LIBMTP_FILETYPE_MPEG ||\
a == LIBMTP_FILETYPE_UNDEF_VIDEO)
Video filetype test.
For filetypes that can be either audio or video, use LIBMTP_FILETYPE_IS_AUDIOVIDEO
#defineLIBMTP_HANDLER_RETURN_OK0
The return codes for the get/put functions
Name
libmtp - types
Synopsis
Macros
#define LIBMTP_DEBUG_NONE 0x00
#define LIBMTP_DEBUG_PTP 0x01
#define LIBMTP_DEBUG_PLST 0x02
#define LIBMTP_DEBUG_USB 0x04
#define LIBMTP_DEBUG_DATA 0x08
#define LIBMTP_DEBUG_ALL 0xFF
#define LIBMTP_FILETYPE_IS_AUDIO(a)
#define LIBMTP_FILETYPE_IS_VIDEO(a)
#define LIBMTP_FILETYPE_IS_AUDIOVIDEO(a)
#define LIBMTP_FILETYPE_IS_TRACK(a)
#define LIBMTP_FILETYPE_IS_IMAGE(a)
#define LIBMTP_FILETYPE_IS_ADDRESSBOOK(a)
#define LIBMTP_FILETYPE_IS_CALENDAR(a)
#define LIBMTP_HANDLER_RETURN_OK 0
#define LIBMTP_HANDLER_RETURN_ERROR 1
#define LIBMTP_HANDLER_RETURN_CANCEL 2
Typedefs
typedef struct LIBMTP_device_entry_structLIBMTP_device_entry_t
typedef struct LIBMTP_raw_device_structLIBMTP_raw_device_t
typedef struct LIBMTP_error_structLIBMTP_error_t
typedef struct LIBMTP_allowed_values_structLIBMTP_allowed_values_t
typedef struct LIBMTP_device_extension_structLIBMTP_device_extension_t
typedef struct LIBMTP_mtpdevice_structLIBMTP_mtpdevice_t
typedef struct LIBMTP_file_structLIBMTP_file_t
typedef struct LIBMTP_track_structLIBMTP_track_t
typedef struct LIBMTP_playlist_structLIBMTP_playlist_t
typedef struct LIBMTP_album_structLIBMTP_album_t
typedef struct LIBMTP_folder_structLIBMTP_folder_t
typedef struct LIBMTP_filesampledata_structLIBMTP_filesampledata_t
typedef struct LIBMTP_devicestorage_structLIBMTP_devicestorage_t
typedef int(* LIBMTP_progressfunc_t) (uint64_t const sent, uint64_t const total, void const *const data)
typedef uint16_t(* MTPDataGetFunc) (void *params, void *priv, uint32_t wantlen, unsigned char *data,
uint32_t *gotlen)
typedef uint16_t(* MTPDataPutFunc) (void *params, void *priv, uint32_t sendlen, unsigned char *data,
uint32_t *putlen)
Enumerations
enum LIBMTP_filetype_t { LIBMTP_FILETYPE_FOLDER, LIBMTP_FILETYPE_WAV, LIBMTP_FILETYPE_MP3,
LIBMTP_FILETYPE_WMA, LIBMTP_FILETYPE_OGG, LIBMTP_FILETYPE_AUDIBLE, LIBMTP_FILETYPE_MP4,
LIBMTP_FILETYPE_UNDEF_AUDIO, LIBMTP_FILETYPE_WMV, LIBMTP_FILETYPE_AVI, LIBMTP_FILETYPE_MPEG,
LIBMTP_FILETYPE_ASF, LIBMTP_FILETYPE_QT, LIBMTP_FILETYPE_UNDEF_VIDEO, LIBMTP_FILETYPE_JPEG,
LIBMTP_FILETYPE_JFIF, LIBMTP_FILETYPE_TIFF, LIBMTP_FILETYPE_BMP, LIBMTP_FILETYPE_GIF,
LIBMTP_FILETYPE_PICT, LIBMTP_FILETYPE_PNG, LIBMTP_FILETYPE_VCALENDAR1, LIBMTP_FILETYPE_VCALENDAR2,
LIBMTP_FILETYPE_VCARD2, LIBMTP_FILETYPE_VCARD3, LIBMTP_FILETYPE_WINDOWSIMAGEFORMAT,
LIBMTP_FILETYPE_WINEXEC, LIBMTP_FILETYPE_TEXT, LIBMTP_FILETYPE_HTML, LIBMTP_FILETYPE_FIRMWARE,
LIBMTP_FILETYPE_AAC, LIBMTP_FILETYPE_MEDIACARD, LIBMTP_FILETYPE_FLAC, LIBMTP_FILETYPE_MP2,
LIBMTP_FILETYPE_M4A, LIBMTP_FILETYPE_DOC, LIBMTP_FILETYPE_XML, LIBMTP_FILETYPE_XLS,
LIBMTP_FILETYPE_PPT, LIBMTP_FILETYPE_MHT, LIBMTP_FILETYPE_JP2, LIBMTP_FILETYPE_JPX,
LIBMTP_FILETYPE_ALBUM, LIBMTP_FILETYPE_PLAYLIST, LIBMTP_FILETYPE_UNKNOWN }
enum LIBMTP_property_t { LIBMTP_PROPERTY_StorageID, LIBMTP_PROPERTY_ObjectFormat,
LIBMTP_PROPERTY_ProtectionStatus, LIBMTP_PROPERTY_ObjectSize, LIBMTP_PROPERTY_AssociationType,
LIBMTP_PROPERTY_AssociationDesc, LIBMTP_PROPERTY_ObjectFileName, LIBMTP_PROPERTY_DateCreated,
LIBMTP_PROPERTY_DateModified, LIBMTP_PROPERTY_Keywords, LIBMTP_PROPERTY_ParentObject,
LIBMTP_PROPERTY_AllowedFolderContents, LIBMTP_PROPERTY_Hidden, LIBMTP_PROPERTY_SystemObject,
LIBMTP_PROPERTY_PersistantUniqueObjectIdentifier, LIBMTP_PROPERTY_SyncID,
LIBMTP_PROPERTY_PropertyBag, LIBMTP_PROPERTY_Name, LIBMTP_PROPERTY_CreatedBy, LIBMTP_PROPERTY_Artist,
LIBMTP_PROPERTY_DateAuthored, LIBMTP_PROPERTY_Description, LIBMTP_PROPERTY_URLReference,
LIBMTP_PROPERTY_LanguageLocale, LIBMTP_PROPERTY_CopyrightInformation, LIBMTP_PROPERTY_Source,
LIBMTP_PROPERTY_OriginLocation, LIBMTP_PROPERTY_DateAdded, LIBMTP_PROPERTY_NonConsumable,
LIBMTP_PROPERTY_CorruptOrUnplayable, LIBMTP_PROPERTY_ProducerSerialNumber,
LIBMTP_PROPERTY_RepresentativeSampleFormat, LIBMTP_PROPERTY_RepresentativeSampleSize,
LIBMTP_PROPERTY_RepresentativeSampleHeight, LIBMTP_PROPERTY_RepresentativeSampleWidth,
LIBMTP_PROPERTY_RepresentativeSampleDuration, LIBMTP_PROPERTY_RepresentativeSampleData,
LIBMTP_PROPERTY_Width, LIBMTP_PROPERTY_Height, LIBMTP_PROPERTY_Duration, LIBMTP_PROPERTY_Rating,
LIBMTP_PROPERTY_Track, LIBMTP_PROPERTY_Genre, LIBMTP_PROPERTY_Credits, LIBMTP_PROPERTY_Lyrics,
LIBMTP_PROPERTY_SubscriptionContentID, LIBMTP_PROPERTY_ProducedBy, LIBMTP_PROPERTY_UseCount,
LIBMTP_PROPERTY_SkipCount, LIBMTP_PROPERTY_LastAccessed, LIBMTP_PROPERTY_ParentalRating,
LIBMTP_PROPERTY_MetaGenre, LIBMTP_PROPERTY_Composer, LIBMTP_PROPERTY_EffectiveRating,
LIBMTP_PROPERTY_Subtitle, LIBMTP_PROPERTY_OriginalReleaseDate, LIBMTP_PROPERTY_AlbumName,
LIBMTP_PROPERTY_AlbumArtist, LIBMTP_PROPERTY_Mood, LIBMTP_PROPERTY_DRMStatus,
LIBMTP_PROPERTY_SubDescription, LIBMTP_PROPERTY_IsCropped, LIBMTP_PROPERTY_IsColorCorrected,
LIBMTP_PROPERTY_ImageBitDepth, LIBMTP_PROPERTY_Fnumber, LIBMTP_PROPERTY_ExposureTime,
LIBMTP_PROPERTY_ExposureIndex, LIBMTP_PROPERTY_DisplayName, LIBMTP_PROPERTY_BodyText,
LIBMTP_PROPERTY_Subject, LIBMTP_PROPERTY_Priority, LIBMTP_PROPERTY_GivenName,
LIBMTP_PROPERTY_MiddleNames, LIBMTP_PROPERTY_FamilyName, LIBMTP_PROPERTY_Prefix,
LIBMTP_PROPERTY_Suffix, LIBMTP_PROPERTY_PhoneticGivenName, LIBMTP_PROPERTY_PhoneticFamilyName,
LIBMTP_PROPERTY_EmailPrimary, LIBMTP_PROPERTY_EmailPersonal1, LIBMTP_PROPERTY_EmailPersonal2,
LIBMTP_PROPERTY_EmailBusiness1, LIBMTP_PROPERTY_EmailBusiness2, LIBMTP_PROPERTY_EmailOthers,
LIBMTP_PROPERTY_PhoneNumberPrimary, LIBMTP_PROPERTY_PhoneNumberPersonal,
LIBMTP_PROPERTY_PhoneNumberPersonal2, LIBMTP_PROPERTY_PhoneNumberBusiness,
LIBMTP_PROPERTY_PhoneNumberBusiness2, LIBMTP_PROPERTY_PhoneNumberMobile,
LIBMTP_PROPERTY_PhoneNumberMobile2, LIBMTP_PROPERTY_FaxNumberPrimary,
LIBMTP_PROPERTY_FaxNumberPersonal, LIBMTP_PROPERTY_FaxNumberBusiness, LIBMTP_PROPERTY_PagerNumber,
LIBMTP_PROPERTY_PhoneNumberOthers, LIBMTP_PROPERTY_PrimaryWebAddress,
LIBMTP_PROPERTY_PersonalWebAddress, LIBMTP_PROPERTY_BusinessWebAddress,
LIBMTP_PROPERTY_InstantMessengerAddress, LIBMTP_PROPERTY_InstantMessengerAddress2,
LIBMTP_PROPERTY_InstantMessengerAddress3, LIBMTP_PROPERTY_PostalAddressPersonalFull,
LIBMTP_PROPERTY_PostalAddressPersonalFullLine1, LIBMTP_PROPERTY_PostalAddressPersonalFullLine2,
LIBMTP_PROPERTY_PostalAddressPersonalFullCity, LIBMTP_PROPERTY_PostalAddressPersonalFullRegion,
LIBMTP_PROPERTY_PostalAddressPersonalFullPostalCode,
LIBMTP_PROPERTY_PostalAddressPersonalFullCountry, LIBMTP_PROPERTY_PostalAddressBusinessFull,
LIBMTP_PROPERTY_PostalAddressBusinessLine1, LIBMTP_PROPERTY_PostalAddressBusinessLine2,
LIBMTP_PROPERTY_PostalAddressBusinessCity, LIBMTP_PROPERTY_PostalAddressBusinessRegion,
LIBMTP_PROPERTY_PostalAddressBusinessPostalCode, LIBMTP_PROPERTY_PostalAddressBusinessCountry,
LIBMTP_PROPERTY_PostalAddressOtherFull, LIBMTP_PROPERTY_PostalAddressOtherLine1,
LIBMTP_PROPERTY_PostalAddressOtherLine2, LIBMTP_PROPERTY_PostalAddressOtherCity,
LIBMTP_PROPERTY_PostalAddressOtherRegion, LIBMTP_PROPERTY_PostalAddressOtherPostalCode,
LIBMTP_PROPERTY_PostalAddressOtherCountry, LIBMTP_PROPERTY_OrganizationName,
LIBMTP_PROPERTY_PhoneticOrganizationName, LIBMTP_PROPERTY_Role, LIBMTP_PROPERTY_Birthdate,
LIBMTP_PROPERTY_MessageTo, LIBMTP_PROPERTY_MessageCC, LIBMTP_PROPERTY_MessageBCC,
LIBMTP_PROPERTY_MessageRead, LIBMTP_PROPERTY_MessageReceivedTime, LIBMTP_PROPERTY_MessageSender,
LIBMTP_PROPERTY_ActivityBeginTime, LIBMTP_PROPERTY_ActivityEndTime, LIBMTP_PROPERTY_ActivityLocation,
LIBMTP_PROPERTY_ActivityRequiredAttendees, LIBMTP_PROPERTY_ActivityOptionalAttendees,
LIBMTP_PROPERTY_ActivityResources, LIBMTP_PROPERTY_ActivityAccepted, LIBMTP_PROPERTY_Owner,
LIBMTP_PROPERTY_Editor, LIBMTP_PROPERTY_Webmaster, LIBMTP_PROPERTY_URLSource,
LIBMTP_PROPERTY_URLDestination, LIBMTP_PROPERTY_TimeBookmark, LIBMTP_PROPERTY_ObjectBookmark,
LIBMTP_PROPERTY_ByteBookmark, LIBMTP_PROPERTY_LastBuildDate, LIBMTP_PROPERTY_TimetoLive,
LIBMTP_PROPERTY_MediaGUID, LIBMTP_PROPERTY_TotalBitRate, LIBMTP_PROPERTY_BitRateType,
LIBMTP_PROPERTY_SampleRate, LIBMTP_PROPERTY_NumberOfChannels, LIBMTP_PROPERTY_AudioBitDepth,
LIBMTP_PROPERTY_ScanDepth, LIBMTP_PROPERTY_AudioWAVECodec, LIBMTP_PROPERTY_AudioBitRate,
LIBMTP_PROPERTY_VideoFourCCCodec, LIBMTP_PROPERTY_VideoBitRate,
LIBMTP_PROPERTY_FramesPerThousandSeconds, LIBMTP_PROPERTY_KeyFrameDistance,
LIBMTP_PROPERTY_BufferSize, LIBMTP_PROPERTY_EncodingQuality, LIBMTP_PROPERTY_EncodingProfile,
LIBMTP_PROPERTY_BuyFlag, LIBMTP_PROPERTY_UNKNOWN }
enum LIBMTP_datatype_t { LIBMTP_DATATYPE_INT8, LIBMTP_DATATYPE_UINT8, LIBMTP_DATATYPE_INT16,
LIBMTP_DATATYPE_UINT16, LIBMTP_DATATYPE_INT32, LIBMTP_DATATYPE_UINT32, LIBMTP_DATATYPE_INT64,
LIBMTP_DATATYPE_UINT64 }
enum LIBMTP_devicecap_t { LIBMTP_DEVICECAP_GetPartialObject, LIBMTP_DEVICECAP_SendPartialObject,
LIBMTP_DEVICECAP_EditObjects, LIBMTP_DEVICECAP_MoveObject, LIBMTP_DEVICECAP_CopyObject }
enum LIBMTP_error_number_t { LIBMTP_ERROR_NONE, LIBMTP_ERROR_GENERAL, LIBMTP_ERROR_PTP_LAYER,
LIBMTP_ERROR_USB_LAYER, LIBMTP_ERROR_MEMORY_ALLOCATION, LIBMTP_ERROR_NO_DEVICE_ATTACHED,
LIBMTP_ERROR_STORAGE_FULL, LIBMTP_ERROR_CONNECTING, LIBMTP_ERROR_CANCELLED }
Typedef Documentation
typedefstructLIBMTP_album_structLIBMTP_album_tSeealsoLIBMTP_album_structtypedefstructLIBMTP_allowed_values_structLIBMTP_allowed_values_tSeealsoLIBMTP_allowed_values_structtypedefstructLIBMTP_device_entry_structLIBMTP_device_entry_tSeealsoLIBMTP_device_entry_structtypedefstructLIBMTP_devicestorage_structLIBMTP_devicestorage_tSeealsoLIBMTP_devicestorage_ttypedefstructLIBMTP_error_structLIBMTP_error_tSeealsoLIBMTP_error_structtypedefstructLIBMTP_file_structLIBMTP_file_tSeealsoLIBMTP_file_structtypedefstructLIBMTP_filesampledata_structLIBMTP_filesampledata_tSeealso
LIBMTP_filesample_t
typedefstructLIBMTP_folder_structLIBMTP_folder_tSeealsoLIBMTP_folder_ttypedefstructLIBMTP_mtpdevice_structLIBMTP_mtpdevice_t
<
SeealsoLIBMTP_device_extension_structLIBMTP_mtpdevice_structtypedefstructLIBMTP_playlist_structLIBMTP_playlist_tSeealsoLIBMTP_playlist_structtypedefint(*LIBMTP_progressfunc_t)(uint64_tconstsent,uint64_tconsttotal,voidconst*constdata)
The callback type definition. Notice that a progress percentage ratio is easy to calculate by dividing
sent by total.
Parameterssent the number of bytes sent so far
total the total number of bytes to send
data a user-defined dereferencable pointer
Returns
if anything else than 0 is returned, the current transfer will be interrupted / cancelled.
typedefstructLIBMTP_raw_device_structLIBMTP_raw_device_tSeealsoLIBMTP_raw_device_structtypedefstructLIBMTP_track_structLIBMTP_track_tSeealsoLIBMTP_track_structtypedefuint16_t(*MTPDataGetFunc)(void*params,void*priv,uint32_twantlen,unsignedchar*data,uint32_t*gotlen)
Callback function for get by handler function
Parametersparams the device parameters
priv a user-defined dereferencable pointer
wantlen the number of bytes wanted
data a buffer to write the data to
gotlen pointer to the number of bytes actually written to data
Returns
LIBMTP_HANDLER_RETURN_OK if successful, LIBMTP_HANDLER_RETURN_ERROR on error or
LIBMTP_HANDLER_RETURN_CANCEL to cancel the transfer
typedefuint16_t(*MTPDataPutFunc)(void*params,void*priv,uint32_tsendlen,unsignedchar*data,uint32_t*putlen)
Callback function for put by handler function
Parametersparams the device parameters
priv a user-defined dereferencable pointer
sendlen the number of bytes available
data a buffer to read the data from
putlen pointer to the number of bytes actually read from data
Returns
LIBMTP_HANDLER_RETURN_OK if successful, LIBMTP_HANDLER_RETURN_ERROR on error or
LIBMTP_HANDLER_RETURN_CANCEL to cancel the transfer
