29 #ifndef LIBMTP_H_INCLUSION_GUARD
30 #define LIBMTP_H_INCLUSION_GUARD
32 #define LIBMTP_VERSION 1.1.6
33 #define LIBMTP_VERSION_STRING "1.1.6"
39 #define snprintf _snprintf
40 #define ssize_t SSIZE_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;
71 #define LIBMTP_DEBUG_NONE 0x00
72 #define LIBMTP_DEBUG_PTP 0x01
73 #define LIBMTP_DEBUG_PLST 0x02
74 #define LIBMTP_DEBUG_USB 0x04
75 #define LIBMTP_DEBUG_DATA 0x08
76 #define LIBMTP_DEBUG_ALL 0xFF
85 LIBMTP_FILETYPE_FOLDER,
90 LIBMTP_FILETYPE_AUDIBLE,
92 LIBMTP_FILETYPE_UNDEF_AUDIO,
98 LIBMTP_FILETYPE_UNDEF_VIDEO,
100 LIBMTP_FILETYPE_JFIF,
101 LIBMTP_FILETYPE_TIFF,
104 LIBMTP_FILETYPE_PICT,
106 LIBMTP_FILETYPE_VCALENDAR1,
107 LIBMTP_FILETYPE_VCALENDAR2,
108 LIBMTP_FILETYPE_VCARD2,
109 LIBMTP_FILETYPE_VCARD3,
110 LIBMTP_FILETYPE_WINDOWSIMAGEFORMAT,
111 LIBMTP_FILETYPE_WINEXEC,
112 LIBMTP_FILETYPE_TEXT,
113 LIBMTP_FILETYPE_HTML,
114 LIBMTP_FILETYPE_FIRMWARE,
116 LIBMTP_FILETYPE_MEDIACARD,
117 LIBMTP_FILETYPE_FLAC,
127 LIBMTP_FILETYPE_ALBUM,
128 LIBMTP_FILETYPE_PLAYLIST,
129 LIBMTP_FILETYPE_UNKNOWN
139 #define LIBMTP_FILETYPE_IS_AUDIO(a)\
140 (a == LIBMTP_FILETYPE_WAV ||\
141 a == LIBMTP_FILETYPE_MP3 ||\
142 a == LIBMTP_FILETYPE_MP2 ||\
143 a == LIBMTP_FILETYPE_WMA ||\
144 a == LIBMTP_FILETYPE_OGG ||\
145 a == LIBMTP_FILETYPE_FLAC ||\
146 a == LIBMTP_FILETYPE_AAC ||\
147 a == LIBMTP_FILETYPE_M4A ||\
148 a == LIBMTP_FILETYPE_AUDIBLE ||\
149 a == LIBMTP_FILETYPE_UNDEF_AUDIO)
158 #define LIBMTP_FILETYPE_IS_VIDEO(a)\
159 (a == LIBMTP_FILETYPE_WMV ||\
160 a == LIBMTP_FILETYPE_AVI ||\
161 a == LIBMTP_FILETYPE_MPEG ||\
162 a == LIBMTP_FILETYPE_UNDEF_VIDEO)
168 #define LIBMTP_FILETYPE_IS_AUDIOVIDEO(a)\
169 (a == LIBMTP_FILETYPE_MP4 ||\
170 a == LIBMTP_FILETYPE_ASF ||\
171 a == LIBMTP_FILETYPE_QT)
179 #define LIBMTP_FILETYPE_IS_TRACK(a)\
180 (LIBMTP_FILETYPE_IS_AUDIO(a) ||\
181 LIBMTP_FILETYPE_IS_VIDEO(a) ||\
182 LIBMTP_FILETYPE_IS_AUDIOVIDEO(a))
188 #define LIBMTP_FILETYPE_IS_IMAGE(a)\
189 (a == LIBMTP_FILETYPE_JPEG ||\
190 a == LIBMTP_FILETYPE_JFIF ||\
191 a == LIBMTP_FILETYPE_TIFF ||\
192 a == LIBMTP_FILETYPE_BMP ||\
193 a == LIBMTP_FILETYPE_GIF ||\
194 a == LIBMTP_FILETYPE_PICT ||\
195 a == LIBMTP_FILETYPE_PNG ||\
196 a == LIBMTP_FILETYPE_JP2 ||\
197 a == LIBMTP_FILETYPE_JPX ||\
198 a == LIBMTP_FILETYPE_WINDOWSIMAGEFORMAT)
204 #define LIBMTP_FILETYPE_IS_ADDRESSBOOK(a)\
205 (a == LIBMTP_FILETYPE_VCARD2 ||\
206 a == LIBMTP_FILETYPE_VCARD3)
212 #define LIBMTP_FILETYPE_IS_CALENDAR(a)\
213 (a == LIBMTP_FILETYPE_VCALENDAR1 ||\
214 a == LIBMTP_FILETYPE_VCALENDAR2)
221 LIBMTP_PROPERTY_StorageID,
222 LIBMTP_PROPERTY_ObjectFormat,
223 LIBMTP_PROPERTY_ProtectionStatus,
224 LIBMTP_PROPERTY_ObjectSize,
225 LIBMTP_PROPERTY_AssociationType,
226 LIBMTP_PROPERTY_AssociationDesc,
227 LIBMTP_PROPERTY_ObjectFileName,
228 LIBMTP_PROPERTY_DateCreated,
229 LIBMTP_PROPERTY_DateModified,
230 LIBMTP_PROPERTY_Keywords,
231 LIBMTP_PROPERTY_ParentObject,
232 LIBMTP_PROPERTY_AllowedFolderContents,
233 LIBMTP_PROPERTY_Hidden,
234 LIBMTP_PROPERTY_SystemObject,
235 LIBMTP_PROPERTY_PersistantUniqueObjectIdentifier,
236 LIBMTP_PROPERTY_SyncID,
237 LIBMTP_PROPERTY_PropertyBag,
238 LIBMTP_PROPERTY_Name,
239 LIBMTP_PROPERTY_CreatedBy,
240 LIBMTP_PROPERTY_Artist,
241 LIBMTP_PROPERTY_DateAuthored,
242 LIBMTP_PROPERTY_Description,
243 LIBMTP_PROPERTY_URLReference,
244 LIBMTP_PROPERTY_LanguageLocale,
245 LIBMTP_PROPERTY_CopyrightInformation,
246 LIBMTP_PROPERTY_Source,
247 LIBMTP_PROPERTY_OriginLocation,
248 LIBMTP_PROPERTY_DateAdded,
249 LIBMTP_PROPERTY_NonConsumable,
250 LIBMTP_PROPERTY_CorruptOrUnplayable,
251 LIBMTP_PROPERTY_ProducerSerialNumber,
252 LIBMTP_PROPERTY_RepresentativeSampleFormat,
253 LIBMTP_PROPERTY_RepresentativeSampleSize,
254 LIBMTP_PROPERTY_RepresentativeSampleHeight,
255 LIBMTP_PROPERTY_RepresentativeSampleWidth,
256 LIBMTP_PROPERTY_RepresentativeSampleDuration,
257 LIBMTP_PROPERTY_RepresentativeSampleData,
258 LIBMTP_PROPERTY_Width,
259 LIBMTP_PROPERTY_Height,
260 LIBMTP_PROPERTY_Duration,
261 LIBMTP_PROPERTY_Rating,
262 LIBMTP_PROPERTY_Track,
263 LIBMTP_PROPERTY_Genre,
264 LIBMTP_PROPERTY_Credits,
265 LIBMTP_PROPERTY_Lyrics,
266 LIBMTP_PROPERTY_SubscriptionContentID,
267 LIBMTP_PROPERTY_ProducedBy,
268 LIBMTP_PROPERTY_UseCount,
269 LIBMTP_PROPERTY_SkipCount,
270 LIBMTP_PROPERTY_LastAccessed,
271 LIBMTP_PROPERTY_ParentalRating,
272 LIBMTP_PROPERTY_MetaGenre,
273 LIBMTP_PROPERTY_Composer,
274 LIBMTP_PROPERTY_EffectiveRating,
275 LIBMTP_PROPERTY_Subtitle,
276 LIBMTP_PROPERTY_OriginalReleaseDate,
277 LIBMTP_PROPERTY_AlbumName,
278 LIBMTP_PROPERTY_AlbumArtist,
279 LIBMTP_PROPERTY_Mood,
280 LIBMTP_PROPERTY_DRMStatus,
281 LIBMTP_PROPERTY_SubDescription,
282 LIBMTP_PROPERTY_IsCropped,
283 LIBMTP_PROPERTY_IsColorCorrected,
284 LIBMTP_PROPERTY_ImageBitDepth,
285 LIBMTP_PROPERTY_Fnumber,
286 LIBMTP_PROPERTY_ExposureTime,
287 LIBMTP_PROPERTY_ExposureIndex,
288 LIBMTP_PROPERTY_DisplayName,
289 LIBMTP_PROPERTY_BodyText,
290 LIBMTP_PROPERTY_Subject,
291 LIBMTP_PROPERTY_Priority,
292 LIBMTP_PROPERTY_GivenName,
293 LIBMTP_PROPERTY_MiddleNames,
294 LIBMTP_PROPERTY_FamilyName,
295 LIBMTP_PROPERTY_Prefix,
296 LIBMTP_PROPERTY_Suffix,
297 LIBMTP_PROPERTY_PhoneticGivenName,
298 LIBMTP_PROPERTY_PhoneticFamilyName,
299 LIBMTP_PROPERTY_EmailPrimary,
300 LIBMTP_PROPERTY_EmailPersonal1,
301 LIBMTP_PROPERTY_EmailPersonal2,
302 LIBMTP_PROPERTY_EmailBusiness1,
303 LIBMTP_PROPERTY_EmailBusiness2,
304 LIBMTP_PROPERTY_EmailOthers,
305 LIBMTP_PROPERTY_PhoneNumberPrimary,
306 LIBMTP_PROPERTY_PhoneNumberPersonal,
307 LIBMTP_PROPERTY_PhoneNumberPersonal2,
308 LIBMTP_PROPERTY_PhoneNumberBusiness,
309 LIBMTP_PROPERTY_PhoneNumberBusiness2,
310 LIBMTP_PROPERTY_PhoneNumberMobile,
311 LIBMTP_PROPERTY_PhoneNumberMobile2,
312 LIBMTP_PROPERTY_FaxNumberPrimary,
313 LIBMTP_PROPERTY_FaxNumberPersonal,
314 LIBMTP_PROPERTY_FaxNumberBusiness,
315 LIBMTP_PROPERTY_PagerNumber,
316 LIBMTP_PROPERTY_PhoneNumberOthers,
317 LIBMTP_PROPERTY_PrimaryWebAddress,
318 LIBMTP_PROPERTY_PersonalWebAddress,
319 LIBMTP_PROPERTY_BusinessWebAddress,
320 LIBMTP_PROPERTY_InstantMessengerAddress,
321 LIBMTP_PROPERTY_InstantMessengerAddress2,
322 LIBMTP_PROPERTY_InstantMessengerAddress3,
323 LIBMTP_PROPERTY_PostalAddressPersonalFull,
324 LIBMTP_PROPERTY_PostalAddressPersonalFullLine1,
325 LIBMTP_PROPERTY_PostalAddressPersonalFullLine2,
326 LIBMTP_PROPERTY_PostalAddressPersonalFullCity,
327 LIBMTP_PROPERTY_PostalAddressPersonalFullRegion,
328 LIBMTP_PROPERTY_PostalAddressPersonalFullPostalCode,
329 LIBMTP_PROPERTY_PostalAddressPersonalFullCountry,
330 LIBMTP_PROPERTY_PostalAddressBusinessFull,
331 LIBMTP_PROPERTY_PostalAddressBusinessLine1,
332 LIBMTP_PROPERTY_PostalAddressBusinessLine2,
333 LIBMTP_PROPERTY_PostalAddressBusinessCity,
334 LIBMTP_PROPERTY_PostalAddressBusinessRegion,
335 LIBMTP_PROPERTY_PostalAddressBusinessPostalCode,
336 LIBMTP_PROPERTY_PostalAddressBusinessCountry,
337 LIBMTP_PROPERTY_PostalAddressOtherFull,
338 LIBMTP_PROPERTY_PostalAddressOtherLine1,
339 LIBMTP_PROPERTY_PostalAddressOtherLine2,
340 LIBMTP_PROPERTY_PostalAddressOtherCity,
341 LIBMTP_PROPERTY_PostalAddressOtherRegion,
342 LIBMTP_PROPERTY_PostalAddressOtherPostalCode,
343 LIBMTP_PROPERTY_PostalAddressOtherCountry,
344 LIBMTP_PROPERTY_OrganizationName,
345 LIBMTP_PROPERTY_PhoneticOrganizationName,
346 LIBMTP_PROPERTY_Role,
347 LIBMTP_PROPERTY_Birthdate,
348 LIBMTP_PROPERTY_MessageTo,
349 LIBMTP_PROPERTY_MessageCC,
350 LIBMTP_PROPERTY_MessageBCC,
351 LIBMTP_PROPERTY_MessageRead,
352 LIBMTP_PROPERTY_MessageReceivedTime,
353 LIBMTP_PROPERTY_MessageSender,
354 LIBMTP_PROPERTY_ActivityBeginTime,
355 LIBMTP_PROPERTY_ActivityEndTime,
356 LIBMTP_PROPERTY_ActivityLocation,
357 LIBMTP_PROPERTY_ActivityRequiredAttendees,
358 LIBMTP_PROPERTY_ActivityOptionalAttendees,
359 LIBMTP_PROPERTY_ActivityResources,
360 LIBMTP_PROPERTY_ActivityAccepted,
361 LIBMTP_PROPERTY_Owner,
362 LIBMTP_PROPERTY_Editor,
363 LIBMTP_PROPERTY_Webmaster,
364 LIBMTP_PROPERTY_URLSource,
365 LIBMTP_PROPERTY_URLDestination,
366 LIBMTP_PROPERTY_TimeBookmark,
367 LIBMTP_PROPERTY_ObjectBookmark,
368 LIBMTP_PROPERTY_ByteBookmark,
369 LIBMTP_PROPERTY_LastBuildDate,
370 LIBMTP_PROPERTY_TimetoLive,
371 LIBMTP_PROPERTY_MediaGUID,
372 LIBMTP_PROPERTY_TotalBitRate,
373 LIBMTP_PROPERTY_BitRateType,
374 LIBMTP_PROPERTY_SampleRate,
375 LIBMTP_PROPERTY_NumberOfChannels,
376 LIBMTP_PROPERTY_AudioBitDepth,
377 LIBMTP_PROPERTY_ScanDepth,
378 LIBMTP_PROPERTY_AudioWAVECodec,
379 LIBMTP_PROPERTY_AudioBitRate,
380 LIBMTP_PROPERTY_VideoFourCCCodec,
381 LIBMTP_PROPERTY_VideoBitRate,
382 LIBMTP_PROPERTY_FramesPerThousandSeconds,
383 LIBMTP_PROPERTY_KeyFrameDistance,
384 LIBMTP_PROPERTY_BufferSize,
385 LIBMTP_PROPERTY_EncodingQuality,
386 LIBMTP_PROPERTY_EncodingProfile,
387 LIBMTP_PROPERTY_BuyFlag,
388 LIBMTP_PROPERTY_UNKNOWN
395 LIBMTP_DATATYPE_INT8,
396 LIBMTP_DATATYPE_UINT8,
397 LIBMTP_DATATYPE_INT16,
398 LIBMTP_DATATYPE_UINT16,
399 LIBMTP_DATATYPE_INT32,
400 LIBMTP_DATATYPE_UINT32,
401 LIBMTP_DATATYPE_INT64,
402 LIBMTP_DATATYPE_UINT64,
435 LIBMTP_ERROR_GENERAL,
436 LIBMTP_ERROR_PTP_LAYER,
437 LIBMTP_ERROR_USB_LAYER,
438 LIBMTP_ERROR_MEMORY_ALLOCATION,
439 LIBMTP_ERROR_NO_DEVICE_ATTACHED,
440 LIBMTP_ERROR_STORAGE_FULL,
441 LIBMTP_ERROR_CONNECTING,
442 LIBMTP_ERROR_CANCELLED
471 void const *
const data);
486 uint32_t wantlen,
unsigned char *data, uint32_t *gotlen);
501 uint32_t sendlen,
unsigned char *data, uint32_t *putlen);
506 #define LIBMTP_HANDLER_RETURN_OK 0
507 #define LIBMTP_HANDLER_RETURN_ERROR 1
508 #define LIBMTP_HANDLER_RETURN_CANCEL 2
797 LIBMTP_EVENT_STORE_ADDED,
798 LIBMTP_EVENT_STORE_REMOVED,
799 LIBMTP_EVENT_OBJECT_ADDED,
800 LIBMTP_EVENT_OBJECT_REMOVED,
857 #define LIBMTP_STORAGE_SORTBY_NOTSORTED 0
858 #define LIBMTP_STORAGE_SORTBY_FREESPACE 1
859 #define LIBMTP_STORAGE_SORTBY_MAXSPACE 2
948 unsigned char **data,
unsigned int *size);
1039 unsigned char **,
unsigned int *);
1041 uint64_t,
unsigned char *,
unsigned int);