summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-01-29 19:11:10 +1100
committerjacqueline <me@jacqueline.id.au>2024-01-29 19:11:10 +1100
commit04ff8bf492ab16df6a6a4faffd8d55158ef9eec5 (patch)
tree950e13e7dadc03be3c8e241feeb5bc04d34a0baf /lib
parent6b9a513214f13811616aa633db19c97015abf45b (diff)
downloadtangara-fw-04ff8bf492ab16df6a6a4faffd8d55158ef9eec5.tar.gz
Extract album artist from libtags-processed files
Diffstat (limited to 'lib')
-rw-r--r--lib/libtags/id3v2.c4
-rw-r--r--lib/libtags/tags.h1
-rw-r--r--lib/libtags/vorbis.c2
3 files changed, 6 insertions, 1 deletions
diff --git a/lib/libtags/id3v2.c b/lib/libtags/id3v2.c
index f5784c20..e1529d4a 100644
--- a/lib/libtags/id3v2.c
+++ b/lib/libtags/id3v2.c
@@ -19,8 +19,10 @@ v2cb(Tagctx *ctx, char *k, char *v)
k++;
if(strcmp(k, "AL") == 0 || strcmp(k, "ALB") == 0)
txtcb(ctx, Talbum, k-1, v);
- else if(strcmp(k, "PE1") == 0 || strcmp(k, "PE2") == 0 || strcmp(k, "P1") == 0 || strcmp(k, "P2") == 0)
+ else if(strcmp(k, "PE1") == 0 || strcmp(k, "P1") == 0)
txtcb(ctx, Tartist, k-1, v);
+ else if(strcmp(k, "PE2") == 0 || strcmp(k, "P2") == 0)
+ txtcb(ctx, Talbumartist, k-1, v);
else if(strcmp(k, "IT2") == 0 || strcmp(k, "T2") == 0)
txtcb(ctx, Ttitle, k-1, v);
else if(strcmp(k, "YE") == 0 || strcmp(k, "YER") == 0 || strcmp(k, "DRC") == 0)
diff --git a/lib/libtags/tags.h b/lib/libtags/tags.h
index c53d239e..91045218 100644
--- a/lib/libtags/tags.h
+++ b/lib/libtags/tags.h
@@ -10,6 +10,7 @@ enum
{
Tunknown = -1,
Tartist,
+ Talbumartist,
Talbum,
Ttitle,
Tdate, /* "2014", "2015/02/01", but the year goes first */
diff --git a/lib/libtags/vorbis.c b/lib/libtags/vorbis.c
index 0c659da5..c98a0e4e 100644
--- a/lib/libtags/vorbis.c
+++ b/lib/libtags/vorbis.c
@@ -14,6 +14,8 @@ cbvorbiscomment(Tagctx *ctx, char *k, char *v){
txtcb(ctx, Ttitle, k, v);
else if(cistrcmp(k, "artist") == 0)
txtcb(ctx, Tartist, k, v);
+ else if(cistrcmp(k, "albumartist") == 0)
+ txtcb(ctx, Talbumartist, k, v);
else if(cistrcmp(k, "tracknumber") == 0)
txtcb(ctx, Ttrack, k, v);
else if(cistrcmp(k, "date") == 0)