libmtp.c File Reference
`#include "libmtp.h"`
`#include "unicode.h"`
`#include "ptp.h"`
`#include "libusb-glue.h"`
`#include <string.h>`
`#include <sys/types.h>`
`#include <sys/stat.h>`
`#include <fcntl.h>`

## Data Structures

struct | filemap_struct

## Typedefs

typedef struct filemap_struct | filemap_t

## Functions

void | LIBMTP_Init (void)
char const * | LIBMTP_Get_Filetype_Description (LIBMTP_filetype_t intype)
LIBMTP_mtpdevice_t * | LIBMTP_Get_First_Device (void)
uint32_t | LIBMTP_Number_Devices_In_List (LIBMTP_mtpdevice_t *device_list)
LIBMTP_error_number_t | LIBMTP_Get_Connected_Devices (LIBMTP_mtpdevice_t **device_list)
void | LIBMTP_Release_Device_List (LIBMTP_mtpdevice_t *device)
void | LIBMTP_Release_Device (LIBMTP_mtpdevice_t *device)
LIBMTP_error_t * | LIBMTP_Get_Errorstack (LIBMTP_mtpdevice_t *device)
void | LIBMTP_Clear_Errorstack (LIBMTP_mtpdevice_t *device)
void | LIBMTP_Dump_Errorstack (LIBMTP_mtpdevice_t *device)
void | LIBMTP_Dump_Device_Info (LIBMTP_mtpdevice_t *device)
char * | LIBMTP_Get_Modelname (LIBMTP_mtpdevice_t *device)
char * | LIBMTP_Get_Serialnumber (LIBMTP_mtpdevice_t *device)
char * | LIBMTP_Get_Deviceversion (LIBMTP_mtpdevice_t *device)
char * | LIBMTP_Get_Friendlyname (LIBMTP_mtpdevice_t *device)
int | LIBMTP_Set_Friendlyname (LIBMTP_mtpdevice_t *device, char const *const friendlyname)
char * | LIBMTP_Get_Syncpartner (LIBMTP_mtpdevice_t *device)
int | LIBMTP_Set_Syncpartner (LIBMTP_mtpdevice_t *device, char const *const syncpartner)
int | LIBMTP_Get_Batterylevel (LIBMTP_mtpdevice_t *device, uint8_t *const maximum_level, uint8_t *const current_level)
int | LIBMTP_Format_Storage (LIBMTP_mtpdevice_t *device, LIBMTP_devicestorage_t *storage)
int | LIBMTP_Get_Secure_Time (LIBMTP_mtpdevice_t *device, char **const sectime)
int | LIBMTP_Get_Device_Certificate (LIBMTP_mtpdevice_t *device, char **const devcert)
int | LIBMTP_Get_Supported_Filetypes (LIBMTP_mtpdevice_t *device, uint16_t **const filetypes, uint16_t *const length)
int | LIBMTP_Get_Storage (LIBMTP_mtpdevice_t *device, int const sortby)
LIBMTP_file_t * | LIBMTP_new_file_t (void)
void | LIBMTP_destroy_file_t (LIBMTP_file_t *file)
LIBMTP_file_t * | LIBMTP_Get_Filelisting (LIBMTP_mtpdevice_t *device)
LIBMTP_file_t * | LIBMTP_Get_Filelisting_With_Callback (LIBMTP_mtpdevice_t *device, LIBMTP_progressfunc_t const callback, void const *const data)
LIBMTP_file_t * | LIBMTP_Get_Filemetadata (LIBMTP_mtpdevice_t *device, uint32_t const fileid)
LIBMTP_track_t * | LIBMTP_new_track_t (void)
void | LIBMTP_destroy_track_t (LIBMTP_track_t *track)
LIBMTP_track_t * | LIBMTP_Get_Tracklisting (LIBMTP_mtpdevice_t *device)
LIBMTP_track_t * | LIBMTP_Get_Tracklisting_With_Callback (LIBMTP_mtpdevice_t *device, LIBMTP_progressfunc_t const callback, void const *const data)
LIBMTP_track_t * | LIBMTP_Get_Trackmetadata (LIBMTP_mtpdevice_t *device, uint32_t const trackid)
int | LIBMTP_Get_File_To_File (LIBMTP_mtpdevice_t *device, uint32_t const id, char const *const path, LIBMTP_progressfunc_t const callback, void const *const data)
int | LIBMTP_Get_File_To_File_Descriptor (LIBMTP_mtpdevice_t *device, uint32_t const id, int const fd, LIBMTP_progressfunc_t const callback, void const *const data)
int | LIBMTP_Get_Track_To_File (LIBMTP_mtpdevice_t *device, uint32_t const id, char const *const path, LIBMTP_progressfunc_t const callback, void const *const data)
int | LIBMTP_Get_Track_To_File_Descriptor (LIBMTP_mtpdevice_t *device, uint32_t const id, int const fd, LIBMTP_progressfunc_t const callback, void const *const data)
int | LIBMTP_Send_Track_From_File (LIBMTP_mtpdevice_t *device, char const *const path, LIBMTP_track_t *const metadata, LIBMTP_progressfunc_t const callback, void const *const data, uint32_t const parenthandle)
int | LIBMTP_Send_Track_From_File_Descriptor (LIBMTP_mtpdevice_t *device, int const fd, LIBMTP_track_t *const metadata, LIBMTP_progressfunc_t const callback, void const *const data, uint32_t const parenthandle)
int | LIBMTP_Send_File_From_File (LIBMTP_mtpdevice_t *device, char const *const path, LIBMTP_file_t *const filedata, LIBMTP_progressfunc_t const callback, void const *const data, uint32_t const parenthandle)
int | LIBMTP_Send_File_From_File_Descriptor (LIBMTP_mtpdevice_t *device, int const fd, LIBMTP_file_t *const filedata, LIBMTP_progressfunc_t const callback, void const *const data, uint32_t const parenthandle)
int | LIBMTP_Update_Track_Metadata (LIBMTP_mtpdevice_t *device, LIBMTP_track_t const *const metadata)
int | LIBMTP_Delete_Object (LIBMTP_mtpdevice_t *device, uint32_t object_id)
int | LIBMTP_Track_Exists (LIBMTP_mtpdevice_t *device, uint32_t const id)
LIBMTP_folder_t * | LIBMTP_new_folder_t (void)
void | LIBMTP_destroy_folder_t (LIBMTP_folder_t *folder)
LIBMTP_folder_t * | LIBMTP_Find_Folder (LIBMTP_folder_t *folderlist, uint32_t id)
LIBMTP_folder_t * | LIBMTP_Get_Folder_List (LIBMTP_mtpdevice_t *device)
uint32_t | LIBMTP_Create_Folder (LIBMTP_mtpdevice_t *device, char *name, uint32_t parent_id)
LIBMTP_playlist_t * | LIBMTP_new_playlist_t (void)
void | LIBMTP_destroy_playlist_t (LIBMTP_playlist_t *playlist)
LIBMTP_playlist_t * | LIBMTP_Get_Playlist_List (LIBMTP_mtpdevice_t *device)
LIBMTP_playlist_t * | LIBMTP_Get_Playlist (LIBMTP_mtpdevice_t *device, uint32_t const plid)
int | LIBMTP_Create_New_Playlist (LIBMTP_mtpdevice_t *device, LIBMTP_playlist_t *const metadata, uint32_t const parenthandle)
int | LIBMTP_Update_Playlist (LIBMTP_mtpdevice_t *device, LIBMTP_playlist_t const *const metadata)
LIBMTP_album_t * | LIBMTP_new_album_t (void)
void | LIBMTP_destroy_album_t (LIBMTP_album_t *album)
LIBMTP_album_t * | LIBMTP_Get_Album_List (LIBMTP_mtpdevice_t *device)
LIBMTP_album_t * | LIBMTP_Get_Album (LIBMTP_mtpdevice_t *device, uint32_t const albid)
int | LIBMTP_Create_New_Album (LIBMTP_mtpdevice_t *device, LIBMTP_album_t *const metadata, uint32_t const parenthandle)
LIBMTP_filesampledata_t * | LIBMTP_new_filesampledata_t (void)
void | LIBMTP_destroy_filesampledata_t (LIBMTP_filesampledata_t *sample)
int | LIBMTP_Get_Representative_Sample_Format (LIBMTP_mtpdevice_t *device, LIBMTP_filetype_t const filetype, LIBMTP_filesampledata_t **sample)
int | LIBMTP_Send_Representative_Sample (LIBMTP_mtpdevice_t *device, uint32_t const id, LIBMTP_filesampledata_t *sampledata)
int | LIBMTP_Update_Album (LIBMTP_mtpdevice_t *device, LIBMTP_album_t const *const metadata)
void | ptp_nikon_getptpipguid (unsigned char *guid)

## Detailed Description

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.

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 unicode.c/.h) and some small utility functions, mainly for debugging (stored in util.c/.h).

The three PTP files (ptp.c, ptp.h and ptp-pack.c) are plain copied from the libhphoto2 codebase.

The files libusb-glue.c/.h are just what they say: an interface to libusb for the actual, physical USB traffic.

## Function Documentation

void ptp_nikon_getptpipguid | ( | unsigned char * | guid | ) |

Dummy function needed to interface to upstream ptp.c/ptp.h files.