shithub: libtags

Download patch

ref: 244d6dbe34069fb8f8c4cc61e5c4725537f0cfd6
parent: 8674e9017cadc0a9f776de10940fc4cce03bd903
author: Sigrid Solveig Haflínudóttir <[email protected]>
date: Sun Mar 10 17:45:36 EDT 2024

separate "album artist" key

--- a/examples/readtags.c
+++ b/examples/readtags.c
@@ -13,6 +13,7 @@
 
 static const char *t2s[] = {
 	[Talbum] = "album",
+	[Talbumartist] = "albumartist",
 	[Talbumgain] = "albumgain",
 	[Talbumpeak] = "albumpeak",
 	[Tartist] = "artist",
--- a/id3v2.c
+++ b/id3v2.c
@@ -19,8 +19,10 @@
 	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)
--- a/m4a.c
+++ b/m4a.c
@@ -89,6 +89,8 @@
 			type = Talbum;
 		else if(memcmp(d, "\251ART", 4) == 0)
 			type = Tartist;
+		else if(memcmp(d, "aART", 4) == 0)
+			type = Talbumartist;
 		else if(memcmp(d, "\251gen", 4) == 0 || memcmp(d, "gnre", 4) == 0)
 			type = Tgenre;
 		else if(memcmp(d, "\251day", 4) == 0)
--- a/tags.h
+++ b/tags.h
@@ -23,6 +23,7 @@
 	Timage,
 	Tcomposer,
 	Tcomment,
+	Talbumartist,
 };
 
 /* GAIN note:
--- a/vorbis.c
+++ b/vorbis.c
@@ -8,7 +8,9 @@
 	char *s;
 	int type;
 }t[] = {
+	{"album artist", Talbumartist}, // some legacy leftovers
 	{"album", Talbum},
+	{"albumartist", Talbumartist},
 	{"artist", Tartist},
 	{"comment", Tcomment},
 	{"composer", Tcomposer},