~ubuntu-branches/ubuntu/precise/libmtp/precise-proposed

« back to all changes in this revision

Viewing changes to src/libmtp.h

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2009-12-14 22:32:10 UTC
  • mto: (16.1.3 sid) (0.2.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 24.
  • Revision ID: james.westby@ubuntu.com-20091214223210-vekc5340wzmz54bw
Tags: upstream-1.0.1
ImportĀ upstreamĀ versionĀ 1.0.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
#ifndef LIBMTP_H_INCLUSION_GUARD
30
30
#define LIBMTP_H_INCLUSION_GUARD
31
31
 
32
 
#define LIBMTP_VERSION 0.3.7
33
 
#define LIBMTP_VERSION_STRING "0.3.7"
 
32
#define LIBMTP_VERSION 1.0.1
 
33
#define LIBMTP_VERSION_STRING "1.0.1"
34
34
 
35
35
/* This handles MSVC pecularities */
36
36
#ifdef _MSC_VER
105
105
  LIBMTP_FILETYPE_MHT,
106
106
  LIBMTP_FILETYPE_JP2,
107
107
  LIBMTP_FILETYPE_JPX,
 
108
  LIBMTP_FILETYPE_ALBUM,
 
109
  LIBMTP_FILETYPE_PLAYLIST,
108
110
  LIBMTP_FILETYPE_UNKNOWN
109
111
} LIBMTP_filetype_t;
110
112
 
124
126
 a == LIBMTP_FILETYPE_FLAC ||\
125
127
 a == LIBMTP_FILETYPE_AAC ||\
126
128
 a == LIBMTP_FILETYPE_M4A ||\
 
129
 a == LIBMTP_FILETYPE_AUDIBLE ||\
127
130
 a == LIBMTP_FILETYPE_UNDEF_AUDIO)
128
131
 
129
132
/**
192
195
a == LIBMTP_FILETYPE_VCALENDAR2)
193
196
 
194
197
/**
 
198
 * The properties defined here are the external types used
 
199
 * by the libmtp library interface.
 
200
 */
 
201
typedef enum {
 
202
  LIBMTP_PROPERTY_StorageID,
 
203
  LIBMTP_PROPERTY_ObjectFormat,
 
204
  LIBMTP_PROPERTY_ProtectionStatus,
 
205
  LIBMTP_PROPERTY_ObjectSize,
 
206
  LIBMTP_PROPERTY_AssociationType,
 
207
  LIBMTP_PROPERTY_AssociationDesc,
 
208
  LIBMTP_PROPERTY_ObjectFileName,
 
209
  LIBMTP_PROPERTY_DateCreated,
 
210
  LIBMTP_PROPERTY_DateModified,
 
211
  LIBMTP_PROPERTY_Keywords,
 
212
  LIBMTP_PROPERTY_ParentObject,
 
213
  LIBMTP_PROPERTY_AllowedFolderContents,
 
214
  LIBMTP_PROPERTY_Hidden,
 
215
  LIBMTP_PROPERTY_SystemObject,
 
216
  LIBMTP_PROPERTY_PersistantUniqueObjectIdentifier,
 
217
  LIBMTP_PROPERTY_SyncID,
 
218
  LIBMTP_PROPERTY_PropertyBag,
 
219
  LIBMTP_PROPERTY_Name,
 
220
  LIBMTP_PROPERTY_CreatedBy,
 
221
  LIBMTP_PROPERTY_Artist,
 
222
  LIBMTP_PROPERTY_DateAuthored,
 
223
  LIBMTP_PROPERTY_Description,
 
224
  LIBMTP_PROPERTY_URLReference,
 
225
  LIBMTP_PROPERTY_LanguageLocale,
 
226
  LIBMTP_PROPERTY_CopyrightInformation,
 
227
  LIBMTP_PROPERTY_Source,
 
228
  LIBMTP_PROPERTY_OriginLocation,
 
229
  LIBMTP_PROPERTY_DateAdded,
 
230
  LIBMTP_PROPERTY_NonConsumable,
 
231
  LIBMTP_PROPERTY_CorruptOrUnplayable,
 
232
  LIBMTP_PROPERTY_ProducerSerialNumber,
 
233
  LIBMTP_PROPERTY_RepresentativeSampleFormat,
 
234
  LIBMTP_PROPERTY_RepresentativeSampleSize,
 
235
  LIBMTP_PROPERTY_RepresentativeSampleHeight,
 
236
  LIBMTP_PROPERTY_RepresentativeSampleWidth,
 
237
  LIBMTP_PROPERTY_RepresentativeSampleDuration,
 
238
  LIBMTP_PROPERTY_RepresentativeSampleData,
 
239
  LIBMTP_PROPERTY_Width,
 
240
  LIBMTP_PROPERTY_Height,
 
241
  LIBMTP_PROPERTY_Duration,
 
242
  LIBMTP_PROPERTY_Rating,
 
243
  LIBMTP_PROPERTY_Track,
 
244
  LIBMTP_PROPERTY_Genre,
 
245
  LIBMTP_PROPERTY_Credits,
 
246
  LIBMTP_PROPERTY_Lyrics,
 
247
  LIBMTP_PROPERTY_SubscriptionContentID,
 
248
  LIBMTP_PROPERTY_ProducedBy,
 
249
  LIBMTP_PROPERTY_UseCount,
 
250
  LIBMTP_PROPERTY_SkipCount,
 
251
  LIBMTP_PROPERTY_LastAccessed,
 
252
  LIBMTP_PROPERTY_ParentalRating,
 
253
  LIBMTP_PROPERTY_MetaGenre,
 
254
  LIBMTP_PROPERTY_Composer,
 
255
  LIBMTP_PROPERTY_EffectiveRating,
 
256
  LIBMTP_PROPERTY_Subtitle,
 
257
  LIBMTP_PROPERTY_OriginalReleaseDate,
 
258
  LIBMTP_PROPERTY_AlbumName,
 
259
  LIBMTP_PROPERTY_AlbumArtist,
 
260
  LIBMTP_PROPERTY_Mood,
 
261
  LIBMTP_PROPERTY_DRMStatus,
 
262
  LIBMTP_PROPERTY_SubDescription,
 
263
  LIBMTP_PROPERTY_IsCropped,
 
264
  LIBMTP_PROPERTY_IsColorCorrected,
 
265
  LIBMTP_PROPERTY_ImageBitDepth,
 
266
  LIBMTP_PROPERTY_Fnumber,
 
267
  LIBMTP_PROPERTY_ExposureTime,
 
268
  LIBMTP_PROPERTY_ExposureIndex,
 
269
  LIBMTP_PROPERTY_DisplayName,
 
270
  LIBMTP_PROPERTY_BodyText,
 
271
  LIBMTP_PROPERTY_Subject,
 
272
  LIBMTP_PROPERTY_Priority,
 
273
  LIBMTP_PROPERTY_GivenName,
 
274
  LIBMTP_PROPERTY_MiddleNames,
 
275
  LIBMTP_PROPERTY_FamilyName,
 
276
  LIBMTP_PROPERTY_Prefix,
 
277
  LIBMTP_PROPERTY_Suffix,
 
278
  LIBMTP_PROPERTY_PhoneticGivenName,
 
279
  LIBMTP_PROPERTY_PhoneticFamilyName,
 
280
  LIBMTP_PROPERTY_EmailPrimary,
 
281
  LIBMTP_PROPERTY_EmailPersonal1,
 
282
  LIBMTP_PROPERTY_EmailPersonal2,
 
283
  LIBMTP_PROPERTY_EmailBusiness1,
 
284
  LIBMTP_PROPERTY_EmailBusiness2,
 
285
  LIBMTP_PROPERTY_EmailOthers,
 
286
  LIBMTP_PROPERTY_PhoneNumberPrimary,
 
287
  LIBMTP_PROPERTY_PhoneNumberPersonal,
 
288
  LIBMTP_PROPERTY_PhoneNumberPersonal2,
 
289
  LIBMTP_PROPERTY_PhoneNumberBusiness,
 
290
  LIBMTP_PROPERTY_PhoneNumberBusiness2,
 
291
  LIBMTP_PROPERTY_PhoneNumberMobile,
 
292
  LIBMTP_PROPERTY_PhoneNumberMobile2,
 
293
  LIBMTP_PROPERTY_FaxNumberPrimary,
 
294
  LIBMTP_PROPERTY_FaxNumberPersonal,
 
295
  LIBMTP_PROPERTY_FaxNumberBusiness,
 
296
  LIBMTP_PROPERTY_PagerNumber,
 
297
  LIBMTP_PROPERTY_PhoneNumberOthers,
 
298
  LIBMTP_PROPERTY_PrimaryWebAddress,
 
299
  LIBMTP_PROPERTY_PersonalWebAddress,
 
300
  LIBMTP_PROPERTY_BusinessWebAddress,
 
301
  LIBMTP_PROPERTY_InstantMessengerAddress,
 
302
  LIBMTP_PROPERTY_InstantMessengerAddress2,
 
303
  LIBMTP_PROPERTY_InstantMessengerAddress3,
 
304
  LIBMTP_PROPERTY_PostalAddressPersonalFull,
 
305
  LIBMTP_PROPERTY_PostalAddressPersonalFullLine1,
 
306
  LIBMTP_PROPERTY_PostalAddressPersonalFullLine2,
 
307
  LIBMTP_PROPERTY_PostalAddressPersonalFullCity,
 
308
  LIBMTP_PROPERTY_PostalAddressPersonalFullRegion,
 
309
  LIBMTP_PROPERTY_PostalAddressPersonalFullPostalCode,
 
310
  LIBMTP_PROPERTY_PostalAddressPersonalFullCountry,
 
311
  LIBMTP_PROPERTY_PostalAddressBusinessFull,
 
312
  LIBMTP_PROPERTY_PostalAddressBusinessLine1,
 
313
  LIBMTP_PROPERTY_PostalAddressBusinessLine2,
 
314
  LIBMTP_PROPERTY_PostalAddressBusinessCity,
 
315
  LIBMTP_PROPERTY_PostalAddressBusinessRegion,
 
316
  LIBMTP_PROPERTY_PostalAddressBusinessPostalCode,
 
317
  LIBMTP_PROPERTY_PostalAddressBusinessCountry,
 
318
  LIBMTP_PROPERTY_PostalAddressOtherFull,
 
319
  LIBMTP_PROPERTY_PostalAddressOtherLine1,
 
320
  LIBMTP_PROPERTY_PostalAddressOtherLine2,
 
321
  LIBMTP_PROPERTY_PostalAddressOtherCity,
 
322
  LIBMTP_PROPERTY_PostalAddressOtherRegion,
 
323
  LIBMTP_PROPERTY_PostalAddressOtherPostalCode,
 
324
  LIBMTP_PROPERTY_PostalAddressOtherCountry,
 
325
  LIBMTP_PROPERTY_OrganizationName,
 
326
  LIBMTP_PROPERTY_PhoneticOrganizationName,
 
327
  LIBMTP_PROPERTY_Role,
 
328
  LIBMTP_PROPERTY_Birthdate,
 
329
  LIBMTP_PROPERTY_MessageTo,
 
330
  LIBMTP_PROPERTY_MessageCC,
 
331
  LIBMTP_PROPERTY_MessageBCC,
 
332
  LIBMTP_PROPERTY_MessageRead,
 
333
  LIBMTP_PROPERTY_MessageReceivedTime,
 
334
  LIBMTP_PROPERTY_MessageSender,
 
335
  LIBMTP_PROPERTY_ActivityBeginTime,
 
336
  LIBMTP_PROPERTY_ActivityEndTime,
 
337
  LIBMTP_PROPERTY_ActivityLocation,
 
338
  LIBMTP_PROPERTY_ActivityRequiredAttendees,
 
339
  LIBMTP_PROPERTY_ActivityOptionalAttendees,
 
340
  LIBMTP_PROPERTY_ActivityResources,
 
341
  LIBMTP_PROPERTY_ActivityAccepted,
 
342
  LIBMTP_PROPERTY_Owner,
 
343
  LIBMTP_PROPERTY_Editor,
 
344
  LIBMTP_PROPERTY_Webmaster,
 
345
  LIBMTP_PROPERTY_URLSource,
 
346
  LIBMTP_PROPERTY_URLDestination,
 
347
  LIBMTP_PROPERTY_TimeBookmark,
 
348
  LIBMTP_PROPERTY_ObjectBookmark,
 
349
  LIBMTP_PROPERTY_ByteBookmark,
 
350
  LIBMTP_PROPERTY_LastBuildDate,
 
351
  LIBMTP_PROPERTY_TimetoLive,
 
352
  LIBMTP_PROPERTY_MediaGUID,
 
353
  LIBMTP_PROPERTY_TotalBitRate,
 
354
  LIBMTP_PROPERTY_BitRateType,
 
355
  LIBMTP_PROPERTY_SampleRate,
 
356
  LIBMTP_PROPERTY_NumberOfChannels,
 
357
  LIBMTP_PROPERTY_AudioBitDepth,
 
358
  LIBMTP_PROPERTY_ScanDepth,
 
359
  LIBMTP_PROPERTY_AudioWAVECodec,
 
360
  LIBMTP_PROPERTY_AudioBitRate,
 
361
  LIBMTP_PROPERTY_VideoFourCCCodec,
 
362
  LIBMTP_PROPERTY_VideoBitRate,
 
363
  LIBMTP_PROPERTY_FramesPerThousandSeconds,
 
364
  LIBMTP_PROPERTY_KeyFrameDistance,
 
365
  LIBMTP_PROPERTY_BufferSize,
 
366
  LIBMTP_PROPERTY_EncodingQuality,
 
367
  LIBMTP_PROPERTY_EncodingProfile,
 
368
  LIBMTP_PROPERTY_BuyFlag,
 
369
  LIBMTP_PROPERTY_UNKNOWN
 
370
} LIBMTP_property_t;
 
371
 
 
372
/**
 
373
 * These are the data types
 
374
 */
 
375
typedef enum {
 
376
  LIBMTP_DATATYPE_INT8,
 
377
  LIBMTP_DATATYPE_UINT8,
 
378
  LIBMTP_DATATYPE_INT16,
 
379
  LIBMTP_DATATYPE_UINT16,
 
380
  LIBMTP_DATATYPE_INT32,
 
381
  LIBMTP_DATATYPE_UINT32,
 
382
  LIBMTP_DATATYPE_INT64,
 
383
  LIBMTP_DATATYPE_UINT64,
 
384
} LIBMTP_datatype_t;
 
385
 
 
386
/**
195
387
 * These are the numbered error codes. You can also
196
388
 * get string representations for errors.
197
389
 */
209
401
typedef struct LIBMTP_device_entry_struct LIBMTP_device_entry_t; /**< @see LIBMTP_device_entry_struct */
210
402
typedef struct LIBMTP_raw_device_struct LIBMTP_raw_device_t; /**< @see LIBMTP_raw_device_struct */
211
403
typedef struct LIBMTP_error_struct LIBMTP_error_t; /**< @see LIBMTP_error_struct */
 
404
typedef struct LIBMTP_allowed_values_struct LIBMTP_allowed_values_t; /**< @see LIBMTP_allowed_values_struct */
212
405
typedef struct LIBMTP_mtpdevice_struct LIBMTP_mtpdevice_t; /**< @see LIBMTP_mtpdevice_struct */
213
406
typedef struct LIBMTP_file_struct LIBMTP_file_t; /**< @see LIBMTP_file_struct */
214
407
typedef struct LIBMTP_track_struct LIBMTP_track_t; /**< @see LIBMTP_track_struct */
233
426
                                void const * const data);
234
427
 
235
428
/**
 
429
 * Callback function for get by handler function
 
430
 * @param params the device parameters
 
431
 * @param priv a user-defined dereferencable pointer
 
432
 * @param wantlen the number of bytes wanted
 
433
 * @param data a buffer to write the data to
 
434
 * @param gotlen pointer to the number of bytes actually written
 
435
 *        to data
 
436
 * @return LIBMTP_HANDLER_RETURN_OK if successful,
 
437
 *         LIBMTP_HANDLER_RETURN_ERROR on error or
 
438
 *         LIBMTP_HANDLER_RETURN_CANCEL to cancel the transfer
 
439
 */
 
440
typedef uint16_t (* MTPDataGetFunc)     (void* params, void* priv,
 
441
                                        uint32_t wantlen, unsigned char *data, uint32_t *gotlen);
 
442
 
 
443
/**
 
444
 * Callback function for put by handler function
 
445
 * @param params the device parameters
 
446
 * @param priv a user-defined dereferencable pointer
 
447
 * @param sendlen the number of bytes available
 
448
 * @param data a buffer to read the data from
 
449
 * @param putlen pointer to the number of bytes actually read
 
450
 *        from data
 
451
 * @return LIBMTP_HANDLER_RETURN_OK if successful,
 
452
 *         LIBMTP_HANDLER_RETURN_ERROR on error or
 
453
 *         LIBMTP_HANDLER_RETURN_CANCEL to cancel the transfer
 
454
 */
 
455
typedef uint16_t (* MTPDataPutFunc)     (void* params, void* priv,
 
456
                                        uint32_t sendlen, unsigned char *data, uint32_t *putlen);
 
457
 
 
458
/**
 
459
 * The return codes for the get/put functions
 
460
 */
 
461
#define LIBMTP_HANDLER_RETURN_OK 0
 
462
#define LIBMTP_HANDLER_RETURN_ERROR 1
 
463
#define LIBMTP_HANDLER_RETURN_CANCEL 2
 
464
 
 
465
/**
236
466
 * @}
237
467
 * @defgroup structar libmtp data structures
238
468
 * @{
269
499
};
270
500
 
271
501
/**
 
502
 * A data structure to hold allowed ranges of values
 
503
 */
 
504
struct LIBMTP_allowed_values_struct {
 
505
  uint8_t   u8max;
 
506
  uint8_t   u8min;
 
507
  uint8_t   u8step;
 
508
  uint8_t*  u8vals;
 
509
  int8_t    i8max;
 
510
  int8_t    i8min;
 
511
  int8_t    i8step;
 
512
  int8_t*   i8vals;
 
513
  uint16_t  u16max;
 
514
  uint16_t  u16min;
 
515
  uint16_t  u16step;
 
516
  uint16_t* u16vals;
 
517
  int16_t   i16max;
 
518
  int16_t   i16min;
 
519
  int16_t   i16step;
 
520
  int16_t*  i16vals;
 
521
  uint32_t  u32max;
 
522
  uint32_t  u32min;
 
523
  uint32_t  u32step;
 
524
  uint32_t* u32vals;
 
525
  int32_t   i32max;
 
526
  int32_t   i32min;
 
527
  int32_t   i32step;
 
528
  int32_t*  i32vals;
 
529
  uint64_t  u64max;
 
530
  uint64_t  u64min;
 
531
  uint64_t  u64step;
 
532
  uint64_t* u64vals;
 
533
  int64_t   i64max;
 
534
  int64_t   i64min;
 
535
  int64_t   i64step;
 
536
  int64_t*  i64vals;
 
537
  /**
 
538
   * Number of entries in the vals array
 
539
   */
 
540
  uint16_t  num_entries;
 
541
  /**
 
542
   * The datatype specifying which of the above is used
 
543
  */
 
544
  LIBMTP_datatype_t datatype;
 
545
  /**
 
546
   * Non zero for range, 0 for enum
 
547
  */
 
548
  int is_range;
 
549
};
 
550
 
 
551
/**
272
552
 * Main MTP device object struct
273
553
 */
274
554
struct LIBMTP_mtpdevice_struct {
332
612
  uint32_t storage_id; /**< ID of storage holding this file */
333
613
  char *filename; /**< Filename of this file */
334
614
  uint64_t filesize; /**< Size of file in bytes */
 
615
  time_t modificationdate; /**< Date of last alteration of the file */
335
616
  LIBMTP_filetype_t filetype; /**< Filetype used for the current file */
336
617
  LIBMTP_file_t *next; /**< Next file in list or NULL if last file */
337
618
};
360
641
  uint16_t rating; /**< User rating 0-100 (0x00-0x64) */
361
642
  uint32_t usecount; /**< Number of times used/played */
362
643
  uint64_t filesize; /**< Size of track file in bytes */
 
644
  time_t modificationdate; /**< Date of last alteration of the track */
363
645
  LIBMTP_filetype_t filetype; /**< Filetype used for the current track */
364
646
  LIBMTP_track_t *next; /**< Next track in list or NULL if last track */
365
647
};
489
771
int LIBMTP_Get_Storage(LIBMTP_mtpdevice_t *, int const);
490
772
int LIBMTP_Format_Storage(LIBMTP_mtpdevice_t *, LIBMTP_devicestorage_t *);
491
773
 
 
774
/**
 
775
 * Get/set arbitrary properties.  These do not update the cache; should only be used on
 
776
 * properties not stored in structs
 
777
 */
 
778
char *LIBMTP_Get_String_From_Object(LIBMTP_mtpdevice_t *, uint32_t const, LIBMTP_property_t const);
 
779
uint64_t LIBMTP_Get_u64_From_Object(LIBMTP_mtpdevice_t *, uint32_t const,
 
780
      LIBMTP_property_t const, uint64_t const);
 
781
uint32_t LIBMTP_Get_u32_From_Object(LIBMTP_mtpdevice_t *, uint32_t const,
 
782
      LIBMTP_property_t const, uint32_t const);
 
783
uint16_t LIBMTP_Get_u16_From_Object(LIBMTP_mtpdevice_t *, uint32_t const,
 
784
      LIBMTP_property_t const, uint16_t const);
 
785
uint8_t LIBMTP_Get_u8_From_Object(LIBMTP_mtpdevice_t *, uint32_t const,
 
786
      LIBMTP_property_t const, uint8_t const);
 
787
int LIBMTP_Set_Object_String(LIBMTP_mtpdevice_t *, uint32_t const,
 
788
      LIBMTP_property_t const, char const * const);
 
789
int LIBMTP_Set_Object_u32(LIBMTP_mtpdevice_t *, uint32_t const,
 
790
      LIBMTP_property_t const, uint32_t const);
 
791
int LIBMTP_Set_Object_u16(LIBMTP_mtpdevice_t *, uint32_t const,
 
792
      LIBMTP_property_t const, uint16_t const);
 
793
int LIBMTP_Set_Object_u8(LIBMTP_mtpdevice_t *, uint32_t const,
 
794
      LIBMTP_property_t const, uint8_t const);
 
795
char const * LIBMTP_Get_Property_Description(LIBMTP_property_t inproperty);
 
796
int LIBMTP_Is_Property_Supported(LIBMTP_mtpdevice_t*, LIBMTP_property_t const,
 
797
            LIBMTP_filetype_t const);
 
798
int LIBMTP_Get_Allowed_Property_Values(LIBMTP_mtpdevice_t*, LIBMTP_property_t const,
 
799
            LIBMTP_filetype_t const, LIBMTP_allowed_values_t*);
 
800
void LIBMTP_destroy_allowed_values_t(LIBMTP_allowed_values_t*);
492
801
 
493
802
/**
494
803
 * @}
506
815
                        LIBMTP_progressfunc_t const, void const * const);
507
816
int LIBMTP_Get_File_To_File_Descriptor(LIBMTP_mtpdevice_t*, uint32_t const, int const,
508
817
                        LIBMTP_progressfunc_t const, void const * const);
 
818
int LIBMTP_Get_File_To_Handler(LIBMTP_mtpdevice_t *, uint32_t const, MTPDataPutFunc, void *,
 
819
                   LIBMTP_progressfunc_t const, void const * const);
509
820
int LIBMTP_Send_File_From_File(LIBMTP_mtpdevice_t *, char const * const,
510
821
                         LIBMTP_file_t * const, LIBMTP_progressfunc_t const,
511
822
                         void const * const);
512
823
int LIBMTP_Send_File_From_File_Descriptor(LIBMTP_mtpdevice_t *, int const,
513
824
                        LIBMTP_file_t * const, LIBMTP_progressfunc_t const,
514
825
                        void const * const);
 
826
int LIBMTP_Send_File_From_Handler(LIBMTP_mtpdevice_t *, MTPDataGetFunc, void *,
 
827
      LIBMTP_file_t * const, LIBMTP_progressfunc_t const, void const * const);
515
828
int LIBMTP_Set_File_Name(LIBMTP_mtpdevice_t *, LIBMTP_file_t *, const char *);
516
829
LIBMTP_filesampledata_t *LIBMTP_new_filesampledata_t(void);
517
830
void LIBMTP_destroy_filesampledata_t(LIBMTP_filesampledata_t *);
538
851
                        LIBMTP_progressfunc_t const, void const * const);
539
852
int LIBMTP_Get_Track_To_File_Descriptor(LIBMTP_mtpdevice_t*, uint32_t const, int const,
540
853
                        LIBMTP_progressfunc_t const, void const * const);
 
854
int LIBMTP_Get_Track_To_Handler(LIBMTP_mtpdevice_t *, uint32_t const, MTPDataPutFunc,
 
855
      void *, LIBMTP_progressfunc_t const, void const * const);
541
856
int LIBMTP_Send_Track_From_File(LIBMTP_mtpdevice_t *,
542
857
                         char const * const, LIBMTP_track_t * const,
543
858
                         LIBMTP_progressfunc_t const,
546
861
                         int const, LIBMTP_track_t * const,
547
862
                         LIBMTP_progressfunc_t const,
548
863
                         void const * const);
 
864
int LIBMTP_Send_Track_From_Handler(LIBMTP_mtpdevice_t *,
 
865
                         MTPDataGetFunc, void *, LIBMTP_track_t * const,
 
866
                         LIBMTP_progressfunc_t const,
 
867
                         void const * const);
549
868
int LIBMTP_Update_Track_Metadata(LIBMTP_mtpdevice_t *,
550
869
                        LIBMTP_track_t const * const);
551
870
int LIBMTP_Track_Exists(LIBMTP_mtpdevice_t *, uint32_t);