db_print: print extra "playlist" object for embedded CUE sheets
This finally enables the new embedded CUE sheet code: when a song file contains a playlist, it is printed in the "lsinfo" output, so clients get to know about this.
This commit is contained in:
parent
a7f13d841f
commit
01b0d9eb97
1
NEWS
1
NEWS
|
@ -4,6 +4,7 @@ ver 0.17 (2011/??/??)
|
|||
- "update" and "rescan" need only "CONTROL" permission
|
||||
- new command "seekcur" for simpler seeking within current song
|
||||
- add range parameter to command "load"
|
||||
- print extra "playlist" object for embedded CUE sheets
|
||||
* input:
|
||||
- cdio_paranoia: new input plugin to play audio CDs
|
||||
- curl: enable CURLOPT_NETRC
|
||||
|
|
|
@ -56,24 +56,6 @@ print_visitor_directory(const struct directory *directory, void *data,
|
|||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
print_visitor_song(struct song *song, void *data,
|
||||
G_GNUC_UNUSED GError **error_r)
|
||||
{
|
||||
struct client *client = data;
|
||||
song_print_uri(client, song);
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
print_visitor_song_info(struct song *song, void *data,
|
||||
G_GNUC_UNUSED GError **error_r)
|
||||
{
|
||||
struct client *client = data;
|
||||
song_print_info(client, song);
|
||||
return true;
|
||||
}
|
||||
|
||||
static void
|
||||
print_playlist_in_directory(struct client *client,
|
||||
const struct directory *directory,
|
||||
|
@ -86,6 +68,42 @@ print_playlist_in_directory(struct client *client,
|
|||
directory_get_path(directory), name_utf8);
|
||||
}
|
||||
|
||||
static bool
|
||||
print_visitor_song(struct song *song, void *data,
|
||||
G_GNUC_UNUSED GError **error_r)
|
||||
{
|
||||
assert(song != NULL);
|
||||
assert(song->parent != NULL);
|
||||
|
||||
struct client *client = data;
|
||||
song_print_uri(client, song);
|
||||
|
||||
if (song->tag != NULL && song->tag->has_playlist)
|
||||
/* this song file has an embedded CUE sheet */
|
||||
print_playlist_in_directory(client, song->parent,
|
||||
song->uri);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
print_visitor_song_info(struct song *song, void *data,
|
||||
G_GNUC_UNUSED GError **error_r)
|
||||
{
|
||||
assert(song != NULL);
|
||||
assert(song->parent != NULL);
|
||||
|
||||
struct client *client = data;
|
||||
song_print_info(client, song);
|
||||
|
||||
if (song->tag != NULL && song->tag->has_playlist)
|
||||
/* this song file has an embedded CUE sheet */
|
||||
print_playlist_in_directory(client, song->parent,
|
||||
song->uri);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
print_visitor_playlist(const struct playlist_metadata *playlist,
|
||||
const struct directory *directory, void *ctx,
|
||||
|
|
Loading…
Reference in New Issue