# libmtp global type definitions

## Defines
#define | LIBMTP_FILETYPE_IS_AUDIO(a)
#define | LIBMTP_FILETYPE_IS_VIDEO(a)
#define | LIBMTP_FILETYPE_IS_AUDIOVIDEO(a)
#define | LIBMTP_FILETYPE_IS_TRACK(a)
#define | LIBMTP_FILETYPE_IS_IMAGE(a)
#define | LIBMTP_FILETYPE_IS_ADDRESSBOOK(a)
#define | LIBMTP_FILETYPE_IS_CALENDAR(a)
## Typedefs
typedef struct LIBMTP_device_entry_struct | LIBMTP_device_entry_t
typedef struct LIBMTP_raw_device_struct | LIBMTP_raw_device_t
typedef struct LIBMTP_error_struct | LIBMTP_error_t
typedef struct LIBMTP_mtpdevice_struct | LIBMTP_mtpdevice_t
typedef struct LIBMTP_file_struct | LIBMTP_file_t
typedef struct LIBMTP_track_struct | LIBMTP_track_t
typedef struct LIBMTP_playlist_struct | LIBMTP_playlist_t
typedef struct LIBMTP_album_struct | LIBMTP_album_t
typedef struct LIBMTP_folder_struct | LIBMTP_folder_t
typedef struct LIBMTP_object_struct | LIBMTP_object_t
typedef struct LIBMTP_filesampledata_struct | LIBMTP_filesampledata_t
typedef struct LIBMTP_devicestorage_struct | LIBMTP_devicestorage_t
typedef int(* | LIBMTP_progressfunc_t )(uint64_t const sent, uint64_t const total, void const *const data)
## Enumerations
enum | LIBMTP_filetype_t { LIBMTP_FILETYPE_WAV, LIBMTP_FILETYPE_MP3, LIBMTP_FILETYPE_WMA, LIBMTP_FILETYPE_OGG, LIBMTP_FILETYPE_AUDIBLE, LIBMTP_FILETYPE_MP4, LIBMTP_FILETYPE_UNDEF_AUDIO, LIBMTP_FILETYPE_WMV, LIBMTP_FILETYPE_AVI, LIBMTP_FILETYPE_MPEG, LIBMTP_FILETYPE_ASF, LIBMTP_FILETYPE_QT, LIBMTP_FILETYPE_UNDEF_VIDEO, LIBMTP_FILETYPE_JPEG, LIBMTP_FILETYPE_JFIF, LIBMTP_FILETYPE_TIFF, LIBMTP_FILETYPE_BMP, LIBMTP_FILETYPE_GIF, LIBMTP_FILETYPE_PICT, LIBMTP_FILETYPE_PNG, LIBMTP_FILETYPE_VCALENDAR1, LIBMTP_FILETYPE_VCALENDAR2, LIBMTP_FILETYPE_VCARD2, LIBMTP_FILETYPE_VCARD3, LIBMTP_FILETYPE_WINDOWSIMAGEFORMAT, LIBMTP_FILETYPE_WINEXEC, LIBMTP_FILETYPE_TEXT, LIBMTP_FILETYPE_HTML, LIBMTP_FILETYPE_FIRMWARE, LIBMTP_FILETYPE_AAC, LIBMTP_FILETYPE_MEDIACARD, LIBMTP_FILETYPE_FLAC, LIBMTP_FILETYPE_MP2, LIBMTP_FILETYPE_M4A, LIBMTP_FILETYPE_DOC, LIBMTP_FILETYPE_XML, LIBMTP_FILETYPE_XLS, LIBMTP_FILETYPE_PPT, LIBMTP_FILETYPE_MHT, LIBMTP_FILETYPE_JP2, LIBMTP_FILETYPE_JPX, LIBMTP_FILETYPE_UNKNOWN }
enum | LIBMTP_error_number_t { LIBMTP_ERROR_NONE, LIBMTP_ERROR_GENERAL, LIBMTP_ERROR_PTP_LAYER, LIBMTP_ERROR_USB_LAYER, LIBMTP_ERROR_MEMORY_ALLOCATION, LIBMTP_ERROR_NO_DEVICE_ATTACHED, LIBMTP_ERROR_STORAGE_FULL, LIBMTP_ERROR_CONNECTING, LIBMTP_ERROR_CANCELLED }

## Detailed Description

The filetypes defined here are the external types used by the libmtp library interface. The types used internally as PTP-defined enumerator types is something different.

## Define Documentation

#define LIBMTP_FILETYPE_IS_ADDRESSBOOK | ( | a |  | ) |

Value:

    (a == LIBMTP_FILETYPE_VCARD2 ||\
    a == LIBMTP_FILETYPE_VCARD2)

Addressbook and Business card filetype test

#define LIBMTP_FILETYPE_IS_AUDIO | ( | a |  | ) |

Value:

    (a == LIBMTP_FILETYPE_WAV ||\
     a == LIBMTP_FILETYPE_MP3 ||\
     a == LIBMTP_FILETYPE_MP2 ||\
     a == LIBMTP_FILETYPE_WMA ||\
     a == LIBMTP_FILETYPE_OGG ||\
     a == LIBMTP_FILETYPE_FLAC ||\
     a == LIBMTP_FILETYPE_AAC ||\
     a == LIBMTP_FILETYPE_M4A ||\
     a == LIBMTP_FILETYPE_UNDEF_AUDIO)

Audio filetype test.

For filetypes that can be either audio or video, use LIBMTP_FILETYPE_IS_AUDIOVIDEO

Referenced by LIBMTP_Get_Tracklisting_With_Callback(), LIBMTP_Get_Trackmetadata(), and LIBMTP_Send_File_From_File_Descriptor().

#define LIBMTP_FILETYPE_IS_AUDIOVIDEO | ( | a |  | ) |

Value:

    (a == LIBMTP_FILETYPE_MP4 ||\
     a == LIBMTP_FILETYPE_ASF ||\
     a == LIBMTP_FILETYPE_QT)

Audio andor video filetype test.

Referenced by LIBMTP_Get_Tracklisting_With_Callback(), and LIBMTP_Get_Trackmetadata().

#define LIBMTP_FILETYPE_IS_CALENDAR | ( | a |  | ) |

Value:

    (a == LIBMTP_FILETYPE_VCALENDAR1 ||\
    a == LIBMTP_FILETYPE_VCALENDAR2)

Calendar and Appointment filetype test

#define LIBMTP_FILETYPE_IS_IMAGE | ( | a |  | ) |

Value:

    (a == LIBMTP_FILETYPE_JPEG ||\
    a == LIBMTP_FILETYPE_JFIF ||\
    a == LIBMTP_FILETYPE_TIFF ||\
    a == LIBMTP_FILETYPE_BMP ||\
    a == LIBMTP_FILETYPE_GIF ||\
    a == LIBMTP_FILETYPE_PICT ||\
    a == LIBMTP_FILETYPE_PNG ||\
    a == LIBMTP_FILETYPE_JP2 ||\
    a == LIBMTP_FILETYPE_JPX ||\
    a == LIBMTP_FILETYPE_WINDOWSIMAGEFORMAT)

Image filetype test

#define LIBMTP_FILETYPE_IS_TRACK | ( | a |  | ) |

Value:

    (LIBMTP_FILETYPE_IS_AUDIO(a) ||\
     LIBMTP_FILETYPE_IS_VIDEO(a) ||\
     LIBMTP_FILETYPE_IS_AUDIOVIDEO(a))

Test if filetype is a track. Use this to determine if the File API or Track API should be used to upload or download an object.

Examples:
  sendtr.c.

Referenced by LIBMTP_Send_Track_From_File_Descriptor().

#define LIBMTP_FILETYPE_IS_VIDEO | ( | a |  | ) |

Value:

    (a == LIBMTP_FILETYPE_WMV ||\
     a == LIBMTP_FILETYPE_AVI ||\
     a == LIBMTP_FILETYPE_MPEG ||\
     a == LIBMTP_FILETYPE_UNDEF_VIDEO)

Video filetype test.

For filetypes that can be either audio or video, use LIBMTP_FILETYPE_IS_AUDIOVIDEO

Referenced by LIBMTP_Get_Tracklisting_With_Callback(), LIBMTP_Get_Trackmetadata(), and LIBMTP_Send_File_From_File_Descriptor().

## Typedef Documentation

typedef struct LIBMTP_album_struct LIBMTP_album_t

See also:
  LIBMTP_album_struct

typedef struct LIBMTP_device_entry_struct LIBMTP_device_entry_t

See also:
  LIBMTP_device_entry_struct

typedef struct LIBMTP_devicestorage_struct LIBMTP_devicestorage_t

See also:
  LIBMTP_devicestorage_t

typedef struct LIBMTP_error_struct LIBMTP_error_t

See also:
  LIBMTP_error_struct

typedef struct LIBMTP_file_struct LIBMTP_file_t

See also:
  LIBMTP_file_struct

typedef struct LIBMTP_filesampledata_struct LIBMTP_filesampledata_t

See also:
  LIBMTP_filesample_t

typedef struct LIBMTP_folder_struct LIBMTP_folder_t

See also:
  LIBMTP_folder_t

typedef struct LIBMTP_mtpdevice_struct LIBMTP_mtpdevice_t

See also:
  LIBMTP_mtpdevice_struct

typedef struct LIBMTP_object_struct LIBMTP_object_t

See also:
  LIBMTP_object_t

typedef struct LIBMTP_playlist_struct LIBMTP_playlist_t

See also:
  LIBMTP_playlist_struct

typedef int(* LIBMTP_progressfunc_t)(uint64_t const sent, uint64_t const total, void const *const data)

The callback type definition. Notice that a progress percentage ratio is easy to calculate by dividing `sent` by `total`.

Parameters:

  | sent | the number of bytes sent so far
  | total | the total number of bytes to send
  | data | a user-defined dereferencable pointer

Returns:
  if anything else than 0 is returned, the current transfer will be interrupted / cancelled.

typedef struct LIBMTP_raw_device_struct LIBMTP_raw_device_t

See also:
  LIBMTP_raw_device_struct

typedef struct LIBMTP_track_struct LIBMTP_track_t

See also:
  LIBMTP_track_struct

## Enumeration Type Documentation

enum LIBMTP_error_number_t

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