| void LIBMTP_destroy_track_t | ( | LIBMTP_track_t * | track | ) |
This destroys a track metadata structure and deallocates the memory used by it, including any strings. Never use a track metadata structure again after calling this function on it.
| track | the track metadata to destroy. |
| 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 | |||
| ) |
This gets a track off the device to a file identified by a filename. This is actually just a wrapper for the LIBMTP_Get_Track_To_File() function.
| device | a pointer to the device to get the track from. | |
| id | the track ID of the track to retrieve. | |
| path | a filename to use for the retrieved track. | |
| 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_Track_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 track off the device to a file identified by a file descriptor. This is actually just a wrapper for the LIBMTP_Get_File_To_File_Descriptor() function.
| device | a pointer to the device to get the track from. | |
| id | the track ID of the track to retrieve. | |
| fd | a file descriptor to write the track 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_track_t* LIBMTP_Get_Tracklisting | ( | LIBMTP_mtpdevice_t * | device | ) |
THIS FUNCTION IS DEPRECATED. PLEASE UPDATE YOUR CODE IN ORDER NOT TO USE IT.
| LIBMTP_track_t* LIBMTP_Get_Tracklisting_With_Callback | ( | LIBMTP_mtpdevice_t * | device, | |
| LIBMTP_progressfunc_t const | callback, | |||
| void const *const | data | |||
| ) |
This returns a long list of all tracks available on the current MTP device. Tracks include multimedia objects, both music tracks and video tracks. Typical usage:
LIBMTP_track_t *tracklist;
tracklist = LIBMTP_Get_Tracklisting_With_Callback(device, callback, data);
while (tracklist != NULL) {
LIBMTP_track_t *tmp;
// Do something on each element in the list here... tmp = tracklist; tracklist = tracklist->next; LIBMTP_destroy_track_t(tmp); }
If you want to group your track listing by storage (per storage unit) or arrange tracks into folders, you must dereference the storage_id and/or parent_id field of the returned LIBMTP_track_t struct. To arrange by folders or files you typically have to create the proper trees by calls to LIBMTP_Get_Storage() and/or LIBMTP_Get_Folder_List() first.
| device | a pointer to the device to get the track listing for. | |
| callback | a function to be called during the tracklisting retrieveal for displaying progress bars etc, or NULL if you don't want any callbacks. | |
| 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. |
next field of the LIBMTP_track_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_track_t* LIBMTP_Get_Trackmetadata | ( | LIBMTP_mtpdevice_t * | device, | |
| uint32_t const | trackid | |||
| ) |
This function retrieves the metadata for a single track off the device.
Do not call this function repeatedly! The track handles are linearly searched O(n) and the call may involve (slow) USB traffic, so use LIBMTP_Get_Tracklisting() and cache the tracks, preferably as an efficient data structure such as a hash list.
| device | a pointer to the device to get the track metadata from. | |
| trackid | the object ID of the track that you want the metadata for. |
| LIBMTP_track_t* LIBMTP_new_track_t | ( | void | ) |
This creates a new track 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_track_t operation later, so be careful of using strdup() when assigning strings, e.g.:
LIBMTP_track_t *track = LIBMTP_new_track_t(); track->title = strdup(titlestr); .... LIBMTP_destroy_track_t(track);
| 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 | |||
| ) |
This function sends a track from 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. | |
| metadata | a track metadata set to be written along with the file. After this call the field metadata->item_id will contain the new track ID. Other fields such as the metadata->filename, metadata->parent_id or metadata->storage_id may also change during this operation due to device restrictions, so do not rely on the contents of this struct to be preserved in any way.
| |
| 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_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 | |||
| ) |
This function sends a track from a file descriptor 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. | |
| fd | the filedescriptor for a local file which will be sent. | |
| metadata | a track metadata set to be written along with the file. After this call the field metadata->item_id will contain the new track ID. Other fields such as the metadata->filename, metadata->parent_id or metadata->storage_id may also change during this operation due to device restrictions, so do not rely on the contents of this struct to be preserved in any way.
| |
| 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_Set_Track_Name | ( | LIBMTP_mtpdevice_t * | device, | |
| LIBMTP_track_t * | track, | |||
| const char * | newname | |||
| ) |
This function renames a single track. This simply means that the PTP_OPC_ObjectFileName property is updated, if this is supported by the device.
| device | a pointer to the device that contains the file. | |
| track | the track metadata of the track to rename. On success, the filename member is updated. Be aware, that this name can be different than newname depending of device restrictions. | |
| newname | the new filename for this object. |
| int LIBMTP_Track_Exists | ( | LIBMTP_mtpdevice_t * | device, | |
| uint32_t const | id | |||
| ) |
Helper function. This indicates if a track exists on the device
| device | a pointer to the device to get the track from. | |
| id | the track ID of the track to retrieve. |
| int LIBMTP_Update_Track_Metadata | ( | LIBMTP_mtpdevice_t * | device, | |
| LIBMTP_track_t const *const | metadata | |||
| ) |
This function updates the MTP track object metadata on a single file identified by an object ID.
| device | a pointer to the device to update the track metadata on. | |
| metadata | a track metadata set to be written to the file. notice that the track_id field of the metadata structure must be correct so that the function can update the right file. If some properties of this metadata are set to NULL (strings) or 0 (numerical values) they will be discarded and the track will not be tagged with these blank values. |
1.5.4