libmtp.h File Reference
`#include <stdio.h>`
`#include <usb.h>`
`#include <stdint.h>`

Go to the source code of this file.

## Data Structures

struct | LIBMTP_device_entry_struct
struct | LIBMTP_error_struct
struct | LIBMTP_mtpdevice_struct
struct | LIBMTP_file_struct
struct | LIBMTP_track_struct
struct | LIBMTP_playlist_struct
struct | LIBMTP_album_struct
struct | LIBMTP_folder_struct
struct | LIBMTP_filesampledata_struct
struct | LIBMTP_devicestorage_struct

## Macros

#define | LIBMTP_VERSION 0.1.4
#define | LIBMTP_STORAGE_SORTBY_NOTSORTED 0
#define | LIBMTP_STORAGE_SORTBY_FREESPACE 1
#define | LIBMTP_STORAGE_SORTBY_MAXSPACE 2

## Typedefs

typedef struct LIBMTP_device_entry_struct | LIBMTP_device_entry_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 }

## Functions

void | LIBMTP_Init (void)
int | LIBMTP_Get_Supported_Devices_List (LIBMTP_device_entry_t **const, int *const)
int | LIBMTP_Detect_Descriptor (uint16_t *, uint16_t *)
LIBMTP_mtpdevice_t * | LIBMTP_Get_First_Device (void)
LIBMTP_error_number_t | LIBMTP_Get_Connected_Devices (LIBMTP_mtpdevice_t **)
uint32_t | LIBMTP_Number_Devices_In_List (LIBMTP_mtpdevice_t *)
void | LIBMTP_Release_Device_List (LIBMTP_mtpdevice_t *)
void | LIBMTP_Release_Device (LIBMTP_mtpdevice_t *)
void | LIBMTP_Dump_Device_Info (LIBMTP_mtpdevice_t *)
char * | LIBMTP_Get_Modelname (LIBMTP_mtpdevice_t *)
char * | LIBMTP_Get_Serialnumber (LIBMTP_mtpdevice_t *)
char * | LIBMTP_Get_Deviceversion (LIBMTP_mtpdevice_t *)
char * | LIBMTP_Get_Friendlyname (LIBMTP_mtpdevice_t *)
int | LIBMTP_Set_Friendlyname (LIBMTP_mtpdevice_t *, char const *const)
char * | LIBMTP_Get_Syncpartner (LIBMTP_mtpdevice_t *)
int | LIBMTP_Set_Syncpartner (LIBMTP_mtpdevice_t *, char const *const)
int | LIBMTP_Get_Batterylevel (LIBMTP_mtpdevice_t *, uint8_t *const, uint8_t *const)
int | LIBMTP_Get_Secure_Time (LIBMTP_mtpdevice_t *, char **const)
int | LIBMTP_Get_Device_Certificate (LIBMTP_mtpdevice_t *, char **const)
int | LIBMTP_Get_Supported_Filetypes (LIBMTP_mtpdevice_t *, uint16_t **const, uint16_t *const)
LIBMTP_error_t * | LIBMTP_Get_Errorstack (LIBMTP_mtpdevice_t *)
void | LIBMTP_Clear_Errorstack (LIBMTP_mtpdevice_t *)
void | LIBMTP_Dump_Errorstack (LIBMTP_mtpdevice_t *)
int | LIBMTP_Get_Storage (LIBMTP_mtpdevice_t *, int const)
int | LIBMTP_Format_Storage (LIBMTP_mtpdevice_t *, LIBMTP_devicestorage_t *)
LIBMTP_file_t * | LIBMTP_new_file_t (void)
void | LIBMTP_destroy_file_t (LIBMTP_file_t *)
char const * | LIBMTP_Get_Filetype_Description (LIBMTP_filetype_t)
LIBMTP_file_t * | LIBMTP_Get_Filelisting (LIBMTP_mtpdevice_t *)
LIBMTP_file_t * | LIBMTP_Get_Filelisting_With_Callback (LIBMTP_mtpdevice_t *, LIBMTP_progressfunc_t const, void const *const)
LIBMTP_file_t * | LIBMTP_Get_Filemetadata (LIBMTP_mtpdevice_t *, uint32_t const)
int | LIBMTP_Get_File_To_File (LIBMTP_mtpdevice_t *, uint32_t, char const *const, LIBMTP_progressfunc_t const, void const *const)
int | LIBMTP_Get_File_To_File_Descriptor (LIBMTP_mtpdevice_t *, uint32_t const, int const, LIBMTP_progressfunc_t const, void const *const)
int | LIBMTP_Send_File_From_File (LIBMTP_mtpdevice_t *, char const *const, LIBMTP_file_t *const, LIBMTP_progressfunc_t const, void const *const, uint32_t const)
int | LIBMTP_Send_File_From_File_Descriptor (LIBMTP_mtpdevice_t *, int const, LIBMTP_file_t *const, LIBMTP_progressfunc_t const, void const *const, uint32_t const)
LIBMTP_filesampledata_t * | LIBMTP_new_filesampledata_t (void)
void | LIBMTP_destroy_filesampledata_t (LIBMTP_filesampledata_t *)
int | LIBMTP_Get_Representative_Sample_Format (LIBMTP_mtpdevice_t *, LIBMTP_filetype_t const, LIBMTP_filesampledata_t **)
int | LIBMTP_Send_Representative_Sample (LIBMTP_mtpdevice_t *, uint32_t const, LIBMTP_filesampledata_t *)
LIBMTP_track_t * | LIBMTP_new_track_t (void)
void | LIBMTP_destroy_track_t (LIBMTP_track_t *)
LIBMTP_track_t * | LIBMTP_Get_Tracklisting (LIBMTP_mtpdevice_t *)
LIBMTP_track_t * | LIBMTP_Get_Tracklisting_With_Callback (LIBMTP_mtpdevice_t *, LIBMTP_progressfunc_t const, void const *const)
LIBMTP_track_t * | LIBMTP_Get_Trackmetadata (LIBMTP_mtpdevice_t *, uint32_t const)
int | LIBMTP_Get_Track_To_File (LIBMTP_mtpdevice_t *, uint32_t, char const *const, LIBMTP_progressfunc_t const, void const *const)
int | LIBMTP_Get_Track_To_File_Descriptor (LIBMTP_mtpdevice_t *, uint32_t const, int const, LIBMTP_progressfunc_t const, void const *const)
int | LIBMTP_Send_Track_From_File (LIBMTP_mtpdevice_t *, char const *const, LIBMTP_track_t *const, LIBMTP_progressfunc_t const, void const *const, uint32_t const)
int | LIBMTP_Send_Track_From_File_Descriptor (LIBMTP_mtpdevice_t *, int const, LIBMTP_track_t *const, LIBMTP_progressfunc_t const, void const *const, uint32_t const)
int | LIBMTP_Update_Track_Metadata (LIBMTP_mtpdevice_t *, LIBMTP_track_t const *const)
int | LIBMTP_Track_Exists (LIBMTP_mtpdevice_t *, uint32_t)
LIBMTP_folder_t * | LIBMTP_new_folder_t (void)
void | LIBMTP_destroy_folder_t (LIBMTP_folder_t *)
LIBMTP_folder_t * | LIBMTP_Get_Folder_List (LIBMTP_mtpdevice_t *)
LIBMTP_folder_t * | LIBMTP_Find_Folder (LIBMTP_folder_t *, uint32_t const)
uint32_t | LIBMTP_Create_Folder (LIBMTP_mtpdevice_t *, char *, uint32_t)
LIBMTP_playlist_t * | LIBMTP_new_playlist_t (void)
void | LIBMTP_destroy_playlist_t (LIBMTP_playlist_t *)
LIBMTP_playlist_t * | LIBMTP_Get_Playlist_List (LIBMTP_mtpdevice_t *)
LIBMTP_playlist_t * | LIBMTP_Get_Playlist (LIBMTP_mtpdevice_t *, uint32_t const)
int | LIBMTP_Create_New_Playlist (LIBMTP_mtpdevice_t *, LIBMTP_playlist_t *const, uint32_t const)
int | LIBMTP_Update_Playlist (LIBMTP_mtpdevice_t *, LIBMTP_playlist_t const *const)
LIBMTP_album_t * | LIBMTP_new_album_t (void)
void | LIBMTP_destroy_album_t (LIBMTP_album_t *)
LIBMTP_album_t * | LIBMTP_Get_Album_List (LIBMTP_mtpdevice_t *)
LIBMTP_album_t * | LIBMTP_Get_Album (LIBMTP_mtpdevice_t *, uint32_t const)
int | LIBMTP_Create_New_Album (LIBMTP_mtpdevice_t *, LIBMTP_album_t *const, uint32_t const)
int | LIBMTP_Update_Album (LIBMTP_mtpdevice_t *, LIBMTP_album_t const *const)
int | LIBMTP_Delete_Object (LIBMTP_mtpdevice_t *, uint32_t)

## Detailed Description

Interface to the Media Transfer Protocol library.

Copyright (C) 2005-2007 Linus Walleij triad.nosp@m.@df..nosp@m.lth.s.nosp@m.e Copyright (C) 2005-2007 Richard A. Low richa.nosp@m.rd@w.nosp@m.entne.nosp@m.t.co.nosp@m.m Copyright (C) 2007 Ted Bullock

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

`#include <libmtp.h>`