tag: add attribute "has_playlist"
This commit is contained in:
parent
4a23a4bfee
commit
4b36af4a34
@ -100,6 +100,13 @@ song_load(FILE *fp, struct directory *parent, const char *uri,
|
||||
}
|
||||
|
||||
song->tag->time = atoi(value);
|
||||
} else if (strcmp(line, "Playlist") == 0) {
|
||||
if (!song->tag) {
|
||||
song->tag = tag_new();
|
||||
tag_begin_add(song->tag);
|
||||
}
|
||||
|
||||
song->tag->has_playlist = strcmp(value, "yes") == 0;
|
||||
} else if (strcmp(line, SONG_MTIME) == 0) {
|
||||
song->mtime = atoi(value);
|
||||
} else if (strcmp(line, "Range") == 0) {
|
||||
|
@ -158,6 +158,7 @@ struct tag *tag_new(void)
|
||||
struct tag *ret = g_new(struct tag, 1);
|
||||
ret->items = NULL;
|
||||
ret->time = -1;
|
||||
ret->has_playlist = false;
|
||||
ret->num_items = 0;
|
||||
return ret;
|
||||
}
|
||||
@ -226,6 +227,7 @@ struct tag *tag_dup(const struct tag *tag)
|
||||
|
||||
ret = tag_new();
|
||||
ret->time = tag->time;
|
||||
ret->has_playlist = tag->has_playlist;
|
||||
ret->num_items = tag->num_items;
|
||||
ret->items = ret->num_items > 0 ? g_malloc(items_size(tag)) : NULL;
|
||||
|
||||
|
@ -88,6 +88,12 @@ struct tag {
|
||||
*/
|
||||
int time;
|
||||
|
||||
/**
|
||||
* Does this file have an embedded playlist (e.g. embedded CUE
|
||||
* sheet)?
|
||||
*/
|
||||
bool has_playlist;
|
||||
|
||||
/** an array of tag items */
|
||||
struct tag_item **items;
|
||||
|
||||
|
@ -28,6 +28,9 @@ void tag_save(FILE *file, const struct tag *tag)
|
||||
if (tag->time >= 0)
|
||||
fprintf(file, SONG_TIME "%i\n", tag->time);
|
||||
|
||||
if (tag->has_playlist)
|
||||
fprintf(file, "Playlist: yes\n");
|
||||
|
||||
for (unsigned i = 0; i < tag->num_items; i++)
|
||||
fprintf(file, "%s: %s\n",
|
||||
tag_item_names[tag->items[i]->type],
|
||||
|
Loading…
Reference in New Issue
Block a user