.TH "libmtp.c" 3 "Version 1.1.21" "libmtp" \" -*- nroff -*- .ad l .nh .SH NAME libmtp \- .SH SYNOPSIS .br .PP \fC#include 'config\&.h'\fP .br \fC#include 'libmtp\&.h'\fP .br \fC#include 'unicode\&.h'\fP .br \fC#include 'ptp\&.h'\fP .br \fC#include 'libusb\-glue\&.h'\fP .br \fC#include 'device\-flags\&.h'\fP .br \fC#include 'playlist\-spl\&.h'\fP .br \fC#include 'util\&.h'\fP .br \fC#include 'mtpz\&.h'\fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br \fC#include \fP .br .SS "Data Structures" .in +1c .ti -1c .RI "struct \fBfilemap_struct\fP" .br .ti -1c .RI "struct \fBpropertymap_struct\fP" .br .ti -1c .RI "struct \fBevent_cb_data_struct\fP" .br .ti -1c .RI "struct \fB_MTPDataHandler\fP" .br .in -1c .SS "Typedefs" .in +1c .ti -1c .RI "typedef struct \fBfilemap_struct\fP \fBfilemap_t\fP" .br .ti -1c .RI "typedef struct \fBpropertymap_struct\fP \fBpropertymap_t\fP" .br .ti -1c .RI "typedef struct \fBevent_cb_data_struct\fP \fBevent_cb_data_t\fP" .br .ti -1c .RI "typedef struct \fB_MTPDataHandler\fP \fBMTPDataHandler\fP" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "void \fBLIBMTP_Set_Debug\fP (int level)" .br .ti -1c .RI "void \fBLIBMTP_Init\fP (void)" .br .ti -1c .RI "char const * \fBLIBMTP_Get_Filetype_Description\fP (\fBLIBMTP_filetype_t\fP intype)" .br .ti -1c .RI "char const * \fBLIBMTP_Get_Property_Description\fP (\fBLIBMTP_property_t\fP inproperty)" .br .ti -1c .RI "int \fBLIBMTP_Get_Allowed_Property_Values\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_property_t\fP const property, \fBLIBMTP_filetype_t\fP const filetype, \fBLIBMTP_allowed_values_t\fP *allowed_vals)" .br .ti -1c .RI "void \fBLIBMTP_destroy_allowed_values_t\fP (\fBLIBMTP_allowed_values_t\fP *allowed_vals)" .br .ti -1c .RI "int \fBLIBMTP_Is_Property_Supported\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_property_t\fP const property, \fBLIBMTP_filetype_t\fP const filetype)" .br .ti -1c .RI "char * \fBLIBMTP_Get_String_From_Object\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const object_id, \fBLIBMTP_property_t\fP const attribute_id)" .br .ti -1c .RI "uint64_t \fBLIBMTP_Get_u64_From_Object\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const object_id, \fBLIBMTP_property_t\fP const attribute_id, uint64_t const value_default)" .br .ti -1c .RI "uint32_t \fBLIBMTP_Get_u32_From_Object\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const object_id, \fBLIBMTP_property_t\fP const attribute_id, uint32_t const value_default)" .br .ti -1c .RI "uint16_t \fBLIBMTP_Get_u16_From_Object\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const object_id, \fBLIBMTP_property_t\fP const attribute_id, uint16_t const value_default)" .br .ti -1c .RI "uint8_t \fBLIBMTP_Get_u8_From_Object\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const object_id, \fBLIBMTP_property_t\fP const attribute_id, uint8_t const value_default)" .br .ti -1c .RI "int \fBLIBMTP_Set_Object_String\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const object_id, \fBLIBMTP_property_t\fP const attribute_id, char const *const string)" .br .ti -1c .RI "int \fBLIBMTP_Set_Object_u32\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const object_id, \fBLIBMTP_property_t\fP const attribute_id, uint32_t const value)" .br .ti -1c .RI "int \fBLIBMTP_Set_Object_u16\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const object_id, \fBLIBMTP_property_t\fP const attribute_id, uint16_t const value)" .br .ti -1c .RI "int \fBLIBMTP_Set_Object_u8\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const object_id, \fBLIBMTP_property_t\fP const attribute_id, uint8_t const value)" .br .ti -1c .RI "\fBLIBMTP_mtpdevice_t\fP * \fBLIBMTP_Get_Device\fP (int device_nr)" .br .ti -1c .RI "\fBLIBMTP_mtpdevice_t\fP * \fBLIBMTP_Get_First_Device\fP (void)" .br .ti -1c .RI "\fBLIBMTP_mtpdevice_t\fP * \fBLIBMTP_Get_Device_By_SerialNumber\fP (char *serial_number)" .br .ti -1c .RI "\fBLIBMTP_mtpdevice_t\fP * \fBLIBMTP_Get_Device_By_ID\fP (char *device_id)" .br .ti -1c .RI "\fBLIBMTP_mtpdevice_t\fP * \fBLIBMTP_Open_Raw_Device_Uncached\fP (\fBLIBMTP_raw_device_t\fP *rawdevice)" .br .ti -1c .RI "\fBLIBMTP_mtpdevice_t\fP * \fBLIBMTP_Open_Raw_Device\fP (\fBLIBMTP_raw_device_t\fP *rawdevice)" .br .ti -1c .RI "int \fBLIBMTP_Read_Event\fP (\fBLIBMTP_mtpdevice_t\fP *device, LIBMTP_event_t *event, uint32_t *out1)" .br .ti -1c .RI "int \fBLIBMTP_Read_Event_Async\fP (\fBLIBMTP_mtpdevice_t\fP *device, LIBMTP_event_cb_fn cb, void *user_data)" .br .ti -1c .RI "uint32_t \fBLIBMTP_Number_Devices_In_List\fP (\fBLIBMTP_mtpdevice_t\fP *device_list)" .br .ti -1c .RI "\fBLIBMTP_error_number_t\fP \fBLIBMTP_Get_Connected_Devices\fP (\fBLIBMTP_mtpdevice_t\fP **device_list)" .br .ti -1c .RI "void \fBLIBMTP_Release_Device_List\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "void \fBLIBMTP_Release_Device\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "\fBLIBMTP_error_t\fP * \fBLIBMTP_Get_Errorstack\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "void \fBLIBMTP_Clear_Errorstack\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "void \fBLIBMTP_Dump_Errorstack\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "void \fBLIBMTP_Dump_Device_Info\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "int \fBLIBMTP_Reset_Device\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "char * \fBLIBMTP_Get_Manufacturername\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "char * \fBLIBMTP_Get_Modelname\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "char * \fBLIBMTP_Get_Serialnumber\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "char * \fBLIBMTP_Get_Deviceversion\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "char * \fBLIBMTP_Get_Friendlyname\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "int \fBLIBMTP_Set_Friendlyname\fP (\fBLIBMTP_mtpdevice_t\fP *device, char const *const friendlyname)" .br .ti -1c .RI "char * \fBLIBMTP_Get_Syncpartner\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "int \fBLIBMTP_Set_Syncpartner\fP (\fBLIBMTP_mtpdevice_t\fP *device, char const *const syncpartner)" .br .ti -1c .RI "int \fBLIBMTP_Get_Batterylevel\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint8_t *const maximum_level, uint8_t *const current_level)" .br .ti -1c .RI "int \fBLIBMTP_Format_Storage\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_devicestorage_t\fP *storage)" .br .ti -1c .RI "int \fBLIBMTP_Get_Secure_Time\fP (\fBLIBMTP_mtpdevice_t\fP *device, char **const sectime)" .br .ti -1c .RI "int \fBLIBMTP_Get_Device_Certificate\fP (\fBLIBMTP_mtpdevice_t\fP *device, char **const devcert)" .br .ti -1c .RI "int \fBLIBMTP_Get_Supported_Filetypes\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint16_t **const filetypes, uint16_t *const length)" .br .ti -1c .RI "int \fBLIBMTP_Check_Capability\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_devicecap_t\fP cap)" .br .ti -1c .RI "int \fBLIBMTP_Get_Storage\fP (\fBLIBMTP_mtpdevice_t\fP *device, int const sortby)" .br .ti -1c .RI "\fBLIBMTP_file_t\fP * \fBLIBMTP_new_file_t\fP (void)" .br .ti -1c .RI "void \fBLIBMTP_destroy_file_t\fP (\fBLIBMTP_file_t\fP *file)" .br .ti -1c .RI "\fBLIBMTP_file_t\fP * \fBLIBMTP_Get_Filemetadata\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const fileid)" .br .ti -1c .RI "\fBLIBMTP_file_t\fP * \fBLIBMTP_Get_Filelisting\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "\fBLIBMTP_file_t\fP * \fBLIBMTP_Get_Filelisting_With_Callback\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_progressfunc_t\fP const callback, void const *const data)" .br .ti -1c .RI "\fBLIBMTP_file_t\fP * \fBLIBMTP_Get_Files_And_Folders\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const storage, uint32_t const parent)" .br .ti -1c .RI "int \fBLIBMTP_Get_Children\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const storage, uint32_t const parent, uint32_t **out)" .br .ti -1c .RI "\fBLIBMTP_track_t\fP * \fBLIBMTP_new_track_t\fP (void)" .br .ti -1c .RI "void \fBLIBMTP_destroy_track_t\fP (\fBLIBMTP_track_t\fP *track)" .br .ti -1c .RI "\fBLIBMTP_track_t\fP * \fBLIBMTP_Get_Tracklisting\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "\fBLIBMTP_track_t\fP * \fBLIBMTP_Get_Tracklisting_With_Callback\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_progressfunc_t\fP const callback, void const *const data)" .br .ti -1c .RI "\fBLIBMTP_track_t\fP * \fBLIBMTP_Get_Tracklisting_With_Callback_For_Storage\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const storage_id, \fBLIBMTP_progressfunc_t\fP const callback, void const *const data)" .br .ti -1c .RI "\fBLIBMTP_track_t\fP * \fBLIBMTP_Get_Trackmetadata\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const trackid)" .br .ti -1c .RI "int \fBLIBMTP_Get_File_To_File\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const id, char const *const path, \fBLIBMTP_progressfunc_t\fP const callback, void const *const data)" .br .ti -1c .RI "int \fBLIBMTP_Get_File_To_File_Descriptor\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const id, int const fd, \fBLIBMTP_progressfunc_t\fP const callback, void const *const data)" .br .ti -1c .RI "int \fBLIBMTP_Get_File_To_Handler\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const id, \fBMTPDataPutFunc\fP put_func, void *priv, \fBLIBMTP_progressfunc_t\fP const callback, void const *const data)" .br .ti -1c .RI "int \fBLIBMTP_Get_Track_To_File\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const id, char const *const path, \fBLIBMTP_progressfunc_t\fP const callback, void const *const data)" .br .ti -1c .RI "int \fBLIBMTP_Get_Track_To_File_Descriptor\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const id, int const fd, \fBLIBMTP_progressfunc_t\fP const callback, void const *const data)" .br .ti -1c .RI "int \fBLIBMTP_Get_Track_To_Handler\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const id, \fBMTPDataPutFunc\fP put_func, void *priv, \fBLIBMTP_progressfunc_t\fP const callback, void const *const data)" .br .ti -1c .RI "int \fBLIBMTP_Send_Track_From_File\fP (\fBLIBMTP_mtpdevice_t\fP *device, char const *const path, \fBLIBMTP_track_t\fP *const metadata, \fBLIBMTP_progressfunc_t\fP const callback, void const *const data)" .br .ti -1c .RI "int \fBLIBMTP_Send_Track_From_File_Descriptor\fP (\fBLIBMTP_mtpdevice_t\fP *device, int const fd, \fBLIBMTP_track_t\fP *const metadata, \fBLIBMTP_progressfunc_t\fP const callback, void const *const data)" .br .ti -1c .RI "int \fBLIBMTP_Send_Track_From_Handler\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBMTPDataGetFunc\fP get_func, void *priv, \fBLIBMTP_track_t\fP *const metadata, \fBLIBMTP_progressfunc_t\fP const callback, void const *const data)" .br .ti -1c .RI "int \fBLIBMTP_Send_File_From_File\fP (\fBLIBMTP_mtpdevice_t\fP *device, char const *const path, \fBLIBMTP_file_t\fP *const filedata, \fBLIBMTP_progressfunc_t\fP const callback, void const *const data)" .br .ti -1c .RI "int \fBLIBMTP_Send_File_From_File_Descriptor\fP (\fBLIBMTP_mtpdevice_t\fP *device, int const fd, \fBLIBMTP_file_t\fP *const filedata, \fBLIBMTP_progressfunc_t\fP const callback, void const *const data)" .br .ti -1c .RI "int \fBLIBMTP_Send_File_From_Handler\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBMTPDataGetFunc\fP get_func, void *priv, \fBLIBMTP_file_t\fP *const filedata, \fBLIBMTP_progressfunc_t\fP const callback, void const *const data)" .br .ti -1c .RI "int \fBLIBMTP_Update_Track_Metadata\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_track_t\fP const *const metadata)" .br .ti -1c .RI "int \fBLIBMTP_Delete_Object\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t object_id)" .br .ti -1c .RI "int \fBLIBMTP_Move_Object\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t object_id, uint32_t storage_id, uint32_t parent_id)" .br .ti -1c .RI "int \fBLIBMTP_Copy_Object\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t object_id, uint32_t storage_id, uint32_t parent_id)" .br .ti -1c .RI "int \fBLIBMTP_Set_File_Name\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_file_t\fP *file, const char *newname)" .br .ti -1c .RI "int \fBLIBMTP_Set_Folder_Name\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_folder_t\fP *folder, const char *newname)" .br .ti -1c .RI "int \fBLIBMTP_Set_Track_Name\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_track_t\fP *track, const char *newname)" .br .ti -1c .RI "int \fBLIBMTP_Set_Playlist_Name\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_playlist_t\fP *playlist, const char *newname)" .br .ti -1c .RI "int \fBLIBMTP_Set_Album_Name\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_album_t\fP *album, const char *newname)" .br .ti -1c .RI "int \fBLIBMTP_Set_Object_Filename\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t object_id, char *newname)" .br .ti -1c .RI "int \fBLIBMTP_Track_Exists\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const id)" .br .ti -1c .RI "\fBLIBMTP_folder_t\fP * \fBLIBMTP_new_folder_t\fP (void)" .br .ti -1c .RI "void \fBLIBMTP_destroy_folder_t\fP (\fBLIBMTP_folder_t\fP *folder)" .br .ti -1c .RI "\fBLIBMTP_folder_t\fP * \fBLIBMTP_Find_Folder\fP (\fBLIBMTP_folder_t\fP *folderlist, uint32_t id)" .br .ti -1c .RI "\fBLIBMTP_folder_t\fP * \fBLIBMTP_Get_Folder_List_For_Storage\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const storage)" .br .ti -1c .RI "\fBLIBMTP_folder_t\fP * \fBLIBMTP_Get_Folder_List\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "uint32_t \fBLIBMTP_Create_Folder\fP (\fBLIBMTP_mtpdevice_t\fP *device, char *name, uint32_t parent_id, uint32_t storage_id)" .br .ti -1c .RI "\fBLIBMTP_playlist_t\fP * \fBLIBMTP_new_playlist_t\fP (void)" .br .ti -1c .RI "void \fBLIBMTP_destroy_playlist_t\fP (\fBLIBMTP_playlist_t\fP *playlist)" .br .ti -1c .RI "\fBLIBMTP_playlist_t\fP * \fBLIBMTP_Get_Playlist_List\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "\fBLIBMTP_playlist_t\fP * \fBLIBMTP_Get_Playlist\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const plid)" .br .ti -1c .RI "int \fBLIBMTP_Create_New_Playlist\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_playlist_t\fP *const metadata)" .br .ti -1c .RI "int \fBLIBMTP_Update_Playlist\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_playlist_t\fP *const metadata)" .br .ti -1c .RI "\fBLIBMTP_album_t\fP * \fBLIBMTP_new_album_t\fP (void)" .br .ti -1c .RI "void \fBLIBMTP_destroy_album_t\fP (\fBLIBMTP_album_t\fP *album)" .br .ti -1c .RI "\fBLIBMTP_album_t\fP * \fBLIBMTP_Get_Album_List\fP (\fBLIBMTP_mtpdevice_t\fP *device)" .br .ti -1c .RI "\fBLIBMTP_album_t\fP * \fBLIBMTP_Get_Album_List_For_Storage\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const storage_id)" .br .ti -1c .RI "\fBLIBMTP_album_t\fP * \fBLIBMTP_Get_Album\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const albid)" .br .ti -1c .RI "int \fBLIBMTP_Create_New_Album\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_album_t\fP *const metadata)" .br .ti -1c .RI "\fBLIBMTP_filesampledata_t\fP * \fBLIBMTP_new_filesampledata_t\fP (void)" .br .ti -1c .RI "void \fBLIBMTP_destroy_filesampledata_t\fP (\fBLIBMTP_filesampledata_t\fP *sample)" .br .ti -1c .RI "int \fBLIBMTP_Get_Representative_Sample_Format\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_filetype_t\fP const filetype, \fBLIBMTP_filesampledata_t\fP **sample)" .br .ti -1c .RI "int \fBLIBMTP_Send_Representative_Sample\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const id, \fBLIBMTP_filesampledata_t\fP *sampledata)" .br .ti -1c .RI "int \fBLIBMTP_Get_Representative_Sample\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const id, \fBLIBMTP_filesampledata_t\fP *sampledata)" .br .ti -1c .RI "int \fBLIBMTP_Get_Thumbnail\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const id, unsigned char **data, unsigned int *size)" .br .ti -1c .RI "int \fBLIBMTP_GetPartialObject\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const id, uint64_t offset, uint32_t maxbytes, unsigned char **data, unsigned int *size)" .br .ti -1c .RI "int \fBLIBMTP_SendPartialObject\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const id, uint64_t offset, unsigned char *data, unsigned int size)" .br .ti -1c .RI "int \fBLIBMTP_BeginEditObject\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const id)" .br .ti -1c .RI "int \fBLIBMTP_EndEditObject\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const id)" .br .ti -1c .RI "int \fBLIBMTP_TruncateObject\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint32_t const id, uint64_t offset)" .br .ti -1c .RI "int \fBLIBMTP_Update_Album\fP (\fBLIBMTP_mtpdevice_t\fP *device, \fBLIBMTP_album_t\fP const *const metadata)" .br .ti -1c .RI "void \fBptp_nikon_getptpipguid\fP (unsigned char *guid)" .br .ti -1c .RI "int \fBLIBMTP_Custom_Operation\fP (\fBLIBMTP_mtpdevice_t\fP *device, uint16_t code, int n_param,\&.\&.\&.)" .br .ti -1c .RI "void \fBLIBMTP_FreeMemory\fP (void *mem)" .br .in -1c .SS "Variables" .in +1c .ti -1c .RI "int \fBuse_mtpz\fP" .br .ti -1c .RI "int \fBLIBMTP_debug\fP = \fBLIBMTP_DEBUG_NONE\fP" .br .in -1c .SH "Detailed Description" .PP Copyright (C) 2005-2011 Linus Walleij triad@df.lth.se Copyright (C) 2005-2008 Richard A\&. Low richard@wentnet.com Copyright (C) 2007 Ted Bullock tbullock@canada.com Copyright (C) 2007 Tero Saarni tero.saarni@gmail.com Copyright (C) 2008 Florent Mertens flomertens@gmail.com .PP 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\&. .PP 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\&. .PP 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\&. .PP This file provides an interface 'glue' to the underlying PTP implementation from libgphoto2\&. It uses some local code to convert from/to UTF-8 (stored in \fBunicode\&.c\fP/\&.h) and some small utility functions, mainly for debugging (stored in \fButil\&.c\fP/\&.h)\&. .PP The three PTP files (ptp\&.c, \fBptp\&.h\fP and \fBptp-pack\&.c\fP) are plain copied from the libhphoto2 codebase\&. .PP The files libusb-glue\&.c/\&.h are just what they say: an interface to libusb for the actual, physical USB traffic\&. .SH "Typedef Documentation" .PP .SS "typedef struct \fB_MTPDataHandler\fP \fBMTPDataHandler\fP" These are to wrap the get/put handlers to convert from the MTP types to PTP types in a reliable way .SH "Function Documentation" .PP .SS "void ptp_nikon_getptpipguid (unsigned char * guid)" Dummy function needed to interface to upstream ptp\&.c/ptp\&.h files\&. .SH "Variable Documentation" .PP .SS "int LIBMTP_debug = \fBLIBMTP_DEBUG_NONE\fP" Global debug level We use a flag system to enable a part of logs\&. .PP The LIBMTP_DEBUG environment variable sets the debug flags for any binary that uses libmtp and calls LIBMTP_Init\&. The value can be given in decimal (must not start with '0' or it will be interpreted in octal), or in hexadecimal (must start with '0x')\&. .PP The value '-1' enables all debug flags\&. .PP Some of the utilities in examples/ also take a command-line flag '-d' that enables LIBMTP_DEBUG_PTP and LIBMTP_DEBUG_DATA (same as setting LIBMTP_DEBUG=9)\&. .PP Flags (combine by adding the hex values): 0x00 [0000 0000] : LIBMTP_DEBUG_NONE : no debug (default) 0x01 [0000 0001] : LIBMTP_DEBUG_PTP : PTP debug 0x02 [0000 0010] : LIBMTP_DEBUG_PLST : Playlist debug 0x04 [0000 0100] : LIBMTP_DEBUG_USB : USB debug 0x08 [0000 1000] : LIBMTP_DEBUG_DATA : USB data debug .PP (Please keep this list in sync with \fBlibmtp\&.h\fP\&.) .PP Referenced by \fBLIBMTP_Set_Debug()\fP\&. .SH "Author" .PP Generated automatically by Doxygen for libmtp from the source code\&.