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:
@@ -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,
|
||||
|
Reference in New Issue
Block a user