libmtp  0.1.4
Functions
The audio/video playlist management API.

Functions

LIBMTP_playlist_tLIBMTP_new_playlist_t (void)
 
void LIBMTP_destroy_playlist_t (LIBMTP_playlist_t *)
 
LIBMTP_playlist_tLIBMTP_Get_Playlist_List (LIBMTP_mtpdevice_t *)
 
LIBMTP_playlist_tLIBMTP_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)
 

Detailed Description

Function Documentation

int LIBMTP_Create_New_Playlist ( LIBMTP_mtpdevice_t device,
LIBMTP_playlist_t *const  metadata,
uint32_t const  parenthandle 
)

This routine creates a new playlist based on the metadata supplied. If the tracks field of the metadata contains a track listing, these tracks will be added to the playlist.

Parameters
devicea pointer to the device to create the new playlist on.
metadatathe metadata for the new playlist. If the function exits with success, the playlist_id field of this struct will contain the new playlist ID of the playlist.
parenthandlethe parent (e.g. folder) to store this playlist in. Pass in 0 to put the playlist in the root directory.
Returns
0 on success, any other value means failure.
See Also
LIBMTP_Update_Playlist()
LIBMTP_Delete_Object()

References LIBMTP_mtpdevice_struct::default_playlist_folder, LIBMTP_playlist_struct::name, LIBMTP_playlist_struct::no_tracks, LIBMTP_playlist_struct::playlist_id, and LIBMTP_playlist_struct::tracks.

void LIBMTP_destroy_playlist_t ( LIBMTP_playlist_t playlist)

This destroys a playlist 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.

Parameters
playlistthe playlist metadata to destroy.
See Also
LIBMTP_new_playlist_t()

References LIBMTP_playlist_struct::name, and LIBMTP_playlist_struct::tracks.

LIBMTP_playlist_t* LIBMTP_Get_Playlist ( LIBMTP_mtpdevice_t device,
uint32_t const  plid 
)

This function retrieves an individual playlist from the device.

Parameters
devicea pointer to the device to get the playlist from.
plidthe unique ID of the playlist to retrieve.
Returns
a valid playlist metadata post or NULL on failure.
See Also
LIBMTP_Get_Playlist_List()

References LIBMTP_new_playlist_t(), LIBMTP_playlist_struct::name, LIBMTP_playlist_struct::no_tracks, LIBMTP_mtpdevice_struct::params, LIBMTP_playlist_struct::playlist_id, and LIBMTP_playlist_struct::tracks.

LIBMTP_playlist_t* LIBMTP_Get_Playlist_List ( LIBMTP_mtpdevice_t device)

This function returns a list of the playlists available on the device. Typical usage:

Parameters
devicea pointer to the device to get the playlist listing from.
Returns
a playlist list on success, else NULL. If there are no playlists on the device, NULL will be returned as well.
See Also
LIBMTP_Get_Playlist()

References LIBMTP_new_playlist_t(), LIBMTP_playlist_struct::name, LIBMTP_playlist_struct::next, LIBMTP_playlist_struct::no_tracks, LIBMTP_mtpdevice_struct::params, LIBMTP_playlist_struct::playlist_id, and LIBMTP_playlist_struct::tracks.

LIBMTP_playlist_t* LIBMTP_new_playlist_t ( void  )

This creates a new playlist 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_playlist_t operation later, so be careful of using strdup() when assigning strings, e.g.:

LIBMTP_playlist_t *pl = LIBMTP_new_playlist_t();
pl->name = strdup(str);
....
LIBMTP_destroy_playlist_t(pl);
Returns
a pointer to the newly allocated metadata structure.
See Also
LIBMTP_destroy_playlist_t()

References LIBMTP_playlist_struct::playlist_id.

Referenced by LIBMTP_Get_Playlist(), and LIBMTP_Get_Playlist_List().

int LIBMTP_Update_Playlist ( LIBMTP_mtpdevice_t device,
LIBMTP_playlist_t const *const  metadata 
)

This routine updates a playlist based on the metadata supplied. If the tracks field of the metadata contains a track listing, these tracks will be added to the playlist in place of those already present, i.e. the previous track listing will be deleted.

Parameters
devicea pointer to the device to create the new playlist on.
metadatathe metadata for the playlist to be updated. notice that the field playlist_id must contain the apropriate playlist ID.
Returns
0 on success, any other value means failure.
See Also
LIBMTP_Create_New_Playlist()
LIBMTP_Delete_Object()

References LIBMTP_playlist_struct::name, LIBMTP_playlist_struct::no_tracks, LIBMTP_mtpdevice_struct::params, LIBMTP_playlist_struct::playlist_id, and LIBMTP_playlist_struct::tracks.