Functions | |
| 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_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) | 
| void LIBMTP_destroy_file_t | ( | LIBMTP_file_t * | file | ) | 
This destroys a file metadata structure and deallocates the memory used by it, including any strings. Never use a file metadata structure again after calling this function on it.
| file | the file metadata to destroy. | 
| 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 | |||
| ) | 
This gets a file off the device to a local file identified by a filename.
| device | a pointer to the device to get the track from. | |
| id | the file ID of the file to retrieve. | |
| path | a filename to use for the retrieved file. | |
| callback | a progress indicator function or NULL to ignore. | |
| data | a user-defined pointer that is passed along to the progress function in order to pass along some user defined data to the progress updates. If not used, set this to NULL.  | 
| 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 | |||
| ) | 
This gets a file off the device to a file identified by a file descriptor.
This function can potentially be used for streaming files off the device for playback or broadcast for example, by downloading the file into a stream sink e.g. a socket.
| device | a pointer to the device to get the file from. | |
| id | the file ID of the file to retrieve. | |
| fd | a local file descriptor to write the file to. | |
| callback | a progress indicator function or NULL to ignore. | |
| data | a user-defined pointer that is passed along to the progress function in order to pass along some user defined data to the progress updates. If not used, set this to NULL.  | 
| LIBMTP_file_t* LIBMTP_Get_Filelisting | ( | LIBMTP_mtpdevice_t * | device | ) | 
This returns a long list of all files available on the current MTP device. Typical usage:
LIBMTP_file_t *filelist;
 filelist = LIBMTP_Get_Filelisting(device);
 while (filelist != NULL) {
   LIBMTP_file_t *tmp;
// Do something on each element in the list here... tmp = filelist; filelist = filelist->next; LIBMTP_destroy_file_t(tmp); }
| device | a pointer to the device to get the file listing for. | 
next field of the LIBMTP_file_t data structure. Each of the metadata tags must be freed after use, and may contain only partial metadata information, i.e. one or several fields may be NULL or 0. | LIBMTP_file_t* LIBMTP_Get_Filemetadata | ( | LIBMTP_mtpdevice_t * | device, | |
| uint32_t const | fileid | |||
| ) | 
This function retrieves the metadata for a single file off the device.
Do not call this function repeatedly! The file handles are linearly searched O(n) and the call may involve (slow) USB traffic, so use LIBMTP_Get_Filelisting() and cache the file, preferably as an efficient data structure such as a hash list.
| device | a pointer to the device to get the file metadata from. | |
| fileid | the object ID of the file that you want the metadata for. | 
| char const* LIBMTP_Get_Filetype_Description | ( | LIBMTP_filetype_t | intype | ) | 
This helper function returns a textual description for a libmtp file type to be used in dialog boxes etc.
| intype | the libmtp internal filetype to get a description for. | 
| LIBMTP_file_t* LIBMTP_new_file_t | ( | void | ) | 
This creates a new file metadata structure and allocates memory for it. Notice that if you add strings to this structure they will be freed by the corresponding LIBMTP_destroy_file_t operation later, so be careful of using strdup() when assigning strings, e.g.:
LIBMTP_file_t *file = LIBMTP_new_file_t(); file->filename = strdup(namestr); .... LIBMTP_destroy_file_t(file);
| 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 | |||
| ) | 
This function sends a local file to an MTP device. A filename and a set of metadata must be given as input.
| device | a pointer to the device to send the track to. | |
| path | the filename of a local file which will be sent. | |
| filedata | a file strtuct to pass in info about the file. After this call the field item_id will contain the new file ID.  | |
| callback | a progress indicator function or NULL to ignore. | |
| data | a user-defined pointer that is passed along to the progress function in order to pass along some user defined data to the progress updates. If not used, set this to NULL.  | |
| parenthandle | the parent (e.g. folder) to store this file in. Since some devices are a bit picky about where files are placed, a default folder will be chosen if libmtp has detected one for the current filetype and this parameter is set to 0. If this is 0 and no default folder can be found, the file will be stored in the root folder. | 
| 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 | |||
| ) | 
This function sends a generic file from a file descriptor to an MTP device. A filename and a set of metadata must be given as input.
This can potentially be used for sending in a stream of unknown length. Set filedata->filesize = (uint64_t) -1 to make libmtp send some dummy length to the device and just accept a stream up to some device-determined max length. There is not guarantee this will work on all devices... Remember to set correct metadata for the track with LIBMTP_Update_Track_Metadata() afterwards if it's a music file. (This doesn't seem to work very well right now.)
| device | a pointer to the device to send the file to. | |
| fd | the filedescriptor for a local file which will be sent. | |
| filedata | a file strtuct to pass in info about the file. After this call the field item_id will contain the new track ID.  | |
| callback | a progress indicator function or NULL to ignore. | |
| data | a user-defined pointer that is passed along to the progress function in order to pass along some user defined data to the progress updates. If not used, set this to NULL.  | |
| parenthandle | the parent (e.g. folder) to store this file in. Since some devices are a bit picky about where files are placed, a default folder will be chosen if libmtp has detected one for the current filetype and this parameter is set to 0. If this is 0 and no default folder can be found, the file will be stored in the root folder. | 
 1.4.7