libmtp  1.1.14
libmtp.h
Go to the documentation of this file.
1 
29 #ifndef LIBMTP_H_INCLUSION_GUARD
30 #define LIBMTP_H_INCLUSION_GUARD
31 
32 #define LIBMTP_VERSION 1.1.14
33 #define LIBMTP_VERSION_STRING "1.1.14"
34 
35 /* This handles MSVC pecularities */
36 #ifdef _MSC_VER
37 #include <windows.h>
38 #define __WIN32__
39 #define snprintf _snprintf
40 #define ssize_t SSIZE_T
41 /*
42  * Types that do not exist in Windows
43  * sys/types.h, but they exist in mingw32
44  * sys/types.h.
45  */
46 typedef char int8_t;
47 typedef unsigned char uint8_t;
48 typedef __int16 int16_t;
49 typedef unsigned __int16 uint16_t;
50 typedef __int32 int32_t;
51 typedef unsigned __int32 uint32_t;
52 typedef unsigned __int64 uint64_t;
53 #else
54 #include <sys/time.h>
55 #endif
56 
57 #include <stdio.h>
58 #include <stdint.h>
59 /* We use time_t */
60 #include <time.h>
61 
73 #define LIBMTP_DEBUG_NONE 0x00
74 #define LIBMTP_DEBUG_PTP 0x01
75 #define LIBMTP_DEBUG_PLST 0x02
76 #define LIBMTP_DEBUG_USB 0x04
77 #define LIBMTP_DEBUG_DATA 0x08
78 #define LIBMTP_DEBUG_ALL 0xFF
79 
80 
86 typedef enum {
87  LIBMTP_FILETYPE_FOLDER,
88  LIBMTP_FILETYPE_WAV,
89  LIBMTP_FILETYPE_MP3,
90  LIBMTP_FILETYPE_WMA,
91  LIBMTP_FILETYPE_OGG,
92  LIBMTP_FILETYPE_AUDIBLE,
93  LIBMTP_FILETYPE_MP4,
94  LIBMTP_FILETYPE_UNDEF_AUDIO,
95  LIBMTP_FILETYPE_WMV,
96  LIBMTP_FILETYPE_AVI,
97  LIBMTP_FILETYPE_MPEG,
98  LIBMTP_FILETYPE_ASF,
99  LIBMTP_FILETYPE_QT,
100  LIBMTP_FILETYPE_UNDEF_VIDEO,
101  LIBMTP_FILETYPE_JPEG,
102  LIBMTP_FILETYPE_JFIF,
103  LIBMTP_FILETYPE_TIFF,
104  LIBMTP_FILETYPE_BMP,
105  LIBMTP_FILETYPE_GIF,
106  LIBMTP_FILETYPE_PICT,
107  LIBMTP_FILETYPE_PNG,
108  LIBMTP_FILETYPE_VCALENDAR1,
109  LIBMTP_FILETYPE_VCALENDAR2,
110  LIBMTP_FILETYPE_VCARD2,
111  LIBMTP_FILETYPE_VCARD3,
112  LIBMTP_FILETYPE_WINDOWSIMAGEFORMAT,
113  LIBMTP_FILETYPE_WINEXEC,
114  LIBMTP_FILETYPE_TEXT,
115  LIBMTP_FILETYPE_HTML,
116  LIBMTP_FILETYPE_FIRMWARE,
117  LIBMTP_FILETYPE_AAC,
118  LIBMTP_FILETYPE_MEDIACARD,
119  LIBMTP_FILETYPE_FLAC,
120  LIBMTP_FILETYPE_MP2,
121  LIBMTP_FILETYPE_M4A,
122  LIBMTP_FILETYPE_DOC,
123  LIBMTP_FILETYPE_XML,
124  LIBMTP_FILETYPE_XLS,
125  LIBMTP_FILETYPE_PPT,
126  LIBMTP_FILETYPE_MHT,
127  LIBMTP_FILETYPE_JP2,
128  LIBMTP_FILETYPE_JPX,
129  LIBMTP_FILETYPE_ALBUM,
130  LIBMTP_FILETYPE_PLAYLIST,
131  LIBMTP_FILETYPE_UNKNOWN
133 
141 #define LIBMTP_FILETYPE_IS_AUDIO(a)\
142 (a == LIBMTP_FILETYPE_WAV ||\
143  a == LIBMTP_FILETYPE_MP3 ||\
144  a == LIBMTP_FILETYPE_MP2 ||\
145  a == LIBMTP_FILETYPE_WMA ||\
146  a == LIBMTP_FILETYPE_OGG ||\
147  a == LIBMTP_FILETYPE_FLAC ||\
148  a == LIBMTP_FILETYPE_AAC ||\
149  a == LIBMTP_FILETYPE_M4A ||\
150  a == LIBMTP_FILETYPE_AUDIBLE ||\
151  a == LIBMTP_FILETYPE_UNDEF_AUDIO)
152 
160 #define LIBMTP_FILETYPE_IS_VIDEO(a)\
161 (a == LIBMTP_FILETYPE_WMV ||\
162  a == LIBMTP_FILETYPE_AVI ||\
163  a == LIBMTP_FILETYPE_MPEG ||\
164  a == LIBMTP_FILETYPE_UNDEF_VIDEO)
165 
170 #define LIBMTP_FILETYPE_IS_AUDIOVIDEO(a)\
171 (a == LIBMTP_FILETYPE_MP4 ||\
172  a == LIBMTP_FILETYPE_ASF ||\
173  a == LIBMTP_FILETYPE_QT)
174 
181 #define LIBMTP_FILETYPE_IS_TRACK(a)\
182 (LIBMTP_FILETYPE_IS_AUDIO(a) ||\
183  LIBMTP_FILETYPE_IS_VIDEO(a) ||\
184  LIBMTP_FILETYPE_IS_AUDIOVIDEO(a))
185 
190 #define LIBMTP_FILETYPE_IS_IMAGE(a)\
191 (a == LIBMTP_FILETYPE_JPEG ||\
192 a == LIBMTP_FILETYPE_JFIF ||\
193 a == LIBMTP_FILETYPE_TIFF ||\
194 a == LIBMTP_FILETYPE_BMP ||\
195 a == LIBMTP_FILETYPE_GIF ||\
196 a == LIBMTP_FILETYPE_PICT ||\
197 a == LIBMTP_FILETYPE_PNG ||\
198 a == LIBMTP_FILETYPE_JP2 ||\
199 a == LIBMTP_FILETYPE_JPX ||\
200 a == LIBMTP_FILETYPE_WINDOWSIMAGEFORMAT)
201 
206 #define LIBMTP_FILETYPE_IS_ADDRESSBOOK(a)\
207 (a == LIBMTP_FILETYPE_VCARD2 ||\
208 a == LIBMTP_FILETYPE_VCARD3)
209 
214 #define LIBMTP_FILETYPE_IS_CALENDAR(a)\
215 (a == LIBMTP_FILETYPE_VCALENDAR1 ||\
216 a == LIBMTP_FILETYPE_VCALENDAR2)
217 
222 typedef enum {
223  LIBMTP_PROPERTY_StorageID,
224  LIBMTP_PROPERTY_ObjectFormat,
225  LIBMTP_PROPERTY_ProtectionStatus,
226  LIBMTP_PROPERTY_ObjectSize,
227  LIBMTP_PROPERTY_AssociationType,
228  LIBMTP_PROPERTY_AssociationDesc,
229  LIBMTP_PROPERTY_ObjectFileName,
230  LIBMTP_PROPERTY_DateCreated,
231  LIBMTP_PROPERTY_DateModified,
232  LIBMTP_PROPERTY_Keywords,
233  LIBMTP_PROPERTY_ParentObject,
234  LIBMTP_PROPERTY_AllowedFolderContents,
235  LIBMTP_PROPERTY_Hidden,
236  LIBMTP_PROPERTY_SystemObject,
237  LIBMTP_PROPERTY_PersistantUniqueObjectIdentifier,
238  LIBMTP_PROPERTY_SyncID,
239  LIBMTP_PROPERTY_PropertyBag,
240  LIBMTP_PROPERTY_Name,
241  LIBMTP_PROPERTY_CreatedBy,
242  LIBMTP_PROPERTY_Artist,
243  LIBMTP_PROPERTY_DateAuthored,
244  LIBMTP_PROPERTY_Description,
245  LIBMTP_PROPERTY_URLReference,
246  LIBMTP_PROPERTY_LanguageLocale,
247  LIBMTP_PROPERTY_CopyrightInformation,
248  LIBMTP_PROPERTY_Source,
249  LIBMTP_PROPERTY_OriginLocation,
250  LIBMTP_PROPERTY_DateAdded,
251  LIBMTP_PROPERTY_NonConsumable,
252  LIBMTP_PROPERTY_CorruptOrUnplayable,
253  LIBMTP_PROPERTY_ProducerSerialNumber,
254  LIBMTP_PROPERTY_RepresentativeSampleFormat,
255  LIBMTP_PROPERTY_RepresentativeSampleSize,
256  LIBMTP_PROPERTY_RepresentativeSampleHeight,
257  LIBMTP_PROPERTY_RepresentativeSampleWidth,
258  LIBMTP_PROPERTY_RepresentativeSampleDuration,
259  LIBMTP_PROPERTY_RepresentativeSampleData,
260  LIBMTP_PROPERTY_Width,
261  LIBMTP_PROPERTY_Height,
262  LIBMTP_PROPERTY_Duration,
263  LIBMTP_PROPERTY_Rating,
264  LIBMTP_PROPERTY_Track,
265  LIBMTP_PROPERTY_Genre,
266  LIBMTP_PROPERTY_Credits,
267  LIBMTP_PROPERTY_Lyrics,
268  LIBMTP_PROPERTY_SubscriptionContentID,
269  LIBMTP_PROPERTY_ProducedBy,
270  LIBMTP_PROPERTY_UseCount,
271  LIBMTP_PROPERTY_SkipCount,
272  LIBMTP_PROPERTY_LastAccessed,
273  LIBMTP_PROPERTY_ParentalRating,
274  LIBMTP_PROPERTY_MetaGenre,
275  LIBMTP_PROPERTY_Composer,
276  LIBMTP_PROPERTY_EffectiveRating,
277  LIBMTP_PROPERTY_Subtitle,
278  LIBMTP_PROPERTY_OriginalReleaseDate,
279  LIBMTP_PROPERTY_AlbumName,
280  LIBMTP_PROPERTY_AlbumArtist,
281  LIBMTP_PROPERTY_Mood,
282  LIBMTP_PROPERTY_DRMStatus,
283  LIBMTP_PROPERTY_SubDescription,
284  LIBMTP_PROPERTY_IsCropped,
285  LIBMTP_PROPERTY_IsColorCorrected,
286  LIBMTP_PROPERTY_ImageBitDepth,
287  LIBMTP_PROPERTY_Fnumber,
288  LIBMTP_PROPERTY_ExposureTime,
289  LIBMTP_PROPERTY_ExposureIndex,
290  LIBMTP_PROPERTY_DisplayName,
291  LIBMTP_PROPERTY_BodyText,
292  LIBMTP_PROPERTY_Subject,
293  LIBMTP_PROPERTY_Priority,
294  LIBMTP_PROPERTY_GivenName,
295  LIBMTP_PROPERTY_MiddleNames,
296  LIBMTP_PROPERTY_FamilyName,
297  LIBMTP_PROPERTY_Prefix,
298  LIBMTP_PROPERTY_Suffix,
299  LIBMTP_PROPERTY_PhoneticGivenName,
300  LIBMTP_PROPERTY_PhoneticFamilyName,
301  LIBMTP_PROPERTY_EmailPrimary,
302  LIBMTP_PROPERTY_EmailPersonal1,
303  LIBMTP_PROPERTY_EmailPersonal2,
304  LIBMTP_PROPERTY_EmailBusiness1,
305  LIBMTP_PROPERTY_EmailBusiness2,
306  LIBMTP_PROPERTY_EmailOthers,
307  LIBMTP_PROPERTY_PhoneNumberPrimary,
308  LIBMTP_PROPERTY_PhoneNumberPersonal,
309  LIBMTP_PROPERTY_PhoneNumberPersonal2,
310  LIBMTP_PROPERTY_PhoneNumberBusiness,
311  LIBMTP_PROPERTY_PhoneNumberBusiness2,
312  LIBMTP_PROPERTY_PhoneNumberMobile,
313  LIBMTP_PROPERTY_PhoneNumberMobile2,
314  LIBMTP_PROPERTY_FaxNumberPrimary,
315  LIBMTP_PROPERTY_FaxNumberPersonal,
316  LIBMTP_PROPERTY_FaxNumberBusiness,
317  LIBMTP_PROPERTY_PagerNumber,
318  LIBMTP_PROPERTY_PhoneNumberOthers,
319  LIBMTP_PROPERTY_PrimaryWebAddress,
320  LIBMTP_PROPERTY_PersonalWebAddress,
321  LIBMTP_PROPERTY_BusinessWebAddress,
322  LIBMTP_PROPERTY_InstantMessengerAddress,
323  LIBMTP_PROPERTY_InstantMessengerAddress2,
324  LIBMTP_PROPERTY_InstantMessengerAddress3,
325  LIBMTP_PROPERTY_PostalAddressPersonalFull,
326  LIBMTP_PROPERTY_PostalAddressPersonalFullLine1,
327  LIBMTP_PROPERTY_PostalAddressPersonalFullLine2,
328  LIBMTP_PROPERTY_PostalAddressPersonalFullCity,
329  LIBMTP_PROPERTY_PostalAddressPersonalFullRegion,
330  LIBMTP_PROPERTY_PostalAddressPersonalFullPostalCode,
331  LIBMTP_PROPERTY_PostalAddressPersonalFullCountry,
332  LIBMTP_PROPERTY_PostalAddressBusinessFull,
333  LIBMTP_PROPERTY_PostalAddressBusinessLine1,
334  LIBMTP_PROPERTY_PostalAddressBusinessLine2,
335  LIBMTP_PROPERTY_PostalAddressBusinessCity,
336  LIBMTP_PROPERTY_PostalAddressBusinessRegion,
337  LIBMTP_PROPERTY_PostalAddressBusinessPostalCode,
338  LIBMTP_PROPERTY_PostalAddressBusinessCountry,
339  LIBMTP_PROPERTY_PostalAddressOtherFull,
340  LIBMTP_PROPERTY_PostalAddressOtherLine1,
341  LIBMTP_PROPERTY_PostalAddressOtherLine2,
342  LIBMTP_PROPERTY_PostalAddressOtherCity,
343  LIBMTP_PROPERTY_PostalAddressOtherRegion,
344  LIBMTP_PROPERTY_PostalAddressOtherPostalCode,
345  LIBMTP_PROPERTY_PostalAddressOtherCountry,
346  LIBMTP_PROPERTY_OrganizationName,
347  LIBMTP_PROPERTY_PhoneticOrganizationName,
348  LIBMTP_PROPERTY_Role,
349  LIBMTP_PROPERTY_Birthdate,
350  LIBMTP_PROPERTY_MessageTo,
351  LIBMTP_PROPERTY_MessageCC,
352  LIBMTP_PROPERTY_MessageBCC,
353  LIBMTP_PROPERTY_MessageRead,
354  LIBMTP_PROPERTY_MessageReceivedTime,
355  LIBMTP_PROPERTY_MessageSender,
356  LIBMTP_PROPERTY_ActivityBeginTime,
357  LIBMTP_PROPERTY_ActivityEndTime,
358  LIBMTP_PROPERTY_ActivityLocation,
359  LIBMTP_PROPERTY_ActivityRequiredAttendees,
360  LIBMTP_PROPERTY_ActivityOptionalAttendees,
361  LIBMTP_PROPERTY_ActivityResources,
362  LIBMTP_PROPERTY_ActivityAccepted,
363  LIBMTP_PROPERTY_Owner,
364  LIBMTP_PROPERTY_Editor,
365  LIBMTP_PROPERTY_Webmaster,
366  LIBMTP_PROPERTY_URLSource,
367  LIBMTP_PROPERTY_URLDestination,
368  LIBMTP_PROPERTY_TimeBookmark,
369  LIBMTP_PROPERTY_ObjectBookmark,
370  LIBMTP_PROPERTY_ByteBookmark,
371  LIBMTP_PROPERTY_LastBuildDate,
372  LIBMTP_PROPERTY_TimetoLive,
373  LIBMTP_PROPERTY_MediaGUID,
374  LIBMTP_PROPERTY_TotalBitRate,
375  LIBMTP_PROPERTY_BitRateType,
376  LIBMTP_PROPERTY_SampleRate,
377  LIBMTP_PROPERTY_NumberOfChannels,
378  LIBMTP_PROPERTY_AudioBitDepth,
379  LIBMTP_PROPERTY_ScanDepth,
380  LIBMTP_PROPERTY_AudioWAVECodec,
381  LIBMTP_PROPERTY_AudioBitRate,
382  LIBMTP_PROPERTY_VideoFourCCCodec,
383  LIBMTP_PROPERTY_VideoBitRate,
384  LIBMTP_PROPERTY_FramesPerThousandSeconds,
385  LIBMTP_PROPERTY_KeyFrameDistance,
386  LIBMTP_PROPERTY_BufferSize,
387  LIBMTP_PROPERTY_EncodingQuality,
388  LIBMTP_PROPERTY_EncodingProfile,
389  LIBMTP_PROPERTY_BuyFlag,
390  LIBMTP_PROPERTY_UNKNOWN
392 
396 typedef enum {
397  LIBMTP_DATATYPE_INT8,
398  LIBMTP_DATATYPE_UINT8,
399  LIBMTP_DATATYPE_INT16,
400  LIBMTP_DATATYPE_UINT16,
401  LIBMTP_DATATYPE_INT32,
402  LIBMTP_DATATYPE_UINT32,
403  LIBMTP_DATATYPE_INT64,
404  LIBMTP_DATATYPE_UINT64,
406 
410 typedef enum {
430 
435 typedef enum {
436  LIBMTP_ERROR_NONE,
437  LIBMTP_ERROR_GENERAL,
438  LIBMTP_ERROR_PTP_LAYER,
439  LIBMTP_ERROR_USB_LAYER,
440  LIBMTP_ERROR_MEMORY_ALLOCATION,
441  LIBMTP_ERROR_NO_DEVICE_ATTACHED,
442  LIBMTP_ERROR_STORAGE_FULL,
443  LIBMTP_ERROR_CONNECTING,
444  LIBMTP_ERROR_CANCELLED
446 
458 typedef struct LIBMTP_object_struct LIBMTP_object_t;
472 typedef int (* LIBMTP_progressfunc_t) (uint64_t const sent, uint64_t const total,
473  void const * const data);
474 
487 typedef uint16_t (* MTPDataGetFunc) (void* params, void* priv,
488  uint32_t wantlen, unsigned char *data, uint32_t *gotlen);
489 
502 typedef uint16_t (* MTPDataPutFunc) (void* params, void* priv,
503  uint32_t sendlen, unsigned char *data, uint32_t *putlen);
504 
508 #define LIBMTP_HANDLER_RETURN_OK 0
509 #define LIBMTP_HANDLER_RETURN_ERROR 1
510 #define LIBMTP_HANDLER_RETURN_CANCEL 2
511 
522  char *vendor;
523  uint16_t vendor_id;
524  char *product;
525  uint16_t product_id;
526  uint32_t device_flags;
527 };
528 
535  uint32_t bus_location;
536  uint8_t devnum;
537 };
538 
543  LIBMTP_error_number_t errornumber;
544  char *error_text;
545  LIBMTP_error_t *next;
546 };
547 
552  uint8_t u8max;
553  uint8_t u8min;
554  uint8_t u8step;
555  uint8_t* u8vals;
556  int8_t i8max;
557  int8_t i8min;
558  int8_t i8step;
559  int8_t* i8vals;
560  uint16_t u16max;
561  uint16_t u16min;
562  uint16_t u16step;
563  uint16_t* u16vals;
564  int16_t i16max;
565  int16_t i16min;
566  int16_t i16step;
567  int16_t* i16vals;
568  uint32_t u32max;
569  uint32_t u32min;
570  uint32_t u32step;
571  uint32_t* u32vals;
572  int32_t i32max;
573  int32_t i32min;
574  int32_t i32step;
575  int32_t* i32vals;
576  uint64_t u64max;
577  uint64_t u64min;
578  uint64_t u64step;
579  uint64_t* u64vals;
580  int64_t i64max;
581  int64_t i64min;
582  int64_t i64step;
583  int64_t* i64vals;
587  uint16_t num_entries;
595  int is_range;
596 };
597 
605  char *name;
609  int major;
613  int minor;
619 };
620 
628  uint8_t object_bitsize;
633  void *params;
638  void *usbinfo;
670  void *cd;
674  int cached;
675 
678 };
679 
684  uint32_t item_id;
685  uint32_t parent_id;
686  uint32_t storage_id;
687  char *filename;
688  uint64_t filesize;
692 };
693 
698  uint32_t item_id;
699  uint32_t parent_id;
700  uint32_t storage_id;
701  char *title;
702  char *artist;
703  char *composer;
704  char *genre;
705  char *album;
706  char *date;
707  char *filename;
708  uint16_t tracknumber;
709  uint32_t duration;
710  uint32_t samplerate;
711  uint16_t nochannels;
712  uint32_t wavecodec;
713  uint32_t bitrate;
714  uint16_t bitratetype;
715  uint16_t rating;
716  uint32_t usecount;
717  uint64_t filesize;
721 };
722 
727  uint32_t playlist_id;
728  uint32_t parent_id;
729  uint32_t storage_id;
730  char *name;
731  uint32_t *tracks;
732  uint32_t no_tracks;
734 };
735 
740  uint32_t album_id;
741  uint32_t parent_id;
742  uint32_t storage_id;
743  char *name;
744  char *artist;
745  char *composer;
746  char *genre;
747  uint32_t *tracks;
748  uint32_t no_tracks;
750 };
751 
756  uint32_t folder_id;
757  uint32_t parent_id;
758  uint32_t storage_id;
759  char *name;
762 };
763 
768  uint32_t width;
769  uint32_t height;
770  uint32_t duration;
772  uint64_t size;
773  char *data;
774 };
775 
780  uint32_t id;
781  uint16_t StorageType;
782  uint16_t FilesystemType;
783  uint16_t AccessCapability;
784  uint64_t MaxCapacity;
785  uint64_t FreeSpaceInBytes;
791 };
792 
798  LIBMTP_EVENT_NONE,
799  LIBMTP_EVENT_STORE_ADDED,
800  LIBMTP_EVENT_STORE_REMOVED,
801  LIBMTP_EVENT_OBJECT_ADDED,
802  LIBMTP_EVENT_OBJECT_REMOVED,
803 };
804 typedef enum LIBMTP_event_enum LIBMTP_event_t;
805 
808 /* Make functions available for C++ */
809 #ifdef __cplusplus
810 extern "C" {
811 #endif
812 
813 extern int LIBMTP_debug;
814 
819 void LIBMTP_Set_Debug(int);
820 void LIBMTP_Init(void);
828 int LIBMTP_Check_Specific_Device(int busno, int devno);
829 LIBMTP_mtpdevice_t *LIBMTP_Open_Raw_Device(LIBMTP_raw_device_t *);
831 /* Begin old, legacy interface */
836 /* End old, legacy interface */
845 int LIBMTP_Set_Friendlyname(LIBMTP_mtpdevice_t*, char const * const);
847 int LIBMTP_Set_Syncpartner(LIBMTP_mtpdevice_t*, char const * const);
849  uint8_t * const,
850  uint8_t * const);
851 int LIBMTP_Get_Secure_Time(LIBMTP_mtpdevice_t *, char ** const);
853 int LIBMTP_Get_Supported_Filetypes(LIBMTP_mtpdevice_t *, uint16_t ** const, uint16_t * const);
858 
859 #define LIBMTP_STORAGE_SORTBY_NOTSORTED 0
860 #define LIBMTP_STORAGE_SORTBY_FREESPACE 1
861 #define LIBMTP_STORAGE_SORTBY_MAXSPACE 2
862 
863 int LIBMTP_Get_Storage(LIBMTP_mtpdevice_t *, int const);
865 
871 uint64_t LIBMTP_Get_u64_From_Object(LIBMTP_mtpdevice_t *, uint32_t const,
872  LIBMTP_property_t const, uint64_t const);
873 uint32_t LIBMTP_Get_u32_From_Object(LIBMTP_mtpdevice_t *, uint32_t const,
874  LIBMTP_property_t const, uint32_t const);
875 uint16_t LIBMTP_Get_u16_From_Object(LIBMTP_mtpdevice_t *, uint32_t const,
876  LIBMTP_property_t const, uint16_t const);
877 uint8_t LIBMTP_Get_u8_From_Object(LIBMTP_mtpdevice_t *, uint32_t const,
878  LIBMTP_property_t const, uint8_t const);
879 int LIBMTP_Set_Object_String(LIBMTP_mtpdevice_t *, uint32_t const,
880  LIBMTP_property_t const, char const * const);
881 int LIBMTP_Set_Object_u32(LIBMTP_mtpdevice_t *, uint32_t const,
882  LIBMTP_property_t const, uint32_t const);
883 int LIBMTP_Set_Object_u16(LIBMTP_mtpdevice_t *, uint32_t const,
884  LIBMTP_property_t const, uint16_t const);
885 int LIBMTP_Set_Object_u8(LIBMTP_mtpdevice_t *, uint32_t const,
886  LIBMTP_property_t const, uint8_t const);
887 char const * LIBMTP_Get_Property_Description(LIBMTP_property_t inproperty);
889  LIBMTP_filetype_t const);
893 
904  LIBMTP_progressfunc_t const, void const * const);
905 
906 #define LIBMTP_FILES_AND_FOLDERS_ROOT 0xffffffff
907 
909  uint32_t const,
910  uint32_t const);
912 int LIBMTP_Get_File_To_File(LIBMTP_mtpdevice_t*, uint32_t, char const * const,
913  LIBMTP_progressfunc_t const, void const * const);
915  uint32_t const,
916  int const,
917  LIBMTP_progressfunc_t const,
918  void const * const);
920  uint32_t const,
922  void *,
923  LIBMTP_progressfunc_t const,
924  void const * const);
926  char const * const,
927  LIBMTP_file_t * const,
928  LIBMTP_progressfunc_t const,
929  void const * const);
931  int const,
932  LIBMTP_file_t * const,
933  LIBMTP_progressfunc_t const,
934  void const * const);
936  MTPDataGetFunc, void *,
937  LIBMTP_file_t * const,
938  LIBMTP_progressfunc_t const,
939  void const * const);
941  LIBMTP_file_t *,
942  const char *);
946  LIBMTP_filetype_t const,
952 int LIBMTP_Get_Thumbnail(LIBMTP_mtpdevice_t *, uint32_t const,
953  unsigned char **data, unsigned int *size);
954 
964  LIBMTP_progressfunc_t const, void const * const);
966  LIBMTP_progressfunc_t const, void const * const);
968 int LIBMTP_Get_Track_To_File(LIBMTP_mtpdevice_t*, uint32_t, char const * const,
969  LIBMTP_progressfunc_t const, void const * const);
970 int LIBMTP_Get_Track_To_File_Descriptor(LIBMTP_mtpdevice_t*, uint32_t const, int const,
971  LIBMTP_progressfunc_t const, void const * const);
973  void *, LIBMTP_progressfunc_t const, void const * const);
975  char const * const, LIBMTP_track_t * const,
976  LIBMTP_progressfunc_t const,
977  void const * const);
979  int const, LIBMTP_track_t * const,
980  LIBMTP_progressfunc_t const,
981  void const * const);
983  MTPDataGetFunc, void *, LIBMTP_track_t * const,
984  LIBMTP_progressfunc_t const,
985  void const * const);
987  LIBMTP_track_t const * const);
988 int LIBMTP_Track_Exists(LIBMTP_mtpdevice_t *, uint32_t const);
1001  uint32_t const);
1003 uint32_t LIBMTP_Create_Folder(LIBMTP_mtpdevice_t*, char *, uint32_t, uint32_t);
1020 
1034 
1040 int LIBMTP_Delete_Object(LIBMTP_mtpdevice_t *, uint32_t);
1041 int LIBMTP_Set_Object_Filename(LIBMTP_mtpdevice_t *, uint32_t , char *);
1042 int LIBMTP_GetPartialObject(LIBMTP_mtpdevice_t *, uint32_t const,
1043  uint64_t, uint32_t,
1044  unsigned char **, unsigned int *);
1045 int LIBMTP_SendPartialObject(LIBMTP_mtpdevice_t *, uint32_t const,
1046  uint64_t, unsigned char *, unsigned int);
1047 int LIBMTP_BeginEditObject(LIBMTP_mtpdevice_t *, uint32_t const);
1048 int LIBMTP_EndEditObject(LIBMTP_mtpdevice_t *, uint32_t const);
1049 int LIBMTP_TruncateObject(LIBMTP_mtpdevice_t *, uint32_t const, uint64_t);
1050 
1056 typedef void(* LIBMTP_event_cb_fn) (int, LIBMTP_event_t, uint32_t, void *);
1057 int LIBMTP_Read_Event(LIBMTP_mtpdevice_t *, LIBMTP_event_t *, uint32_t *);
1058 int LIBMTP_Read_Event_Async(LIBMTP_mtpdevice_t *, LIBMTP_event_cb_fn, void *);
1059 int LIBMTP_Handle_Events_Timeout_Completed(struct timeval *, int *);
1060 
1066 int LIBMTP_Custom_Operation(LIBMTP_mtpdevice_t *, uint16_t, int, ...);
1067 
1070 /* End of C++ exports */
1071 #ifdef __cplusplus
1072 }
1073 #endif
1074 
1075 #endif /* LIBMTP_H_INCLUSION_GUARD */
1076 
LIBMTP_track_struct::bitrate
uint32_t bitrate
Definition: libmtp.h:713
_PTPObjectHandles
Definition: ptp.h:948
LIBMTP_Set_Syncpartner
int LIBMTP_Set_Syncpartner(LIBMTP_mtpdevice_t *device, char const *const syncpartner)
Definition: libmtp.c:3747
LIBMTP_Get_Playlist_List
LIBMTP_playlist_t * LIBMTP_Get_Playlist_List(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:7478
LIBMTP_mtpdevice_struct::errorstack
LIBMTP_error_t * errorstack
Definition: libmtp.h:650
LIBMTP_track_struct
Definition: libmtp.h:697
LIBMTP_Find_Folder
LIBMTP_folder_t * LIBMTP_Find_Folder(LIBMTP_folder_t *folderlist, uint32_t id)
Definition: libmtp.c:7148
LIBMTP_mtpdevice_struct::storage
LIBMTP_devicestorage_t * storage
Definition: libmtp.h:645
LIBMTP_debug
int LIBMTP_debug
Definition: libmtp.c:88
LIBMTP_Get_Track_To_File
int LIBMTP_Get_Track_To_File(LIBMTP_mtpdevice_t *device, uint32_t const id, char const *const path, LIBMTP_progressfunc_t const callback, void const *const data)
Definition: libmtp.c:5382
LIBMTP_Reset_Device
int LIBMTP_Reset_Device(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:3542
LIBMTP_Get_Filelisting_With_Callback
LIBMTP_file_t * LIBMTP_Get_Filelisting_With_Callback(LIBMTP_mtpdevice_t *device, LIBMTP_progressfunc_t const callback, void const *const data)
Definition: libmtp.c:4416
LIBMTP_Send_File_From_File
int LIBMTP_Send_File_From_File(LIBMTP_mtpdevice_t *device, char const *const path, LIBMTP_file_t *const filedata, LIBMTP_progressfunc_t const callback, void const *const data)
Definition: libmtp.c:5816
LIBMTP_Get_Album_List_For_Storage
LIBMTP_album_t * LIBMTP_Get_Album_List_For_Storage(LIBMTP_mtpdevice_t *device, uint32_t const storage_id)
Definition: libmtp.c:8454
LIBMTP_track_struct::genre
char * genre
Definition: libmtp.h:704
LIBMTP_new_folder_t
LIBMTP_folder_t * LIBMTP_new_folder_t(void)
Definition: libmtp.c:7094
LIBMTP_Get_Secure_Time
int LIBMTP_Get_Secure_Time(LIBMTP_mtpdevice_t *device, char **const sectime)
Definition: libmtp.c:3942
LIBMTP_Get_Files_And_Folders
LIBMTP_file_t * LIBMTP_Get_Files_And_Folders(LIBMTP_mtpdevice_t *device, uint32_t const storage, uint32_t const parent)
Definition: libmtp.c:4481
_PTPPropertyValue
Definition: ptp.h:1138
LIBMTP_mtpdevice_struct::default_album_folder
uint32_t default_album_folder
Definition: libmtp.h:666
LIBMTP_album_struct::genre
char * genre
Definition: libmtp.h:746
LIBMTP_devicestorage_struct::VolumeIdentifier
char * VolumeIdentifier
Definition: libmtp.h:788
LIBMTP_filesampledata_struct::duration
uint32_t duration
Definition: libmtp.h:770
_PTPParams
Definition: ptp.h:2446
LIBMTP_Set_Object_String
int LIBMTP_Set_Object_String(LIBMTP_mtpdevice_t *device, uint32_t const object_id, LIBMTP_property_t const attribute_id, char const *const string)
Definition: libmtp.c:1275
LIBMTP_Get_u64_From_Object
uint64_t LIBMTP_Get_u64_From_Object(LIBMTP_mtpdevice_t *device, uint32_t const object_id, LIBMTP_property_t const attribute_id, uint64_t const value_default)
Definition: libmtp.c:1215
LIBMTP_device_extension_struct::name
char * name
Definition: libmtp.h:605
LIBMTP_mtpdevice_struct::maximum_battery_level
uint8_t maximum_battery_level
Definition: libmtp.h:652
LIBMTP_Get_Filelisting
LIBMTP_file_t * LIBMTP_Get_Filelisting(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:4368
MTPDataHandler
struct _MTPDataHandler MTPDataHandler
LIBMTP_device_extension_struct::major
int major
Definition: libmtp.h:609
LIBMTP_album_struct::parent_id
uint32_t parent_id
Definition: libmtp.h:741
LIBMTP_track_struct::filetype
LIBMTP_filetype_t filetype
Definition: libmtp.h:719
LIBMTP_Get_u16_From_Object
uint16_t LIBMTP_Get_u16_From_Object(LIBMTP_mtpdevice_t *device, uint32_t const object_id, LIBMTP_property_t const attribute_id, uint16_t const value_default)
Definition: libmtp.c:1245
LIBMTP_folder_struct::parent_id
uint32_t parent_id
Definition: libmtp.h:757
LIBMTP_devicestorage_struct::prev
LIBMTP_devicestorage_t * prev
Definition: libmtp.h:790
LIBMTP_FILETYPE_IS_VIDEO
#define LIBMTP_FILETYPE_IS_VIDEO(a)
Definition: libmtp.h:160
LIBMTP_device_extension_struct::minor
int minor
Definition: libmtp.h:613
LIBMTP_Is_Property_Supported
int LIBMTP_Is_Property_Supported(LIBMTP_mtpdevice_t *device, LIBMTP_property_t const property, LIBMTP_filetype_t const filetype)
Definition: libmtp.c:1159
_PTPStorageIDs
Definition: ptp.h:927
LIBMTP_Set_Object_u32
int LIBMTP_Set_Object_u32(LIBMTP_mtpdevice_t *device, uint32_t const object_id, LIBMTP_property_t const attribute_id, uint32_t const value)
Definition: libmtp.c:1291
strip_7bit_from_utf8
void strip_7bit_from_utf8(char *str)
Definition: unicode.c:152
MTPDataPutFunc
uint16_t(* MTPDataPutFunc)(void *params, void *priv, uint32_t sendlen, unsigned char *data, uint32_t *putlen)
Definition: libmtp.h:502
event_cb_data_struct
Definition: libmtp.c:122
LIBMTP_mtpdevice_struct::default_text_folder
uint32_t default_text_folder
Definition: libmtp.h:668
LIBMTP_devicestorage_struct::MaxCapacity
uint64_t MaxCapacity
Definition: libmtp.h:784
LIBMTP_track_struct::album
char * album
Definition: libmtp.h:705
DEVICE_FLAG_FLAC_IS_UNKNOWN
#define DEVICE_FLAG_FLAC_IS_UNKNOWN
Definition: device-flags.h:249
LIBMTP_filetype_t
LIBMTP_filetype_t
Definition: libmtp.h:86
configure_usb_device
LIBMTP_error_number_t configure_usb_device(LIBMTP_raw_device_t *device, PTPParams *params, void **usbinfo)
Definition: libopenusb1-glue.c:2059
LIBMTP_error_number_t
LIBMTP_error_number_t
Definition: libmtp.h:435
LIBMTP_destroy_allowed_values_t
void LIBMTP_destroy_allowed_values_t(LIBMTP_allowed_values_t *allowed_vals)
Definition: libmtp.c:1110
LIBMTP_playlist_struct::parent_id
uint32_t parent_id
Definition: libmtp.h:728
LIBMTP_Custom_Operation
int LIBMTP_Custom_Operation(LIBMTP_mtpdevice_t *device, uint16_t code, int n_param,...)
Definition: libmtp.c:9167
LIBMTP_filesampledata_struct
Definition: libmtp.h:767
LIBMTP_Get_Track_To_File_Descriptor
int LIBMTP_Get_Track_To_File_Descriptor(LIBMTP_mtpdevice_t *device, uint32_t const id, int const fd, LIBMTP_progressfunc_t const callback, void const *const data)
Definition: libmtp.c:5406
LIBMTP_raw_device_struct::devnum
uint8_t devnum
Definition: libmtp.h:536
LIBMTP_devicestorage_struct::next
LIBMTP_devicestorage_t * next
Definition: libmtp.h:789
LIBMTP_file_struct::next
LIBMTP_file_t * next
Definition: libmtp.h:691
LIBMTP_DEVICECAP_SendPartialObject
@ LIBMTP_DEVICECAP_SendPartialObject
Definition: libmtp.h:420
LIBMTP_album_struct
Definition: libmtp.h:739
LIBMTP_filesampledata_struct::size
uint64_t size
Definition: libmtp.h:772
LIBMTP_Open_Raw_Device_Uncached
LIBMTP_mtpdevice_t * LIBMTP_Open_Raw_Device_Uncached(LIBMTP_raw_device_t *rawdevice)
Definition: libmtp.c:1831
LIBMTP_Get_Representative_Sample_Format
int LIBMTP_Get_Representative_Sample_Format(LIBMTP_mtpdevice_t *device, LIBMTP_filetype_t const filetype, LIBMTP_filesampledata_t **sample)
Definition: libmtp.c:8673
LIBMTP_mtpdevice_struct::extensions
LIBMTP_device_extension_t * extensions
Definition: libmtp.h:672
LIBMTP_device_entry_struct
Definition: libmtp.h:521
LIBMTP_devicestorage_struct
Definition: libmtp.h:779
LIBMTP_Clear_Errorstack
void LIBMTP_Clear_Errorstack(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:2538
LIBMTP_raw_device_struct::bus_location
uint32_t bus_location
Definition: libmtp.h:535
LIBMTP_Set_Object_u8
int LIBMTP_Set_Object_u8(LIBMTP_mtpdevice_t *device, uint32_t const object_id, LIBMTP_property_t const attribute_id, uint8_t const value)
Definition: libmtp.c:1321
LIBMTP_track_struct::storage_id
uint32_t storage_id
Definition: libmtp.h:700
device-flags.h
propertymap_struct::description
char * description
Definition: libmtp.c:112
filemap_struct::ptp_id
uint16_t ptp_id
Definition: libmtp.c:101
LIBMTP_device_entry_struct::vendor
char * vendor
Definition: libmtp.h:522
LIBMTP_Get_String_From_Object
char * LIBMTP_Get_String_From_Object(LIBMTP_mtpdevice_t *device, uint32_t const object_id, LIBMTP_property_t const attribute_id)
Definition: libmtp.c:1200
LIBMTP_file_struct::modificationdate
time_t modificationdate
Definition: libmtp.h:689
_PTPObject
Definition: ptp.h:2415
LIBMTP_mtpdevice_struct::default_organizer_folder
uint32_t default_organizer_folder
Definition: libmtp.h:662
LIBMTP_folder_struct
Definition: libmtp.h:755
LIBMTP_device_extension_struct
Definition: libmtp.h:601
_PTP_USB
Definition: libusb-glue.h:83
LIBMTP_track_struct::parent_id
uint32_t parent_id
Definition: libmtp.h:699
LIBMTP_Create_New_Playlist
int LIBMTP_Create_New_Playlist(LIBMTP_mtpdevice_t *device, LIBMTP_playlist_t *const metadata)
Definition: libmtp.c:8191
LIBMTP_filesampledata_struct::data
char * data
Definition: libmtp.h:773
LIBMTP_devicestorage_struct::StorageDescription
char * StorageDescription
Definition: libmtp.h:787
LIBMTP_mtpdevice_struct::params
void * params
Definition: libmtp.h:633
LIBMTP_HANDLER_RETURN_OK
#define LIBMTP_HANDLER_RETURN_OK
Definition: libmtp.h:508
LIBMTP_Get_Tracklisting
LIBMTP_track_t * LIBMTP_Get_Tracklisting(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:4823
_PTPObjectInfo
Definition: ptp.h:960
LIBMTP_Set_File_Name
int LIBMTP_Set_File_Name(LIBMTP_mtpdevice_t *device, LIBMTP_file_t *file, const char *newname)
Definition: libmtp.c:6882
LIBMTP_file_struct::filesize
uint64_t filesize
Definition: libmtp.h:688
LIBMTP_Create_New_Album
int LIBMTP_Create_New_Album(LIBMTP_mtpdevice_t *device, LIBMTP_album_t *const metadata)
Definition: libmtp.c:8582
LIBMTP_Get_Allowed_Property_Values
int LIBMTP_Get_Allowed_Property_Values(LIBMTP_mtpdevice_t *device, LIBMTP_property_t const property, LIBMTP_filetype_t const filetype, LIBMTP_allowed_values_t *allowed_vals)
Definition: libmtp.c:962
LIBMTP_devicecap_t
LIBMTP_devicecap_t
Definition: libmtp.h:410
LIBMTP_new_playlist_t
LIBMTP_playlist_t * LIBMTP_new_playlist_t(void)
Definition: libmtp.c:7430
LIBMTP_mtpdevice_struct::object_bitsize
uint8_t object_bitsize
Definition: libmtp.h:628
LIBMTP_track_struct::next
LIBMTP_track_t * next
Definition: libmtp.h:720
LIBMTP_DEVICECAP_EditObjects
@ LIBMTP_DEVICECAP_EditObjects
Definition: libmtp.h:428
LIBMTP_mtpdevice_struct::default_video_folder
uint32_t default_video_folder
Definition: libmtp.h:660
LIBMTP_Update_Playlist
int LIBMTP_Update_Playlist(LIBMTP_mtpdevice_t *device, LIBMTP_playlist_t *const metadata)
Definition: libmtp.c:8243
LIBMTP_track_struct::title
char * title
Definition: libmtp.h:701
utf16_to_utf8
char * utf16_to_utf8(LIBMTP_mtpdevice_t *device, const uint16_t *unicstr)
Definition: unicode.c:79
LIBMTP_track_struct::rating
uint16_t rating
Definition: libmtp.h:715
LIBMTP_Get_Playlist
LIBMTP_playlist_t * LIBMTP_Get_Playlist(LIBMTP_mtpdevice_t *device, uint32_t const plid)
Definition: libmtp.c:7556
filemap_struct::description
char * description
Definition: libmtp.c:99
LIBMTP_album_struct::storage_id
uint32_t storage_id
Definition: libmtp.h:742
LIBMTP_track_struct::bitratetype
uint16_t bitratetype
Definition: libmtp.h:714
LIBMTP_allowed_values_struct
Definition: libmtp.h:551
LIBMTP_mtpdevice_struct::default_picture_folder
uint32_t default_picture_folder
Definition: libmtp.h:658
LIBMTP_Update_Track_Metadata
int LIBMTP_Update_Track_Metadata(LIBMTP_mtpdevice_t *device, LIBMTP_track_t const *const metadata)
Definition: libmtp.c:6382
LIBMTP_Get_Thumbnail
int LIBMTP_Get_Thumbnail(LIBMTP_mtpdevice_t *device, uint32_t const id, unsigned char **data, unsigned int *size)
Definition: libmtp.c:8973
LIBMTP_Get_Filemetadata
LIBMTP_file_t * LIBMTP_Get_Filemetadata(LIBMTP_mtpdevice_t *device, uint32_t const fileid)
Definition: libmtp.c:4344
LIBMTP_Get_Connected_Devices
LIBMTP_error_number_t LIBMTP_Get_Connected_Devices(LIBMTP_mtpdevice_t **device_list)
Definition: libmtp.c:2367
LIBMTP_Read_Event_Async
int LIBMTP_Read_Event_Async(LIBMTP_mtpdevice_t *device, LIBMTP_event_cb_fn cb, void *user_data)
Definition: libmtp.c:2299
LIBMTP_Track_Exists
int LIBMTP_Track_Exists(LIBMTP_mtpdevice_t *device, uint32_t const id)
Definition: libmtp.c:7071
LIBMTP_Get_Syncpartner
char * LIBMTP_Get_Syncpartner(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:3709
LIBMTP_Get_File_To_Handler
int LIBMTP_Get_File_To_Handler(LIBMTP_mtpdevice_t *device, uint32_t const id, MTPDataPutFunc put_func, void *priv, LIBMTP_progressfunc_t const callback, void const *const data)
Definition: libmtp.c:5307
LIBMTP_filesampledata_struct::filetype
LIBMTP_filetype_t filetype
Definition: libmtp.h:771
LIBMTP_track_struct::modificationdate
time_t modificationdate
Definition: libmtp.h:718
LIBMTP_Create_Folder
uint32_t LIBMTP_Create_Folder(LIBMTP_mtpdevice_t *device, char *name, uint32_t parent_id, uint32_t storage_id)
Definition: libmtp.c:7347
LIBMTP_allowed_values_struct::datatype
LIBMTP_datatype_t datatype
Definition: libmtp.h:591
LIBMTP_Get_Folder_List
LIBMTP_folder_t * LIBMTP_Get_Folder_List(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:7323
LIBMTP_track_struct::composer
char * composer
Definition: libmtp.h:703
LIBMTP_track_struct::duration
uint32_t duration
Definition: libmtp.h:709
LIBMTP_devicestorage_struct::FreeSpaceInBytes
uint64_t FreeSpaceInBytes
Definition: libmtp.h:785
LIBMTP_file_struct
Definition: libmtp.h:683
LIBMTP_progressfunc_t
int(* LIBMTP_progressfunc_t)(uint64_t const sent, uint64_t const total, void const *const data)
Definition: libmtp.h:472
LIBMTP_mtpdevice_struct::usbinfo
void * usbinfo
Definition: libmtp.h:638
_PTPDataHandler
Definition: ptp.h:2383
LIBMTP_Send_Track_From_File_Descriptor
int LIBMTP_Send_Track_From_File_Descriptor(LIBMTP_mtpdevice_t *device, int const fd, LIBMTP_track_t *const metadata, LIBMTP_progressfunc_t const callback, void const *const data)
Definition: libmtp.c:5613
LIBMTP_Send_Track_From_Handler
int LIBMTP_Send_Track_From_Handler(LIBMTP_mtpdevice_t *device, MTPDataGetFunc get_func, void *priv, LIBMTP_track_t *const metadata, LIBMTP_progressfunc_t const callback, void const *const data)
Definition: libmtp.c:5717
LIBMTP_Check_Specific_Device
int LIBMTP_Check_Specific_Device(int busno, int devno)
Definition: libopenusb1-glue.c:556
LIBMTP_Get_Filetype_Description
const char * LIBMTP_Get_Filetype_Description(LIBMTP_filetype_t intype)
Definition: libmtp.c:806
LIBMTP_object_t
struct LIBMTP_object_struct LIBMTP_object_t
Definition: libmtp.h:458
LIBMTP_Get_First_Device
LIBMTP_mtpdevice_t * LIBMTP_Get_First_Device(void)
Definition: libmtp.c:1686
LIBMTP_new_track_t
LIBMTP_track_t * LIBMTP_new_track_t(void)
Definition: libmtp.c:4576
LIBMTP_folder_struct::child
LIBMTP_folder_t * child
Definition: libmtp.h:761
LIBMTP_Get_Deviceversion
char * LIBMTP_Get_Deviceversion(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:3624
LIBMTP_folder_struct::storage_id
uint32_t storage_id
Definition: libmtp.h:758
LIBMTP_Send_Track_From_File
int LIBMTP_Send_Track_From_File(LIBMTP_mtpdevice_t *device, char const *const path, LIBMTP_track_t *const metadata, LIBMTP_progressfunc_t const callback, void const *const data)
Definition: libmtp.c:5481
_PTPObjectPropDesc
Definition: ptp.h:1199
LIBMTP_file_struct::filetype
LIBMTP_filetype_t filetype
Definition: libmtp.h:690
LIBMTP_allowed_values_struct::is_range
int is_range
Definition: libmtp.h:595
LIBMTP_Init
void LIBMTP_Init(void)
Definition: libmtp.c:773
LIBMTP_file_struct::filename
char * filename
Definition: libmtp.h:687
DEVICE_FLAGS_ANDROID_BUGS
#define DEVICE_FLAGS_ANDROID_BUGS
Definition: device-flags.h:309
LIBMTP_Get_Batterylevel
int LIBMTP_Get_Batterylevel(LIBMTP_mtpdevice_t *device, uint8_t *const maximum_level, uint8_t *const current_level)
Definition: libmtp.c:3816
LIBMTP_Send_File_From_Handler
int LIBMTP_Send_File_From_Handler(LIBMTP_mtpdevice_t *device, MTPDataGetFunc get_func, void *priv, LIBMTP_file_t *const filedata, LIBMTP_progressfunc_t const callback, void const *const data)
Definition: libmtp.c:6011
LIBMTP_devicestorage_struct::FilesystemType
uint16_t FilesystemType
Definition: libmtp.h:782
LIBMTP_Set_Track_Name
int LIBMTP_Set_Track_Name(LIBMTP_mtpdevice_t *device, LIBMTP_track_t *track, const char *newname)
Definition: libmtp.c:6942
_PTP_USB::rawdevice
LIBMTP_raw_device_t rawdevice
Definition: libusb-glue.h:111
LIBMTP_Dump_Errorstack
void LIBMTP_Dump_Errorstack(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:2565
LIBMTP_playlist_struct::next
LIBMTP_playlist_t * next
Definition: libmtp.h:733
dump_usbinfo
void dump_usbinfo(PTP_USB *ptp_usb)
Definition: libopenusb1-glue.c:683
LIBMTP_track_struct::filename
char * filename
Definition: libmtp.h:707
LIBMTP_destroy_filesampledata_t
void LIBMTP_destroy_filesampledata_t(LIBMTP_filesampledata_t *sample)
Definition: libmtp.c:8639
LIBMTP_track_struct::item_id
uint32_t item_id
Definition: libmtp.h:698
LIBMTP_Get_Representative_Sample
int LIBMTP_Get_Representative_Sample(LIBMTP_mtpdevice_t *device, uint32_t const id, LIBMTP_filesampledata_t *sampledata)
Definition: libmtp.c:8901
LIBMTP_file_struct::parent_id
uint32_t parent_id
Definition: libmtp.h:685
LIBMTP_Get_Serialnumber
char * LIBMTP_Get_Serialnumber(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:3605
LIBMTP_Get_u8_From_Object
uint8_t LIBMTP_Get_u8_From_Object(LIBMTP_mtpdevice_t *device, uint32_t const object_id, LIBMTP_property_t const attribute_id, uint8_t const value_default)
Definition: libmtp.c:1260
LIBMTP_Dump_Device_Info
void LIBMTP_Dump_Device_Info(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:3145
DEVICE_FLAGS_ARICENT_BUGS
#define DEVICE_FLAGS_ARICENT_BUGS
Definition: device-flags.h:330
LIBMTP_debug
int LIBMTP_debug
Definition: libmtp.c:88
propertymap_struct::ptp_id
uint16_t ptp_id
Definition: libmtp.c:114
LIBMTP_Get_Modelname
char * LIBMTP_Get_Modelname(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:3587
LIBMTP_FILETYPE_IS_TRACK
#define LIBMTP_FILETYPE_IS_TRACK(a)
Definition: libmtp.h:181
LIBMTP_error_struct
Definition: libmtp.h:542
DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST
#define DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST
Definition: device-flags.h:205
LIBMTP_filesampledata_struct::width
uint32_t width
Definition: libmtp.h:768
LIBMTP_DEVICECAP_GetPartialObject
@ LIBMTP_DEVICECAP_GetPartialObject
Definition: libmtp.h:415
LIBMTP_mtpdevice_struct::cached
int cached
Definition: libmtp.h:674
LIBMTP_raw_device_struct
Definition: libmtp.h:533
ptp_nikon_getptpipguid
void ptp_nikon_getptpipguid(unsigned char *guid)
Definition: libmtp.c:9125
LIBMTP_Send_File_From_File_Descriptor
int LIBMTP_Send_File_From_File_Descriptor(LIBMTP_mtpdevice_t *device, int const fd, LIBMTP_file_t *const filedata, LIBMTP_progressfunc_t const callback, void const *const data)
Definition: libmtp.c:5894
_PTPContainer
Definition: ptp.h:50
LIBMTP_Get_File_To_File_Descriptor
int LIBMTP_Get_File_To_File_Descriptor(LIBMTP_mtpdevice_t *device, uint32_t const id, int const fd, LIBMTP_progressfunc_t const callback, void const *const data)
Definition: libmtp.c:5243
LIBMTP_track_struct::date
char * date
Definition: libmtp.h:706
LIBMTP_Get_Friendlyname
char * LIBMTP_Get_Friendlyname(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:3646
LIBMTP_event_enum
LIBMTP_event_enum
Definition: libmtp.h:797
LIBMTP_track_struct::artist
char * artist
Definition: libmtp.h:702
LIBMTP_Set_Album_Name
int LIBMTP_Set_Album_Name(LIBMTP_mtpdevice_t *device, LIBMTP_album_t *album, const char *newname)
Definition: libmtp.c:7016
LIBMTP_Get_Property_Description
const char * LIBMTP_Get_Property_Description(LIBMTP_property_t inproperty)
Definition: libmtp.c:829
DEVICE_FLAGS_SONY_NWZ_BUGS
#define DEVICE_FLAGS_SONY_NWZ_BUGS
Definition: device-flags.h:297
LIBMTP_destroy_album_t
void LIBMTP_destroy_album_t(LIBMTP_album_t *album)
Definition: libmtp.c:8299
LIBMTP_allowed_values_struct::num_entries
uint16_t num_entries
Definition: libmtp.h:587
LIBMTP_Get_Track_To_Handler
int LIBMTP_Get_Track_To_Handler(LIBMTP_mtpdevice_t *device, uint32_t const id, MTPDataPutFunc put_func, void *priv, LIBMTP_progressfunc_t const callback, void const *const data)
Definition: libmtp.c:5433
_MTPProperties
Definition: ptp.h:1158
LIBMTP_property_t
LIBMTP_property_t
Definition: libmtp.h:222
LIBMTP_track_struct::filesize
uint64_t filesize
Definition: libmtp.h:717
LIBMTP_devicestorage_struct::AccessCapability
uint16_t AccessCapability
Definition: libmtp.h:783
propertymap_struct
Definition: libmtp.c:111
LIBMTP_track_struct::wavecodec
uint32_t wavecodec
Definition: libmtp.h:712
LIBMTP_Read_Event
int LIBMTP_Read_Event(LIBMTP_mtpdevice_t *device, LIBMTP_event_t *event, uint32_t *out1)
Definition: libmtp.c:2156
LIBMTP_Get_File_To_File
int LIBMTP_Get_File_To_File(LIBMTP_mtpdevice_t *device, uint32_t const id, char const *const path, LIBMTP_progressfunc_t const callback, void const *const data)
Definition: libmtp.c:5183
LIBMTP_device_entry_struct::vendor_id
uint16_t vendor_id
Definition: libmtp.h:523
propertymap_struct::id
LIBMTP_property_t id
Definition: libmtp.c:113
LIBMTP_Get_Supported_Filetypes
int LIBMTP_Get_Supported_Filetypes(LIBMTP_mtpdevice_t *device, uint16_t **const filetypes, uint16_t *const length)
Definition: libmtp.c:3977
LIBMTP_Number_Devices_In_List
uint32_t LIBMTP_Number_Devices_In_List(LIBMTP_mtpdevice_t *device_list)
Definition: libmtp.c:2349
LIBMTP_track_struct::usecount
uint32_t usecount
Definition: libmtp.h:716
LIBMTP_device_extension_struct::next
LIBMTP_device_extension_t * next
Definition: libmtp.h:618
LIBMTP_album_struct::name
char * name
Definition: libmtp.h:743
LIBMTP_playlist_struct::storage_id
uint32_t storage_id
Definition: libmtp.h:729
get_playlist_extension
const char * get_playlist_extension(PTP_USB *ptp_usb)
Definition: libopenusb1-glue.c:716
LIBMTP_mtpdevice_struct::next
LIBMTP_mtpdevice_t * next
Definition: libmtp.h:677
LIBMTP_Get_Folder_List_For_Storage
LIBMTP_folder_t * LIBMTP_Get_Folder_List_For_Storage(LIBMTP_mtpdevice_t *device, uint32_t const storage)
Definition: libmtp.c:7217
LIBMTP_FILETYPE_IS_AUDIO
#define LIBMTP_FILETYPE_IS_AUDIO(a)
Definition: libmtp.h:141
LIBMTP_Check_Capability
int LIBMTP_Check_Capability(LIBMTP_mtpdevice_t *device, LIBMTP_devicecap_t cap)
Definition: libmtp.c:4027
filemap_struct
Definition: libmtp.c:98
LIBMTP_track_struct::samplerate
uint32_t samplerate
Definition: libmtp.h:710
LIBMTP_album_struct::next
LIBMTP_album_t * next
Definition: libmtp.h:749
LIBMTP_playlist_struct::playlist_id
uint32_t playlist_id
Definition: libmtp.h:727
LIBMTP_destroy_playlist_t
void LIBMTP_destroy_playlist_t(LIBMTP_playlist_t *playlist)
Definition: libmtp.c:7453
LIBMTP_album_struct::artist
char * artist
Definition: libmtp.h:744
unicode.h
LIBMTP_Format_Storage
int LIBMTP_Format_Storage(LIBMTP_mtpdevice_t *device, LIBMTP_devicestorage_t *storage)
Definition: libmtp.c:3858
LIBMTP_Update_Album
int LIBMTP_Update_Album(LIBMTP_mtpdevice_t *device, LIBMTP_album_t const *const metadata)
Definition: libmtp.c:9107
_PTPDevicePropDesc
Definition: ptp.h:1183
LIBMTP_Get_Album_List
LIBMTP_album_t * LIBMTP_Get_Album_List(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:8436
LIBMTP_track_struct::nochannels
uint16_t nochannels
Definition: libmtp.h:711
LIBMTP_album_struct::no_tracks
uint32_t no_tracks
Definition: libmtp.h:748
LIBMTP_Release_Device_List
void LIBMTP_Release_Device_List(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:2402
LIBMTP_Get_Supported_Devices_List
int LIBMTP_Get_Supported_Devices_List(LIBMTP_device_entry_t **const, int *const)
Definition: libopenusb1-glue.c:131
LIBMTP_mtpdevice_struct::default_playlist_folder
uint32_t default_playlist_folder
Definition: libmtp.h:656
LIBMTP_Send_Representative_Sample
int LIBMTP_Send_Representative_Sample(LIBMTP_mtpdevice_t *device, uint32_t const id, LIBMTP_filesampledata_t *sampledata)
Definition: libmtp.c:8806
MTPDataGetFunc
uint16_t(* MTPDataGetFunc)(void *params, void *priv, uint32_t wantlen, unsigned char *data, uint32_t *gotlen)
Definition: libmtp.h:487
LIBMTP_new_album_t
LIBMTP_album_t * LIBMTP_new_album_t(void)
Definition: libmtp.c:8274
_MTPDataHandler
Definition: libmtp.c:230
_PTPStorageInfo
Definition: ptp.h:934
LIBMTP_album_struct::composer
char * composer
Definition: libmtp.h:745
LIBMTP_album_struct::album_id
uint32_t album_id
Definition: libmtp.h:740
LIBMTP_folder_struct::folder_id
uint32_t folder_id
Definition: libmtp.h:756
LIBMTP_Get_Trackmetadata
LIBMTP_track_t * LIBMTP_Get_Trackmetadata(LIBMTP_mtpdevice_t *device, uint32_t const trackid)
Definition: libmtp.c:5039
LIBMTP_Set_Friendlyname
int LIBMTP_Set_Friendlyname(LIBMTP_mtpdevice_t *device, char const *const friendlyname)
Definition: libmtp.c:3679
libusb-glue.h
LIBMTP_Handle_Events_Timeout_Completed
int LIBMTP_Handle_Events_Timeout_Completed(struct timeval *, int *)
Definition: libopenusb1-glue.c:1703
LIBMTP_mtpdevice_struct::cd
void * cd
Definition: libmtp.h:670
LIBMTP_mtpdevice_struct
Definition: libmtp.h:624
LIBMTP_Get_Tracklisting_With_Callback
LIBMTP_track_t * LIBMTP_Get_Tracklisting_With_Callback(LIBMTP_mtpdevice_t *device, LIBMTP_progressfunc_t const callback, void const *const data)
Definition: libmtp.c:4871
LIBMTP_Get_Errorstack
LIBMTP_error_t * LIBMTP_Get_Errorstack(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:2522
LIBMTP_devicestorage_struct::id
uint32_t id
Definition: libmtp.h:780
DEVICE_FLAG_OGG_IS_UNKNOWN
#define DEVICE_FLAG_OGG_IS_UNKNOWN
Definition: device-flags.h:158
LIBMTP_Get_u32_From_Object
uint32_t LIBMTP_Get_u32_From_Object(LIBMTP_mtpdevice_t *device, uint32_t const object_id, LIBMTP_property_t const attribute_id, uint32_t const value_default)
Definition: libmtp.c:1230
LIBMTP_new_file_t
LIBMTP_file_t * LIBMTP_new_file_t(void)
Definition: libmtp.c:4188
LIBMTP_Get_Manufacturername
char * LIBMTP_Get_Manufacturername(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:3568
LIBMTP_Set_Playlist_Name
int LIBMTP_Set_Playlist_Name(LIBMTP_mtpdevice_t *device, LIBMTP_playlist_t *playlist, const char *newname)
Definition: libmtp.c:6979
LIBMTP_filesampledata_struct::height
uint32_t height
Definition: libmtp.h:769
LIBMTP_track_struct::tracknumber
uint16_t tracknumber
Definition: libmtp.h:708
LIBMTP_device_entry_struct::product
char * product
Definition: libmtp.h:524
LIBMTP_Set_Object_u16
int LIBMTP_Set_Object_u16(LIBMTP_mtpdevice_t *device, uint32_t const object_id, LIBMTP_property_t const attribute_id, uint16_t const value)
Definition: libmtp.c:1306
LIBMTP_Get_Tracklisting_With_Callback_For_Storage
LIBMTP_track_t * LIBMTP_Get_Tracklisting_With_Callback_For_Storage(LIBMTP_mtpdevice_t *device, uint32_t const storage_id, LIBMTP_progressfunc_t const callback, void const *const data)
Definition: libmtp.c:4921
LIBMTP_file_struct::item_id
uint32_t item_id
Definition: libmtp.h:684
LIBMTP_raw_device_struct::device_entry
LIBMTP_device_entry_t device_entry
Definition: libmtp.h:534
LIBMTP_playlist_struct
Definition: libmtp.h:726
LIBMTP_Set_Debug
void LIBMTP_Set_Debug(int level)
Definition: libmtp.c:755
LIBMTP_devicestorage_struct::FreeSpaceInObjects
uint64_t FreeSpaceInObjects
Definition: libmtp.h:786
LIBMTP_Set_Folder_Name
int LIBMTP_Set_Folder_Name(LIBMTP_mtpdevice_t *device, LIBMTP_folder_t *folder, const char *newname)
Definition: libmtp.c:6912
LIBMTP_playlist_struct::no_tracks
uint32_t no_tracks
Definition: libmtp.h:732
LIBMTP_mtpdevice_struct::default_music_folder
uint32_t default_music_folder
Definition: libmtp.h:654
LIBMTP_device_entry_struct::product_id
uint16_t product_id
Definition: libmtp.h:525
LIBMTP_mtpdevice_struct::default_zencast_folder
uint32_t default_zencast_folder
Definition: libmtp.h:664
LIBMTP_Get_Storage
int LIBMTP_Get_Storage(LIBMTP_mtpdevice_t *device, int const sortby)
Definition: libmtp.c:4082
LIBMTP_Get_Album
LIBMTP_album_t * LIBMTP_Get_Album(LIBMTP_mtpdevice_t *device, uint32_t const albid)
Definition: libmtp.c:8517
LIBMTP_new_filesampledata_t
LIBMTP_filesampledata_t * LIBMTP_new_filesampledata_t(void)
Definition: libmtp.c:8621
LIBMTP_destroy_track_t
void LIBMTP_destroy_track_t(LIBMTP_track_t *track)
Definition: libmtp.c:4615
LIBMTP_Set_Object_Filename
int LIBMTP_Set_Object_Filename(LIBMTP_mtpdevice_t *device, uint32_t object_id, char *newname)
Definition: libmtp.c:7044
filemap_struct::id
LIBMTP_filetype_t id
Definition: libmtp.c:100
LIBMTP_device_entry_struct::device_flags
uint32_t device_flags
Definition: libmtp.h:526
LIBMTP_datatype_t
LIBMTP_datatype_t
Definition: libmtp.h:396
LIBMTP_devicestorage_struct::StorageType
uint16_t StorageType
Definition: libmtp.h:781
LIBMTP_Release_Device
void LIBMTP_Release_Device(LIBMTP_mtpdevice_t *device)
Definition: libmtp.c:2419
LIBMTP_Detect_Raw_Devices
LIBMTP_error_number_t LIBMTP_Detect_Raw_Devices(LIBMTP_raw_device_t **, int *)
Definition: libopenusb1-glue.c:592
LIBMTP_playlist_struct::name
char * name
Definition: libmtp.h:730
libmtp.h
LIBMTP_playlist_struct::tracks
uint32_t * tracks
Definition: libmtp.h:731
LIBMTP_destroy_file_t
void LIBMTP_destroy_file_t(LIBMTP_file_t *file)
Definition: libmtp.c:4212
mtpz.h
LIBMTP_file_struct::storage_id
uint32_t storage_id
Definition: libmtp.h:686
LIBMTP_destroy_folder_t
void LIBMTP_destroy_folder_t(LIBMTP_folder_t *folder)
Definition: libmtp.c:7117
LIBMTP_DEBUG_NONE
#define LIBMTP_DEBUG_NONE
Definition: libmtp.h:73
LIBMTP_folder_struct::name
char * name
Definition: libmtp.h:759
LIBMTP_album_struct::tracks
uint32_t * tracks
Definition: libmtp.h:747
LIBMTP_folder_struct::sibling
LIBMTP_folder_t * sibling
Definition: libmtp.h:760
LIBMTP_Get_Device_Certificate
int LIBMTP_Get_Device_Certificate(LIBMTP_mtpdevice_t *device, char **const devcert)
Definition: libmtp.c:3956
LIBMTP_Delete_Object
int LIBMTP_Delete_Object(LIBMTP_mtpdevice_t *device, uint32_t object_id)
Definition: libmtp.c:6773