Commit 01b0d9eb authored by Max Kellermann's avatar Max Kellermann

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.
parent a7f13d84
......@@ -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,12 +56,33 @@ print_visitor_directory(const struct directory *directory, void *data,
return true;
}
static void
print_playlist_in_directory(struct client *client,
const struct directory *directory,
const char *name_utf8)
{
if (directory_is_root(directory))
client_printf(client, "playlist: %s\n", name_utf8);
else
client_printf(client, "playlist: %s/%s\n",
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;
}
......@@ -69,21 +90,18 @@ 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);
return true;
}
static void
print_playlist_in_directory(struct client *client,
const struct directory *directory,
const char *name_utf8)
{
if (directory_is_root(directory))
client_printf(client, "playlist: %s\n", name_utf8);
else
client_printf(client, "playlist: %s/%s\n",
directory_get_path(directory), name_utf8);
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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment