libmtp: libmtp global type definitions

libmtp 1.1.21

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_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 and&slash;or 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_AUDIO(a) ||\
LIBMTP_FILETYPE_IS_VIDEO(a) ||\
LIBMTP_FILETYPE_IS_AUDIOVIDEO(a))
LIBMTP_FILETYPE_IS_AUDIO
#define LIBMTP_FILETYPE_IS_AUDIO(a)
Definition libmtp.h:143

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_Get_Tracklisting_With_Callback_For_Storage(), LIBMTP_Get_Trackmetadata(), 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

typedef struct LIBMTP_album_struct LIBMTP_album_t

See also
  LIBMTP_album_struct

## ◆ LIBMTP_allowed_values_t

typedef struct LIBMTP_allowed_values_struct LIBMTP_allowed_values_t

See also
  LIBMTP_allowed_values_struct

## ◆ LIBMTP_device_entry_t

typedef struct LIBMTP_device_entry_struct LIBMTP_device_entry_t

See also
  LIBMTP_device_entry_struct

## ◆ LIBMTP_devicestorage_t

typedef struct LIBMTP_devicestorage_struct LIBMTP_devicestorage_t

See also
  LIBMTP_devicestorage_t

## ◆ LIBMTP_error_t

typedef struct LIBMTP_error_struct LIBMTP_error_t

See also
  LIBMTP_error_struct

## ◆ LIBMTP_file_t

typedef struct LIBMTP_file_struct LIBMTP_file_t

See also
  LIBMTP_file_struct

## ◆ LIBMTP_filesampledata_t

typedef struct LIBMTP_filesampledata_struct LIBMTP_filesampledata_t

See also
  LIBMTP_filesample_t

## ◆ LIBMTP_folder_t

typedef struct LIBMTP_folder_struct LIBMTP_folder_t

See also
  LIBMTP_folder_t

## ◆ LIBMTP_mtpdevice_t

typedef struct LIBMTP_mtpdevice_struct LIBMTP_mtpdevice_t

<

See also
  LIBMTP_device_extension_struct
  LIBMTP_mtpdevice_struct

## ◆ LIBMTP_playlist_t

typedef struct LIBMTP_playlist_struct LIBMTP_playlist_t

See also
  LIBMTP_playlist_struct

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

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

## ◆ LIBMTP_raw_device_t

typedef struct LIBMTP_raw_device_struct LIBMTP_raw_device_t

See also
  LIBMTP_raw_device_struct

## ◆ LIBMTP_track_t

typedef struct LIBMTP_track_struct LIBMTP_track_t

See also
  LIBMTP_track_struct

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

  params | 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

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

  params | 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

## Enumeration Type Documentation

## ◆ LIBMTP_datatype_t

enum LIBMTP_datatype_t

These are the data types

## ◆ LIBMTP_devicecap_t

enum LIBMTP_devicecap_t

These are device capabilities

Enumerator
LIBMTP_DEVICECAP_GetPartialObject | This capability tells whether you can call the function 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

enum LIBMTP_error_number_t

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

## ◆ LIBMTP_filetype_t

enum 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

enum LIBMTP_property_t

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