libmtp  1.1.9
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 }
 
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

#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.

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

Addressbook and Business card filetype test

#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

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

Audio andor video filetype test.

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

Calendar and Appointment filetype test

#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

#define LIBMTP_FILETYPE_IS_TRACK (   a)
Value:
#define LIBMTP_FILETYPE_IS_VIDEO(a)
Definition: libmtp.h:158
#define LIBMTP_FILETYPE_IS_AUDIOVIDEO(a)
Definition: libmtp.h:168
#define LIBMTP_FILETYPE_IS_AUDIO(a)
Definition: libmtp.h:139

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.

Referenced by LIBMTP_Get_Tracklisting_With_Callback_For_Storage(), LIBMTP_Get_Trackmetadata(), LIBMTP_Send_Track_From_File_Descriptor(), and LIBMTP_Send_Track_From_Handler().

#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

#define LIBMTP_HANDLER_RETURN_OK   0

The return codes for the get/put functions

Typedef Documentation

See also
LIBMTP_filesample_t
See also
LIBMTP_folder_t
typedef struct LIBMTP_object_struct LIBMTP_object_t
See also
LIBMTP_object_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.
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
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

These are the data types

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()

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

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.

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