libmtp  1.0.6
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.0.6
33 #define LIBMTP_VERSION_STRING "1.0.6"
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 #endif
54 
55 #include <stdio.h>
56 #include <usb.h>
57 #include <stdint.h>
58 /* We use time_t */
59 #include <time.h>
60 
70 #define LIBMTP_DEBUG_NONE 0x00
71 #define LIBMTP_DEBUG_PTP 0x01
72 #define LIBMTP_DEBUG_PLST 0x02
73 #define LIBMTP_DEBUG_USB 0x04
74 #define LIBMTP_DEBUG_DATA 0x08
75 #define LIBMTP_DEBUG_ALL 0xFF
76 
77 
83 typedef enum {
84  LIBMTP_FILETYPE_WAV,
85  LIBMTP_FILETYPE_MP3,
86  LIBMTP_FILETYPE_WMA,
87  LIBMTP_FILETYPE_OGG,
88  LIBMTP_FILETYPE_AUDIBLE,
89  LIBMTP_FILETYPE_MP4,
90  LIBMTP_FILETYPE_UNDEF_AUDIO,
91  LIBMTP_FILETYPE_WMV,
92  LIBMTP_FILETYPE_AVI,
93  LIBMTP_FILETYPE_MPEG,
94  LIBMTP_FILETYPE_ASF,
95  LIBMTP_FILETYPE_QT,
96  LIBMTP_FILETYPE_UNDEF_VIDEO,
97  LIBMTP_FILETYPE_JPEG,
98  LIBMTP_FILETYPE_JFIF,
99  LIBMTP_FILETYPE_TIFF,
100  LIBMTP_FILETYPE_BMP,
101  LIBMTP_FILETYPE_GIF,
102  LIBMTP_FILETYPE_PICT,
103  LIBMTP_FILETYPE_PNG,
104  LIBMTP_FILETYPE_VCALENDAR1,
105  LIBMTP_FILETYPE_VCALENDAR2,
106  LIBMTP_FILETYPE_VCARD2,
107  LIBMTP_FILETYPE_VCARD3,
108  LIBMTP_FILETYPE_WINDOWSIMAGEFORMAT,
109  LIBMTP_FILETYPE_WINEXEC,
110  LIBMTP_FILETYPE_TEXT,
111  LIBMTP_FILETYPE_HTML,
112  LIBMTP_FILETYPE_FIRMWARE,
113  LIBMTP_FILETYPE_AAC,
114  LIBMTP_FILETYPE_MEDIACARD,
115  LIBMTP_FILETYPE_FLAC,
116  LIBMTP_FILETYPE_MP2,
117  LIBMTP_FILETYPE_M4A,
118  LIBMTP_FILETYPE_DOC,
119  LIBMTP_FILETYPE_XML,
120  LIBMTP_FILETYPE_XLS,
121  LIBMTP_FILETYPE_PPT,
122  LIBMTP_FILETYPE_MHT,
123  LIBMTP_FILETYPE_JP2,
124  LIBMTP_FILETYPE_JPX,
125  LIBMTP_FILETYPE_ALBUM,
126  LIBMTP_FILETYPE_PLAYLIST,
127  LIBMTP_FILETYPE_UNKNOWN
129 
137 #define LIBMTP_FILETYPE_IS_AUDIO(a)\
138 (a == LIBMTP_FILETYPE_WAV ||\
139  a == LIBMTP_FILETYPE_MP3 ||\
140  a == LIBMTP_FILETYPE_MP2 ||\
141  a == LIBMTP_FILETYPE_WMA ||\
142  a == LIBMTP_FILETYPE_OGG ||\
143  a == LIBMTP_FILETYPE_FLAC ||\
144  a == LIBMTP_FILETYPE_AAC ||\
145  a == LIBMTP_FILETYPE_M4A ||\
146  a == LIBMTP_FILETYPE_AUDIBLE ||\
147  a == LIBMTP_FILETYPE_UNDEF_AUDIO)
148 
156 #define LIBMTP_FILETYPE_IS_VIDEO(a)\
157 (a == LIBMTP_FILETYPE_WMV ||\
158  a == LIBMTP_FILETYPE_AVI ||\
159  a == LIBMTP_FILETYPE_MPEG ||\
160  a == LIBMTP_FILETYPE_UNDEF_VIDEO)
161 
166 #define LIBMTP_FILETYPE_IS_AUDIOVIDEO(a)\
167 (a == LIBMTP_FILETYPE_MP4 ||\
168  a == LIBMTP_FILETYPE_ASF ||\
169  a == LIBMTP_FILETYPE_QT)
170 
177 #define LIBMTP_FILETYPE_IS_TRACK(a)\
178 (LIBMTP_FILETYPE_IS_AUDIO(a) ||\
179  LIBMTP_FILETYPE_IS_VIDEO(a) ||\
180  LIBMTP_FILETYPE_IS_AUDIOVIDEO(a))
181 
186 #define LIBMTP_FILETYPE_IS_IMAGE(a)\
187 (a == LIBMTP_FILETYPE_JPEG ||\
188 a == LIBMTP_FILETYPE_JFIF ||\
189 a == LIBMTP_FILETYPE_TIFF ||\
190 a == LIBMTP_FILETYPE_BMP ||\
191 a == LIBMTP_FILETYPE_GIF ||\
192 a == LIBMTP_FILETYPE_PICT ||\
193 a == LIBMTP_FILETYPE_PNG ||\
194 a == LIBMTP_FILETYPE_JP2 ||\
195 a == LIBMTP_FILETYPE_JPX ||\
196 a == LIBMTP_FILETYPE_WINDOWSIMAGEFORMAT)
197 
202 #define LIBMTP_FILETYPE_IS_ADDRESSBOOK(a)\
203 (a == LIBMTP_FILETYPE_VCARD2 ||\
204 a == LIBMTP_FILETYPE_VCARD2)
205 
210 #define LIBMTP_FILETYPE_IS_CALENDAR(a)\
211 (a == LIBMTP_FILETYPE_VCALENDAR1 ||\
212 a == LIBMTP_FILETYPE_VCALENDAR2)
213 
218 typedef enum {
219  LIBMTP_PROPERTY_StorageID,
220  LIBMTP_PROPERTY_ObjectFormat,
221  LIBMTP_PROPERTY_ProtectionStatus,
222  LIBMTP_PROPERTY_ObjectSize,
223  LIBMTP_PROPERTY_AssociationType,
224  LIBMTP_PROPERTY_AssociationDesc,
225  LIBMTP_PROPERTY_ObjectFileName,
226  LIBMTP_PROPERTY_DateCreated,
227  LIBMTP_PROPERTY_DateModified,
228  LIBMTP_PROPERTY_Keywords,
229  LIBMTP_PROPERTY_ParentObject,
230  LIBMTP_PROPERTY_AllowedFolderContents,
231  LIBMTP_PROPERTY_Hidden,
232  LIBMTP_PROPERTY_SystemObject,
233  LIBMTP_PROPERTY_PersistantUniqueObjectIdentifier,
234  LIBMTP_PROPERTY_SyncID,
235  LIBMTP_PROPERTY_PropertyBag,
236  LIBMTP_PROPERTY_Name,
237  LIBMTP_PROPERTY_CreatedBy,
238  LIBMTP_PROPERTY_Artist,
239  LIBMTP_PROPERTY_DateAuthored,
240  LIBMTP_PROPERTY_Description,
241  LIBMTP_PROPERTY_URLReference,
242  LIBMTP_PROPERTY_LanguageLocale,
243  LIBMTP_PROPERTY_CopyrightInformation,
244  LIBMTP_PROPERTY_Source,
245  LIBMTP_PROPERTY_OriginLocation,
246  LIBMTP_PROPERTY_DateAdded,
247  LIBMTP_PROPERTY_NonConsumable,
248  LIBMTP_PROPERTY_CorruptOrUnplayable,
249  LIBMTP_PROPERTY_ProducerSerialNumber,
250  LIBMTP_PROPERTY_RepresentativeSampleFormat,
251  LIBMTP_PROPERTY_RepresentativeSampleSize,
252  LIBMTP_PROPERTY_RepresentativeSampleHeight,
253  LIBMTP_PROPERTY_RepresentativeSampleWidth,
254  LIBMTP_PROPERTY_RepresentativeSampleDuration,
255  LIBMTP_PROPERTY_RepresentativeSampleData,
256  LIBMTP_PROPERTY_Width,
257  LIBMTP_PROPERTY_Height,
258  LIBMTP_PROPERTY_Duration,
259  LIBMTP_PROPERTY_Rating,
260  LIBMTP_PROPERTY_Track,
261  LIBMTP_PROPERTY_Genre,
262  LIBMTP_PROPERTY_Credits,
263  LIBMTP_PROPERTY_Lyrics,
264  LIBMTP_PROPERTY_SubscriptionContentID,
265  LIBMTP_PROPERTY_ProducedBy,
266  LIBMTP_PROPERTY_UseCount,
267  LIBMTP_PROPERTY_SkipCount,
268  LIBMTP_PROPERTY_LastAccessed,
269  LIBMTP_PROPERTY_ParentalRating,
270  LIBMTP_PROPERTY_MetaGenre,
271  LIBMTP_PROPERTY_Composer,
272  LIBMTP_PROPERTY_EffectiveRating,
273  LIBMTP_PROPERTY_Subtitle,
274  LIBMTP_PROPERTY_OriginalReleaseDate,
275  LIBMTP_PROPERTY_AlbumName,
276  LIBMTP_PROPERTY_AlbumArtist,
277  LIBMTP_PROPERTY_Mood,
278  LIBMTP_PROPERTY_DRMStatus,
279  LIBMTP_PROPERTY_SubDescription,
280  LIBMTP_PROPERTY_IsCropped,
281  LIBMTP_PROPERTY_IsColorCorrected,
282  LIBMTP_PROPERTY_ImageBitDepth,
283  LIBMTP_PROPERTY_Fnumber,
284  LIBMTP_PROPERTY_ExposureTime,
285  LIBMTP_PROPERTY_ExposureIndex,
286  LIBMTP_PROPERTY_DisplayName,
287  LIBMTP_PROPERTY_BodyText,
288  LIBMTP_PROPERTY_Subject,
289  LIBMTP_PROPERTY_Priority,
290  LIBMTP_PROPERTY_GivenName,
291  LIBMTP_PROPERTY_MiddleNames,
292  LIBMTP_PROPERTY_FamilyName,
293  LIBMTP_PROPERTY_Prefix,
294  LIBMTP_PROPERTY_Suffix,
295  LIBMTP_PROPERTY_PhoneticGivenName,
296  LIBMTP_PROPERTY_PhoneticFamilyName,
297  LIBMTP_PROPERTY_EmailPrimary,
298  LIBMTP_PROPERTY_EmailPersonal1,
299  LIBMTP_PROPERTY_EmailPersonal2,
300  LIBMTP_PROPERTY_EmailBusiness1,
301  LIBMTP_PROPERTY_EmailBusiness2,
302  LIBMTP_PROPERTY_EmailOthers,
303  LIBMTP_PROPERTY_PhoneNumberPrimary,
304  LIBMTP_PROPERTY_PhoneNumberPersonal,
305  LIBMTP_PROPERTY_PhoneNumberPersonal2,
306  LIBMTP_PROPERTY_PhoneNumberBusiness,
307  LIBMTP_PROPERTY_PhoneNumberBusiness2,
308  LIBMTP_PROPERTY_PhoneNumberMobile,
309  LIBMTP_PROPERTY_PhoneNumberMobile2,
310  LIBMTP_PROPERTY_FaxNumberPrimary,
311  LIBMTP_PROPERTY_FaxNumberPersonal,
312  LIBMTP_PROPERTY_FaxNumberBusiness,
313  LIBMTP_PROPERTY_PagerNumber,
314  LIBMTP_PROPERTY_PhoneNumberOthers,
315  LIBMTP_PROPERTY_PrimaryWebAddress,
316  LIBMTP_PROPERTY_PersonalWebAddress,
317  LIBMTP_PROPERTY_BusinessWebAddress,
318  LIBMTP_PROPERTY_InstantMessengerAddress,
319  LIBMTP_PROPERTY_InstantMessengerAddress2,
320  LIBMTP_PROPERTY_InstantMessengerAddress3,
321  LIBMTP_PROPERTY_PostalAddressPersonalFull,
322  LIBMTP_PROPERTY_PostalAddressPersonalFullLine1,
323  LIBMTP_PROPERTY_PostalAddressPersonalFullLine2,
324  LIBMTP_PROPERTY_PostalAddressPersonalFullCity,
325  LIBMTP_PROPERTY_PostalAddressPersonalFullRegion,
326  LIBMTP_PROPERTY_PostalAddressPersonalFullPostalCode,
327  LIBMTP_PROPERTY_PostalAddressPersonalFullCountry,
328  LIBMTP_PROPERTY_PostalAddressBusinessFull,
329  LIBMTP_PROPERTY_PostalAddressBusinessLine1,
330  LIBMTP_PROPERTY_PostalAddressBusinessLine2,
331  LIBMTP_PROPERTY_PostalAddressBusinessCity,
332  LIBMTP_PROPERTY_PostalAddressBusinessRegion,
333  LIBMTP_PROPERTY_PostalAddressBusinessPostalCode,
334  LIBMTP_PROPERTY_PostalAddressBusinessCountry,
335  LIBMTP_PROPERTY_PostalAddressOtherFull,
336  LIBMTP_PROPERTY_PostalAddressOtherLine1,
337  LIBMTP_PROPERTY_PostalAddressOtherLine2,
338  LIBMTP_PROPERTY_PostalAddressOtherCity,
339  LIBMTP_PROPERTY_PostalAddressOtherRegion,
340  LIBMTP_PROPERTY_PostalAddressOtherPostalCode,
341  LIBMTP_PROPERTY_PostalAddressOtherCountry,
342  LIBMTP_PROPERTY_OrganizationName,
343  LIBMTP_PROPERTY_PhoneticOrganizationName,
344  LIBMTP_PROPERTY_Role,
345  LIBMTP_PROPERTY_Birthdate,
346  LIBMTP_PROPERTY_MessageTo,
347  LIBMTP_PROPERTY_MessageCC,
348  LIBMTP_PROPERTY_MessageBCC,
349  LIBMTP_PROPERTY_MessageRead,
350  LIBMTP_PROPERTY_MessageReceivedTime,
351  LIBMTP_PROPERTY_MessageSender,
352  LIBMTP_PROPERTY_ActivityBeginTime,
353  LIBMTP_PROPERTY_ActivityEndTime,
354  LIBMTP_PROPERTY_ActivityLocation,
355  LIBMTP_PROPERTY_ActivityRequiredAttendees,
356  LIBMTP_PROPERTY_ActivityOptionalAttendees,
357  LIBMTP_PROPERTY_ActivityResources,
358  LIBMTP_PROPERTY_ActivityAccepted,
359  LIBMTP_PROPERTY_Owner,
360  LIBMTP_PROPERTY_Editor,
361  LIBMTP_PROPERTY_Webmaster,
362  LIBMTP_PROPERTY_URLSource,
363  LIBMTP_PROPERTY_URLDestination,
364  LIBMTP_PROPERTY_TimeBookmark,
365  LIBMTP_PROPERTY_ObjectBookmark,
366  LIBMTP_PROPERTY_ByteBookmark,
367  LIBMTP_PROPERTY_LastBuildDate,
368  LIBMTP_PROPERTY_TimetoLive,
369  LIBMTP_PROPERTY_MediaGUID,
370  LIBMTP_PROPERTY_TotalBitRate,
371  LIBMTP_PROPERTY_BitRateType,
372  LIBMTP_PROPERTY_SampleRate,
373  LIBMTP_PROPERTY_NumberOfChannels,
374  LIBMTP_PROPERTY_AudioBitDepth,
375  LIBMTP_PROPERTY_ScanDepth,
376  LIBMTP_PROPERTY_AudioWAVECodec,
377  LIBMTP_PROPERTY_AudioBitRate,
378  LIBMTP_PROPERTY_VideoFourCCCodec,
379  LIBMTP_PROPERTY_VideoBitRate,
380  LIBMTP_PROPERTY_FramesPerThousandSeconds,
381  LIBMTP_PROPERTY_KeyFrameDistance,
382  LIBMTP_PROPERTY_BufferSize,
383  LIBMTP_PROPERTY_EncodingQuality,
384  LIBMTP_PROPERTY_EncodingProfile,
385  LIBMTP_PROPERTY_BuyFlag,
386  LIBMTP_PROPERTY_UNKNOWN
388 
392 typedef enum {
393  LIBMTP_DATATYPE_INT8,
394  LIBMTP_DATATYPE_UINT8,
395  LIBMTP_DATATYPE_INT16,
396  LIBMTP_DATATYPE_UINT16,
397  LIBMTP_DATATYPE_INT32,
398  LIBMTP_DATATYPE_UINT32,
399  LIBMTP_DATATYPE_INT64,
400  LIBMTP_DATATYPE_UINT64,
402 
407 typedef enum {
408  LIBMTP_ERROR_NONE,
409  LIBMTP_ERROR_GENERAL,
410  LIBMTP_ERROR_PTP_LAYER,
411  LIBMTP_ERROR_USB_LAYER,
412  LIBMTP_ERROR_MEMORY_ALLOCATION,
413  LIBMTP_ERROR_NO_DEVICE_ATTACHED,
414  LIBMTP_ERROR_STORAGE_FULL,
415  LIBMTP_ERROR_CONNECTING,
416  LIBMTP_ERROR_CANCELLED
418 
430 typedef struct LIBMTP_object_struct LIBMTP_object_t;
444 typedef int (* LIBMTP_progressfunc_t) (uint64_t const sent, uint64_t const total,
445  void const * const data);
446 
459 typedef uint16_t (* MTPDataGetFunc) (void* params, void* priv,
460  uint32_t wantlen, unsigned char *data, uint32_t *gotlen);
461 
474 typedef uint16_t (* MTPDataPutFunc) (void* params, void* priv,
475  uint32_t sendlen, unsigned char *data, uint32_t *putlen);
476 
480 #define LIBMTP_HANDLER_RETURN_OK 0
481 #define LIBMTP_HANDLER_RETURN_ERROR 1
482 #define LIBMTP_HANDLER_RETURN_CANCEL 2
483 
494  char *vendor;
495  uint16_t vendor_id;
496  char *product;
497  uint16_t product_id;
498  uint32_t device_flags;
499 };
500 
507  uint32_t bus_location;
508  uint8_t devnum;
509 };
510 
515  LIBMTP_error_number_t errornumber;
516  char *error_text;
517  LIBMTP_error_t *next;
518 };
519 
524  uint8_t u8max;
525  uint8_t u8min;
526  uint8_t u8step;
527  uint8_t* u8vals;
528  int8_t i8max;
529  int8_t i8min;
530  int8_t i8step;
531  int8_t* i8vals;
532  uint16_t u16max;
533  uint16_t u16min;
534  uint16_t u16step;
535  uint16_t* u16vals;
536  int16_t i16max;
537  int16_t i16min;
538  int16_t i16step;
539  int16_t* i16vals;
540  uint32_t u32max;
541  uint32_t u32min;
542  uint32_t u32step;
543  uint32_t* u32vals;
544  int32_t i32max;
545  int32_t i32min;
546  int32_t i32step;
547  int32_t* i32vals;
548  uint64_t u64max;
549  uint64_t u64min;
550  uint64_t u64step;
551  uint64_t* u64vals;
552  int64_t i64max;
553  int64_t i64min;
554  int64_t i64step;
555  int64_t* i64vals;
559  uint16_t num_entries;
567  int is_range;
568 };
569 
577  char *name;
581  int major;
585  int minor;
591 };
592 
600  uint8_t object_bitsize;
605  void *params;
610  void *usbinfo;
642  void *cd;
645 
648 };
649 
654  uint32_t item_id;
655  uint32_t parent_id;
656  uint32_t storage_id;
657  char *filename;
658  uint64_t filesize;
662 };
663 
668  uint32_t item_id;
669  uint32_t parent_id;
670  uint32_t storage_id;
671  char *title;
672  char *artist;
673  char *composer;
674  char *genre;
675  char *album;
676  char *date;
677  char *filename;
678  uint16_t tracknumber;
679  uint32_t duration;
680  uint32_t samplerate;
681  uint16_t nochannels;
682  uint32_t wavecodec;
683  uint32_t bitrate;
684  uint16_t bitratetype;
685  uint16_t rating;
686  uint32_t usecount;
687  uint64_t filesize;
691 };
692 
697  uint32_t playlist_id;
698  uint32_t parent_id;
699  uint32_t storage_id;
700  char *name;
701  uint32_t *tracks;
702  uint32_t no_tracks;
704 };
705 
710  uint32_t album_id;
711  uint32_t parent_id;
712  uint32_t storage_id;
713  char *name;
714  char *artist;
715  char *composer;
716  char *genre;
717  uint32_t *tracks;
718  uint32_t no_tracks;
720 };
721 
726  uint32_t folder_id;
727  uint32_t parent_id;
728  uint32_t storage_id;
729  char *name;
732 };
733 
738  uint32_t width;
739  uint32_t height;
740  uint32_t duration;
742  uint64_t size;
743  char *data;
744 };
745 
750  uint32_t id;
751  uint16_t StorageType;
752  uint16_t FilesystemType;
753  uint16_t AccessCapability;
754  uint64_t MaxCapacity;
755  uint64_t FreeSpaceInBytes;
761 };
762 
763 
766 /* Make functions available for C++ */
767 #ifdef __cplusplus
768 extern "C" {
769 #endif
770 
771 extern int LIBMTP_debug;
772 
777 void LIBMTP_Set_Debug(int);
778 void LIBMTP_Init(void);
786 int LIBMTP_Check_Specific_Device(int busno, int devno);
788 /* Begin old, legacy interface */
793 /* End old, legacy interface */
802 int LIBMTP_Set_Friendlyname(LIBMTP_mtpdevice_t*, char const * const);
804 int LIBMTP_Set_Syncpartner(LIBMTP_mtpdevice_t*, char const * const);
806  uint8_t * const,
807  uint8_t * const);
808 int LIBMTP_Get_Secure_Time(LIBMTP_mtpdevice_t *, char ** const);
810 int LIBMTP_Get_Supported_Filetypes(LIBMTP_mtpdevice_t *, uint16_t ** const, uint16_t * const);
814 
815 #define LIBMTP_STORAGE_SORTBY_NOTSORTED 0
816 #define LIBMTP_STORAGE_SORTBY_FREESPACE 1
817 #define LIBMTP_STORAGE_SORTBY_MAXSPACE 2
818 
819 int LIBMTP_Get_Storage(LIBMTP_mtpdevice_t *, int const);
821 
827 uint64_t LIBMTP_Get_u64_From_Object(LIBMTP_mtpdevice_t *, uint32_t const,
828  LIBMTP_property_t const, uint64_t const);
829 uint32_t LIBMTP_Get_u32_From_Object(LIBMTP_mtpdevice_t *, uint32_t const,
830  LIBMTP_property_t const, uint32_t const);
831 uint16_t LIBMTP_Get_u16_From_Object(LIBMTP_mtpdevice_t *, uint32_t const,
832  LIBMTP_property_t const, uint16_t const);
833 uint8_t LIBMTP_Get_u8_From_Object(LIBMTP_mtpdevice_t *, uint32_t const,
834  LIBMTP_property_t const, uint8_t const);
835 int LIBMTP_Set_Object_String(LIBMTP_mtpdevice_t *, uint32_t const,
836  LIBMTP_property_t const, char const * const);
837 int LIBMTP_Set_Object_u32(LIBMTP_mtpdevice_t *, uint32_t const,
838  LIBMTP_property_t const, uint32_t const);
839 int LIBMTP_Set_Object_u16(LIBMTP_mtpdevice_t *, uint32_t const,
840  LIBMTP_property_t const, uint16_t const);
841 int LIBMTP_Set_Object_u8(LIBMTP_mtpdevice_t *, uint32_t const,
842  LIBMTP_property_t const, uint8_t const);
843 char const * LIBMTP_Get_Property_Description(LIBMTP_property_t inproperty);
845  LIBMTP_filetype_t const);
849 
860  LIBMTP_progressfunc_t const, void const * const);
862 int LIBMTP_Get_File_To_File(LIBMTP_mtpdevice_t*, uint32_t, char const * const,
863  LIBMTP_progressfunc_t const, void const * const);
864 int LIBMTP_Get_File_To_File_Descriptor(LIBMTP_mtpdevice_t*, uint32_t const, int const,
865  LIBMTP_progressfunc_t const, void const * const);
866 int LIBMTP_Get_File_To_Handler(LIBMTP_mtpdevice_t *, uint32_t const, MTPDataPutFunc, void *,
867  LIBMTP_progressfunc_t const, void const * const);
868 int LIBMTP_Send_File_From_File(LIBMTP_mtpdevice_t *, char const * const,
869  LIBMTP_file_t * const, LIBMTP_progressfunc_t const,
870  void const * const);
872  LIBMTP_file_t * const, LIBMTP_progressfunc_t const,
873  void const * const);
875  LIBMTP_file_t * const, LIBMTP_progressfunc_t const, void const * const);
880  LIBMTP_filetype_t const,
886 
896  LIBMTP_progressfunc_t const, void const * const);
898  LIBMTP_progressfunc_t const, void const * const);
900 int LIBMTP_Get_Track_To_File(LIBMTP_mtpdevice_t*, uint32_t, char const * const,
901  LIBMTP_progressfunc_t const, void const * const);
902 int LIBMTP_Get_Track_To_File_Descriptor(LIBMTP_mtpdevice_t*, uint32_t const, int const,
903  LIBMTP_progressfunc_t const, void const * const);
905  void *, LIBMTP_progressfunc_t const, void const * const);
907  char const * const, LIBMTP_track_t * const,
908  LIBMTP_progressfunc_t const,
909  void const * const);
911  int const, LIBMTP_track_t * const,
912  LIBMTP_progressfunc_t const,
913  void const * const);
915  MTPDataGetFunc, void *, LIBMTP_track_t * const,
916  LIBMTP_progressfunc_t const,
917  void const * const);
919  LIBMTP_track_t const * const);
920 int LIBMTP_Track_Exists(LIBMTP_mtpdevice_t *, uint32_t);
933 uint32_t LIBMTP_Create_Folder(LIBMTP_mtpdevice_t*, char *, uint32_t, uint32_t);
950 
964 
971 int LIBMTP_Set_Object_Filename(LIBMTP_mtpdevice_t *, uint32_t , char *);
972 
975 /* End of C++ exports */
976 #ifdef __cplusplus
977 }
978 #endif
979 
980 #endif /* LIBMTP_H_INCLUSION_GUARD */
981 
LIBMTP_album_t * LIBMTP_Get_Album(LIBMTP_mtpdevice_t *, uint32_t const)
Definition: libmtp.c:7967
uint32_t default_music_folder
Definition: libmtp.h:626
int LIBMTP_Get_Device_Certificate(LIBMTP_mtpdevice_t *, char **const)
Definition: libmtp.c:3562
LIBMTP_folder_t * sibling
Definition: libmtp.h:730
int LIBMTP_Set_Track_Name(LIBMTP_mtpdevice_t *, LIBMTP_track_t *, const char *)
Definition: libmtp.c:6436
int LIBMTP_Set_Syncpartner(LIBMTP_mtpdevice_t *, char const *const)
Definition: libmtp.c:3361
uint32_t storage_id
Definition: libmtp.h:712
uint16_t AccessCapability
Definition: libmtp.h:753
char * genre
Definition: libmtp.h:674
uint64_t LIBMTP_Get_u64_From_Object(LIBMTP_mtpdevice_t *, uint32_t const, LIBMTP_property_t const, uint64_t const)
Definition: libmtp.c:1167
LIBMTP_filetype_t filetype
Definition: libmtp.h:689
int LIBMTP_Set_File_Name(LIBMTP_mtpdevice_t *, LIBMTP_file_t *, const char *)
Definition: libmtp.c:6376
void LIBMTP_Release_Device(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:2107
LIBMTP_file_t * next
Definition: libmtp.h:661
void LIBMTP_destroy_file_t(LIBMTP_file_t *)
Definition: libmtp.c:3773
Definition: libmtp.h:667
LIBMTP_track_t * next
Definition: libmtp.h:690
Definition: libmtp.h:709
LIBMTP_file_t * LIBMTP_Get_Filelisting(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:3789
void LIBMTP_Clear_Errorstack(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:2220
LIBMTP_datatype_t
Definition: libmtp.h:392
char * name
Definition: libmtp.h:729
LIBMTP_track_t * LIBMTP_Get_Tracklisting_With_Callback_For_Storage(LIBMTP_mtpdevice_t *, uint32_t const, LIBMTP_progressfunc_t const, void const *const)
Definition: libmtp.c:4439
uint16_t LIBMTP_Get_u16_From_Object(LIBMTP_mtpdevice_t *, uint32_t const, LIBMTP_property_t const, uint16_t const)
Definition: libmtp.c:1197
uint64_t FreeSpaceInBytes
Definition: libmtp.h:755
LIBMTP_album_t * next
Definition: libmtp.h:719
void LIBMTP_destroy_track_t(LIBMTP_track_t *)
Definition: libmtp.c:4133
LIBMTP_file_t * LIBMTP_new_file_t(void)
Definition: libmtp.c:3749
LIBMTP_file_t * LIBMTP_Get_Filemetadata(LIBMTP_mtpdevice_t *, uint32_t const)
Definition: libmtp.c:3991
uint32_t storage_id
Definition: libmtp.h:699
uint16_t nochannels
Definition: libmtp.h:681
uint32_t parent_id
Definition: libmtp.h:727
uint8_t maximum_battery_level
Definition: libmtp.h:624
void LIBMTP_destroy_allowed_values_t(LIBMTP_allowed_values_t *)
Definition: libmtp.c:1065
LIBMTP_filesampledata_t * LIBMTP_new_filesampledata_t(void)
Definition: libmtp.c:8071
char * name
Definition: libmtp.h:713
int LIBMTP_Set_Object_Filename(LIBMTP_mtpdevice_t *, uint32_t, char *)
Definition: libmtp.c:6538
int(* LIBMTP_progressfunc_t)(uint64_t const sent, uint64_t const total, void const *const data)
Definition: libmtp.h:444
Definition: libmtp.h:596
uint8_t object_bitsize
Definition: libmtp.h:600
uint16_t product_id
Definition: libmtp.h:497
struct LIBMTP_object_struct LIBMTP_object_t
Definition: libmtp.h:430
char * title
Definition: libmtp.h:671
int LIBMTP_Set_Object_u32(LIBMTP_mtpdevice_t *, uint32_t const, LIBMTP_property_t const, uint32_t const)
Definition: libmtp.c:1243
Definition: libmtp.h:653
int LIBMTP_Set_Object_u8(LIBMTP_mtpdevice_t *, uint32_t const, LIBMTP_property_t const, uint8_t const)
Definition: libmtp.c:1273
Definition: libmtp.h:749
uint32_t default_zencast_folder
Definition: libmtp.h:636
uint64_t FreeSpaceInObjects
Definition: libmtp.h:756
uint16_t bitratetype
Definition: libmtp.h:684
uint32_t bitrate
Definition: libmtp.h:683
uint32_t parent_id
Definition: libmtp.h:669
int LIBMTP_Send_File_From_File(LIBMTP_mtpdevice_t *, char const *const, LIBMTP_file_t *const, LIBMTP_progressfunc_t const, void const *const)
Definition: libmtp.c:5331
LIBMTP_error_number_t
Definition: libmtp.h:407
uint32_t storage_id
Definition: libmtp.h:670
char const * LIBMTP_Get_Filetype_Description(LIBMTP_filetype_t)
Definition: libmtp.c:761
LIBMTP_error_number_t LIBMTP_Get_Connected_Devices(LIBMTP_mtpdevice_t **)
Definition: libmtp.c:2056
uint16_t StorageType
Definition: libmtp.h:751
char * LIBMTP_Get_String_From_Object(LIBMTP_mtpdevice_t *, uint32_t const, LIBMTP_property_t const)
Definition: libmtp.c:1152
uint32_t item_id
Definition: libmtp.h:668
LIBMTP_track_t * LIBMTP_Get_Tracklisting_With_Callback(LIBMTP_mtpdevice_t *, LIBMTP_progressfunc_t const, void const *const)
Definition: libmtp.c:4389
LIBMTP_folder_t * child
Definition: libmtp.h:731
uint16_t num_entries
Definition: libmtp.h:559
int LIBMTP_Get_Track_To_Handler(LIBMTP_mtpdevice_t *, uint32_t const, MTPDataPutFunc, void *, LIBMTP_progressfunc_t const, void const *const)
Definition: libmtp.c:4948
char * artist
Definition: libmtp.h:714
uint16_t rating
Definition: libmtp.h:685
uint32_t * tracks
Definition: libmtp.h:717
uint16_t FilesystemType
Definition: libmtp.h:752
uint32_t wavecodec
Definition: libmtp.h:682
char * vendor
Definition: libmtp.h:494
void * usbinfo
Definition: libmtp.h:610
int LIBMTP_Set_Playlist_Name(LIBMTP_mtpdevice_t *, LIBMTP_playlist_t *, const char *)
Definition: libmtp.c:6473
int LIBMTP_Get_Allowed_Property_Values(LIBMTP_mtpdevice_t *, LIBMTP_property_t const, LIBMTP_filetype_t const, LIBMTP_allowed_values_t *)
Definition: libmtp.c:917
LIBMTP_devicestorage_t * storage
Definition: libmtp.h:617
char * composer
Definition: libmtp.h:715
int LIBMTP_Check_Specific_Device(int busno, int devno)
Definition: libusb-glue.c:554
uint32_t default_video_folder
Definition: libmtp.h:632
Definition: libmtp.h:573
LIBMTP_devicestorage_t * prev
Definition: libmtp.h:760
uint32_t album_id
Definition: libmtp.h:710
char * LIBMTP_Get_Deviceversion(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:3238
uint32_t default_organizer_folder
Definition: libmtp.h:634
LIBMTP_filetype_t
Definition: libmtp.h:83
void LIBMTP_destroy_filesampledata_t(LIBMTP_filesampledata_t *)
Definition: libmtp.c:8089
void LIBMTP_destroy_playlist_t(LIBMTP_playlist_t *)
Definition: libmtp.c:6911
uint32_t duration
Definition: libmtp.h:679
uint32_t samplerate
Definition: libmtp.h:680
LIBMTP_playlist_t * next
Definition: libmtp.h:703
int LIBMTP_Get_Batterylevel(LIBMTP_mtpdevice_t *, uint8_t *const, uint8_t *const)
Definition: libmtp.c:3430
time_t modificationdate
Definition: libmtp.h:659
void * params
Definition: libmtp.h:605
char * filename
Definition: libmtp.h:677
Definition: libmtp.h:696
int LIBMTP_Get_File_To_Handler(LIBMTP_mtpdevice_t *, uint32_t const, MTPDataPutFunc, void *, LIBMTP_progressfunc_t const, void const *const)
Definition: libmtp.c:4822
LIBMTP_device_entry_t device_entry
Definition: libmtp.h:506
LIBMTP_folder_t * LIBMTP_Find_Folder(LIBMTP_folder_t *, uint32_t const)
Definition: libmtp.c:6642
uint32_t device_flags
Definition: libmtp.h:498
uint32_t no_tracks
Definition: libmtp.h:718
int LIBMTP_Set_Folder_Name(LIBMTP_mtpdevice_t *, LIBMTP_folder_t *, const char *)
Definition: libmtp.c:6406
uint64_t size
Definition: libmtp.h:742
uint32_t default_playlist_folder
Definition: libmtp.h:628
uint32_t usecount
Definition: libmtp.h:686
LIBMTP_device_extension_t * next
Definition: libmtp.h:590
uint16_t(* MTPDataPutFunc)(void *params, void *priv, uint32_t sendlen, unsigned char *data, uint32_t *putlen)
Definition: libmtp.h:474
char * name
Definition: libmtp.h:700
char * genre
Definition: libmtp.h:716
char const * LIBMTP_Get_Property_Description(LIBMTP_property_t inproperty)
Definition: libmtp.c:784
LIBMTP_mtpdevice_t * LIBMTP_Get_First_Device(void)
Definition: libmtp.c:1629
Definition: libmtp.h:493
char * filename
Definition: libmtp.h:657
LIBMTP_track_t * LIBMTP_new_track_t(void)
Definition: libmtp.c:4094
int LIBMTP_Send_Track_From_File(LIBMTP_mtpdevice_t *, char const *const, LIBMTP_track_t *const, LIBMTP_progressfunc_t const, void const *const)
Definition: libmtp.c:4996
void LIBMTP_destroy_folder_t(LIBMTP_folder_t *)
Definition: libmtp.c:6611
char * LIBMTP_Get_Syncpartner(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:3323
char * LIBMTP_Get_Friendlyname(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:3260
uint32_t playlist_id
Definition: libmtp.h:697
void LIBMTP_Dump_Device_Info(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:2780
time_t modificationdate
Definition: libmtp.h:688
LIBMTP_folder_t * LIBMTP_new_folder_t(void)
Definition: libmtp.c:6588
int LIBMTP_Send_File_From_Handler(LIBMTP_mtpdevice_t *, MTPDataGetFunc, void *, LIBMTP_file_t *const, LIBMTP_progressfunc_t const, void const *const)
Definition: libmtp.c:5513
void LIBMTP_Dump_Errorstack(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:2247
char * composer
Definition: libmtp.h:673
LIBMTP_playlist_t * LIBMTP_Get_Playlist_List(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:6936
LIBMTP_error_t * errorstack
Definition: libmtp.h:622
uint32_t default_picture_folder
Definition: libmtp.h:630
uint8_t LIBMTP_Get_u8_From_Object(LIBMTP_mtpdevice_t *, uint32_t const, LIBMTP_property_t const, uint8_t const)
Definition: libmtp.c:1212
int LIBMTP_Get_Supported_Devices_List(LIBMTP_device_entry_t **const, int *const)
Definition: libusb-glue.c:125
uint32_t LIBMTP_Number_Devices_In_List(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:2038
LIBMTP_track_t * LIBMTP_Get_Trackmetadata(LIBMTP_mtpdevice_t *, uint32_t const)
Definition: libmtp.c:4557
int LIBMTP_Update_Playlist(LIBMTP_mtpdevice_t *, LIBMTP_playlist_t *const)
Definition: libmtp.c:7693
char * LIBMTP_Get_Modelname(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:3201
uint32_t default_album_folder
Definition: libmtp.h:638
LIBMTP_album_t * LIBMTP_Get_Album_List(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:7886
char * product
Definition: libmtp.h:496
LIBMTP_track_t * LIBMTP_Get_Tracklisting(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:4341
int LIBMTP_Send_Representative_Sample(LIBMTP_mtpdevice_t *, uint32_t const, LIBMTP_filesampledata_t *)
Definition: libmtp.c:8256
LIBMTP_filetype_t filetype
Definition: libmtp.h:741
uint64_t filesize
Definition: libmtp.h:687
uint32_t no_tracks
Definition: libmtp.h:702
char * date
Definition: libmtp.h:676
LIBMTP_playlist_t * LIBMTP_Get_Playlist(LIBMTP_mtpdevice_t *, uint32_t const)
Definition: libmtp.c:7014
int LIBMTP_Format_Storage(LIBMTP_mtpdevice_t *, LIBMTP_devicestorage_t *)
Definition: libmtp.c:3469
uint32_t default_text_folder
Definition: libmtp.h:640
char * LIBMTP_Get_Serialnumber(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:3219
int LIBMTP_Track_Exists(LIBMTP_mtpdevice_t *, uint32_t)
Definition: libmtp.c:6565
uint32_t storage_id
Definition: libmtp.h:728
void LIBMTP_Init(void)
Definition: libmtp.c:743
Definition: libmtp.h:737
uint32_t parent_id
Definition: libmtp.h:655
int LIBMTP_Send_Track_From_File_Descriptor(LIBMTP_mtpdevice_t *, int const, LIBMTP_track_t *const, LIBMTP_progressfunc_t const, void const *const)
Definition: libmtp.c:5128
int LIBMTP_Create_New_Album(LIBMTP_mtpdevice_t *, LIBMTP_album_t *const)
Definition: libmtp.c:8032
int LIBMTP_Get_Supported_Filetypes(LIBMTP_mtpdevice_t *, uint16_t **const, uint16_t *const)
Definition: libmtp.c:3582
uint64_t filesize
Definition: libmtp.h:658
uint32_t id
Definition: libmtp.h:750
void LIBMTP_Set_Debug(int)
Definition: libmtp.c:725
Definition: libmtp.h:523
char * name
Definition: libmtp.h:577
uint32_t parent_id
Definition: libmtp.h:711
int LIBMTP_Get_File_To_File(LIBMTP_mtpdevice_t *, uint32_t, char const *const, LIBMTP_progressfunc_t const, void const *const)
Definition: libmtp.c:4698
Definition: libmtp.h:514
char * data
Definition: libmtp.h:743
uint8_t devnum
Definition: libmtp.h:508
uint32_t height
Definition: libmtp.h:739
void * cd
Definition: libmtp.h:642
int LIBMTP_Delete_Object(LIBMTP_mtpdevice_t *, uint32_t)
Definition: libmtp.c:6267
LIBMTP_playlist_t * LIBMTP_new_playlist_t(void)
Definition: libmtp.c:6888
char * VolumeIdentifier
Definition: libmtp.h:758
uint32_t width
Definition: libmtp.h:738
uint32_t folder_id
Definition: libmtp.h:726
uint16_t tracknumber
Definition: libmtp.h:678
int LIBMTP_Get_Track_To_File_Descriptor(LIBMTP_mtpdevice_t *, uint32_t const, int const, LIBMTP_progressfunc_t const, void const *const)
Definition: libmtp.c:4921
LIBMTP_datatype_t datatype
Definition: libmtp.h:563
LIBMTP_album_t * LIBMTP_Get_Album_List_For_Storage(LIBMTP_mtpdevice_t *, uint32_t const)
Definition: libmtp.c:7904
int LIBMTP_Set_Object_u16(LIBMTP_mtpdevice_t *, uint32_t const, LIBMTP_property_t const, uint16_t const)
Definition: libmtp.c:1258
int LIBMTP_Get_Track_To_File(LIBMTP_mtpdevice_t *, uint32_t, char const *const, LIBMTP_progressfunc_t const, void const *const)
Definition: libmtp.c:4897
uint32_t bus_location
Definition: libmtp.h:507
void LIBMTP_Release_Device_List(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:2090
uint64_t MaxCapacity
Definition: libmtp.h:754
uint32_t duration
Definition: libmtp.h:740
LIBMTP_devicestorage_t * next
Definition: libmtp.h:759
int LIBMTP_Get_File_To_File_Descriptor(LIBMTP_mtpdevice_t *, uint32_t const, int const, LIBMTP_progressfunc_t const, void const *const)
Definition: libmtp.c:4758
uint32_t * tracks
Definition: libmtp.h:701
int major
Definition: libmtp.h:581
int LIBMTP_Get_Representative_Sample(LIBMTP_mtpdevice_t *, uint32_t const, LIBMTP_filesampledata_t *)
Definition: libmtp.c:8351
LIBMTP_error_number_t LIBMTP_Detect_Raw_Devices(LIBMTP_raw_device_t **, int *)
Definition: libusb-glue.c:589
uint32_t storage_id
Definition: libmtp.h:656
int minor
Definition: libmtp.h:585
uint32_t LIBMTP_Get_u32_From_Object(LIBMTP_mtpdevice_t *, uint32_t const, LIBMTP_property_t const, uint32_t const)
Definition: libmtp.c:1182
LIBMTP_album_t * LIBMTP_new_album_t(void)
Definition: libmtp.c:7724
LIBMTP_file_t * LIBMTP_Get_Filelisting_With_Callback(LIBMTP_mtpdevice_t *, LIBMTP_progressfunc_t const, void const *const)
Definition: libmtp.c:3837
int LIBMTP_Set_Friendlyname(LIBMTP_mtpdevice_t *, char const *const)
Definition: libmtp.c:3293
uint16_t(* MTPDataGetFunc)(void *params, void *priv, uint32_t wantlen, unsigned char *data, uint32_t *gotlen)
Definition: libmtp.h:459
uint16_t vendor_id
Definition: libmtp.h:495
char * album
Definition: libmtp.h:675
LIBMTP_device_extension_t * extensions
Definition: libmtp.h:644
void LIBMTP_destroy_album_t(LIBMTP_album_t *)
Definition: libmtp.c:7749
int LIBMTP_Create_New_Playlist(LIBMTP_mtpdevice_t *, LIBMTP_playlist_t *const)
Definition: libmtp.c:7641
LIBMTP_mtpdevice_t * next
Definition: libmtp.h:647
Definition: libmtp.h:505
int LIBMTP_Reset_Device(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:3157
int LIBMTP_Send_File_From_File_Descriptor(LIBMTP_mtpdevice_t *, int const, LIBMTP_file_t *const, LIBMTP_progressfunc_t const, void const *const)
Definition: libmtp.c:5409
char * artist
Definition: libmtp.h:672
int LIBMTP_Get_Storage(LIBMTP_mtpdevice_t *, int const)
Definition: libmtp.c:3646
int LIBMTP_Get_Secure_Time(LIBMTP_mtpdevice_t *, char **const)
Definition: libmtp.c:3548
char * LIBMTP_Get_Manufacturername(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:3182
Definition: libmtp.h:725
int LIBMTP_Send_Track_From_Handler(LIBMTP_mtpdevice_t *, MTPDataGetFunc, void *, LIBMTP_track_t *const, LIBMTP_progressfunc_t const, void const *const)
Definition: libmtp.c:5232
char * StorageDescription
Definition: libmtp.h:757
uint32_t item_id
Definition: libmtp.h:654
int LIBMTP_Update_Album(LIBMTP_mtpdevice_t *, LIBMTP_album_t const *const)
Definition: libmtp.c:8431
uint32_t parent_id
Definition: libmtp.h:698
LIBMTP_property_t
Definition: libmtp.h:218
int LIBMTP_Update_Track_Metadata(LIBMTP_mtpdevice_t *, LIBMTP_track_t const *const)
Definition: libmtp.c:5876
LIBMTP_filetype_t filetype
Definition: libmtp.h:660
int LIBMTP_Set_Object_String(LIBMTP_mtpdevice_t *, uint32_t const, LIBMTP_property_t const, char const *const)
Definition: libmtp.c:1227
int LIBMTP_Set_Album_Name(LIBMTP_mtpdevice_t *, LIBMTP_album_t *, const char *)
Definition: libmtp.c:6510
int LIBMTP_Get_Representative_Sample_Format(LIBMTP_mtpdevice_t *, LIBMTP_filetype_t const, LIBMTP_filesampledata_t **)
Definition: libmtp.c:8123
int is_range
Definition: libmtp.h:567
LIBMTP_mtpdevice_t * LIBMTP_Open_Raw_Device(LIBMTP_raw_device_t *)
Definition: libmtp.c:1769
int LIBMTP_debug
Definition: libmtp.c:71
LIBMTP_error_t * LIBMTP_Get_Errorstack(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:2204
uint32_t LIBMTP_Create_Folder(LIBMTP_mtpdevice_t *, char *, uint32_t, uint32_t)
Definition: libmtp.c:6822
int LIBMTP_Is_Property_Supported(LIBMTP_mtpdevice_t *, LIBMTP_property_t const, LIBMTP_filetype_t const)
Definition: libmtp.c:1114
LIBMTP_folder_t * LIBMTP_Get_Folder_List(LIBMTP_mtpdevice_t *)
Definition: libmtp.c:6710