libmtp  1.1.16
Macros | Typedefs | Enumerations
libmtp global type definitions

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_struct LIBMTP_device_entry_t
 
typedef struct LIBMTP_raw_device_struct LIBMTP_raw_device_t
 
typedef struct LIBMTP_error_struct LIBMTP_error_t
 
typedef struct LIBMTP_allowed_values_struct LIBMTP_allowed_values_t
 
typedef struct LIBMTP_device_extension_struct LIBMTP_device_extension_t
 
typedef struct LIBMTP_mtpdevice_struct LIBMTP_mtpdevice_t
 
typedef struct LIBMTP_file_struct LIBMTP_file_t
 
typedef struct LIBMTP_track_struct LIBMTP_track_t
 
typedef struct LIBMTP_playlist_struct LIBMTP_playlist_t
 
typedef struct LIBMTP_album_struct LIBMTP_album_t
 
typedef struct LIBMTP_folder_struct LIBMTP_folder_t
 
typedef struct LIBMTP_object_struct LIBMTP_object_t
 
typedef struct LIBMTP_filesampledata_struct LIBMTP_filesampledata_t
 
typedef struct LIBMTP_devicestorage_struct LIBMTP_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
}
 

Detailed Description

Macro Definition Documentation

◆ LIBMTP_DEBUG_NONE

#define LIBMTP_DEBUG_NONE   0x00

The debug flags defined here are the external flags used by the libmtp library interface.

Please keep this list in sync with libmtp.c.

◆ LIBMTP_FILETYPE_IS_ADDRESSBOOK

#define LIBMTP_FILETYPE_IS_ADDRESSBOOK (   a)
Value:
(a == LIBMTP_FILETYPE_VCARD2 ||\
a == LIBMTP_FILETYPE_VCARD3)

Addressbook and Business card filetype test

◆ LIBMTP_FILETYPE_IS_AUDIO

#define LIBMTP_FILETYPE_IS_AUDIO (   a)
Value:
(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

◆ LIBMTP_FILETYPE_IS_AUDIOVIDEO

#define LIBMTP_FILETYPE_IS_AUDIOVIDEO (   a)
Value:
(a == LIBMTP_FILETYPE_MP4 ||\
a == LIBMTP_FILETYPE_ASF ||\
a == LIBMTP_FILETYPE_QT)

Audio andor video filetype test.

◆ LIBMTP_FILETYPE_IS_CALENDAR

#define LIBMTP_FILETYPE_IS_CALENDAR (   a)
Value:
(a == LIBMTP_FILETYPE_VCALENDAR1 ||\
a == LIBMTP_FILETYPE_VCALENDAR2)

Calendar and Appointment filetype test

◆ LIBMTP_FILETYPE_IS_IMAGE

#define LIBMTP_FILETYPE_IS_IMAGE (   a)
Value:
(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

◆ LIBMTP_FILETYPE_IS_TRACK

#define LIBMTP_FILETYPE_IS_TRACK (   a)
Value:
LIBMTP_FILETYPE_IS_VIDEO(a) ||\
LIBMTP_FILETYPE_IS_AUDIOVIDEO(a))
#define LIBMTP_FILETYPE_IS_AUDIO(a)
Definition: libmtp.h:141

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.

Examples:
sendtr.c, and tracks.c.

Referenced by LIBMTP_Send_Track_From_File_Descriptor(), and LIBMTP_Send_Track_From_Handler().

◆ LIBMTP_FILETYPE_IS_VIDEO

#define LIBMTP_FILETYPE_IS_VIDEO (   a)
Value:
(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

◆ LIBMTP_HANDLER_RETURN_OK

#define LIBMTP_HANDLER_RETURN_OK   0

The return codes for the get/put functions

Typedef Documentation

◆ LIBMTP_album_t

◆ LIBMTP_allowed_values_t

◆ LIBMTP_device_entry_t

◆ LIBMTP_devicestorage_t

◆ LIBMTP_error_t

◆ LIBMTP_file_t

◆ LIBMTP_filesampledata_t

See also
LIBMTP_filesample_t

◆ LIBMTP_folder_t

See also
LIBMTP_folder_t

◆ LIBMTP_mtpdevice_t

◆ LIBMTP_object_t

typedef struct LIBMTP_object_struct LIBMTP_object_t
See also
LIBMTP_object_t

◆ LIBMTP_playlist_t

◆ LIBMTP_progressfunc_t

typedef int(* LIBMTP_progressfunc_t) (uint64_t const sent, uint64_t const total, void const *const data)

The callback type definition. Notice that a progress percentage ratio is easy to calculate by dividing sent by total.

Parameters
sentthe number of bytes sent so far
totalthe total number of bytes to send
dataa user-defined dereferencable pointer
Returns
if anything else than 0 is returned, the current transfer will be interrupted / cancelled.

◆ LIBMTP_raw_device_t

◆ LIBMTP_track_t

◆ MTPDataGetFunc

typedef uint16_t(* MTPDataGetFunc) (void *params, void *priv, uint32_t wantlen, unsigned char *data, uint32_t *gotlen)

Callback function for get by handler function

Parameters
paramsthe device parameters
priva user-defined dereferencable pointer
wantlenthe number of bytes wanted
dataa buffer to write the data to
gotlenpointer 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

◆ MTPDataPutFunc

typedef uint16_t(* MTPDataPutFunc) (void *params, void *priv, uint32_t sendlen, unsigned char *data, uint32_t *putlen)

Callback function for put by handler function

Parameters
paramsthe device parameters
priva user-defined dereferencable pointer
sendlenthe number of bytes available
dataa buffer to read the data from
putlenpointer 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

Enumeration Type Documentation

◆ LIBMTP_datatype_t

These are the data types

◆ LIBMTP_devicecap_t

These are device capabilities

Enumerator
LIBMTP_DEVICECAP_GetPartialObject 

This capability tells whether you can call the funcion getting partial objects,

See also
LIBMTP_GetPartialObject()
LIBMTP_DEVICECAP_SendPartialObject 

This capability tells whether you can call the function sending partial objects.

See also
LIBMTP_SendPartialObject()
LIBMTP_DEVICECAP_EditObjects 

This capability tells whether you can call the functions editing objects in-place on a device.

See also
LIBMTP_BeginEditObject()
LIBMTP_EndEditObject()
LIBMTP_TruncateObject()
LIBMTP_DEVICECAP_MoveObject 

This capability tells whether you can call the function to move an object,

See also
LIBMTP_MoveObject()
LIBMTP_DEVICECAP_CopyObject 

This capability tells whether you can call the function to copy an object,

See also
LIBMTP_CopyObject()

◆ LIBMTP_error_number_t

These are the numbered error codes. You can also get string representations for errors.

◆ LIBMTP_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.

◆ LIBMTP_property_t

The properties defined here are the external types used by the libmtp library interface.