Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Jan 2001 11:45:09 +0100
From:      "Matus \"fantomas\" Uhlar" <uhlar@fantomas.sk>
To:        ports@freebsd.org
Subject:   patch to mp3info
Message-ID:  <20010108114509.A5362@fantomas.sk>

next in thread | raw e-mail | index | archive | help
Hello,

I sent this patch to mp3info author, but w/o any response, also the provided
source FTP doesn't exist... if you can, send this to him, and please update
FreeBSD ports ;)

--- ChangeLog.orig	Fri Mar 19 20:40:36 1999
+++ ChangeLog	Fri Dec 29 18:10:55 2000
@@ -135,6 +135,13 @@
 	Added mp3info.spec 
 	Released 0.2.16
 
+29/12/2000 Matus "fantomas" Uhlar <uhlar@fantomas.sk>
+        Added genre "Fast-Fusion" before "Bebob" as winamp uses.
+	Added genres up tu number 147 from winamp.
+	(Anyone knows where are official genres descriptions located?)
+	Changed mp3info not to change unknown genres...
+        You can specify by number and mp3info will not overwrite old unknown.
+
 TODO:	Stupid 0.01 second sound hang at DSP_SYNC (l3dec playing).
 	Consider manually buffering output from l3dec.
 	Make rename COPY and DELETE the file if on another filesystem.
--- tag.cxx.orig	Fri Mar 19 21:36:43 1999
+++ tag.cxx	Fri Dec 29 18:10:27 2000
@@ -11,7 +11,9 @@
 #include "mp3info.hxx"
 #include <unistd.h>
 
-int genre_largest=115;
+int genre_largest=147;
+int genre_default=-1;	// Other
+char genre_unknown[]="Unknown";
 
 char *genres[] =
 {
@@ -99,6 +101,7 @@
     "Folk/Rock",
     "National Folk",
     "Swing",
+    "Fast-Fusion",
     "Bebob",
     "Latin",
     "Revival",
@@ -130,7 +133,38 @@
     "Tango",
     "Samba",
     "Folklore",
-    "Unknown"
+    "Ballad",
+    "Power Ballad",
+    "Rhytmic Soul",
+    "Freestyle",
+    "Duet",
+    "Punk Rock",
+    "Drum Solo",
+    "A Capella",
+    "Eurohouse",
+    "Dance Hall",
+    "Goa",
+    "Drum & Bass",
+    "Club-House",
+    "Hardcore",
+    "Terror",
+    "Indie",
+    "BritPop",
+    "Negerpunk",
+    "PolskPunk",
+    "Beat",
+    "Christian Gangster",
+    "Heavy Metal",
+    "Black Metal",
+    "Crossover",
+    "Contemporary Christian",
+    "Christian Rock",
+    "Merengue",
+    "Salsa",
+    "Thrash Metal",
+    "Anime",
+    "JPop",
+    "Synthpop"
 };
 
 void safecopy(char *to, char *from, int maxlen)
@@ -183,10 +217,10 @@
 	safecopy(year, song.year, 4);
 	safecopy(comment, song.comment, 30);
 	gennum = song.genre & 0xFF;
-	if ((gennum < 0) || (gennum >= genre_largest)) {
-	    gennum = genre_largest;
-	}
-	strcpy(genre, genres[gennum]);
+	if ((gennum < 0) || (gennum > genre_largest)) {
+	    strcpy(genre, genre_unknown);
+	} else
+	    strcpy(genre, genres[gennum]);
 	return (1);
     } else {
 	return (0);
@@ -216,12 +250,11 @@
 	strncpy(year, from->year, 4);
     if (from->comment[0])
 	strncpy(comment, from->comment, 30);
-    if (from->gennum != -1)
 	gennum = from->gennum;
-    if ((gennum < 0) || (gennum >= genre_largest)) {
-	gennum = genre_largest;
-    }
-    strcpy(genre, genres[gennum]);
+    if ((gennum < 0) || (gennum >= genre_largest))
+        strcpy(genre, genre_unknown);
+    else
+        strcpy(genre, genres[gennum]);
 }
 
 bool Tag::set(FILE * file)
@@ -234,13 +267,7 @@
     spacecopy(song.album, album, 30);
     spacecopy(song.year, year, 4);
     spacecopy(song.comment, comment, 30);
-
-    if (gennum >= genre_largest) {
-	song.genre = genre_largest;
-    } else {
-	temp = gennum;
-	song.genre = (unsigned char) temp;
-    }
+    song.genre = (unsigned char) gennum;
 
     fseek(file, -128, SEEK_END);
     temp = fread(&song, 3, 1, file);
--- mp3info.hxx.orig	Fri Dec 29 17:40:50 2000
+++ mp3info.hxx	Fri Dec 29 17:17:37 2000
@@ -112,3 +112,5 @@
 /* From tag.c */
 extern char *genres[];
 extern int genre_largest;
+extern int genre_default;
+extern char genre_unknown[];
--- mp3info.cxx.orig	Fri Mar 19 21:36:34 1999
+++ mp3info.cxx	Fri Dec 29 17:26:10 2000
@@ -130,18 +130,17 @@
 	    break;
 	case 'g':
 	    newinfo->gennum = strtol(optarg, NULL, 10);
-            if ((newinfo->gennum < 0) || (newinfo->gennum > genre_largest))
-                fprintf(stderr, "Genre number is out of range\n");
-            else
-  	        shall_write = 1;
+  	    shall_write = 1;
 	    break;
 	case 'G':
-	    for (newinfo->gennum=0; ((newinfo->gennum < genre_largest) && (strcasecmp(optarg,genres[newinfo->gennum]))) ; newinfo->gennum++) {
+	    for (newinfo->gennum=0; newinfo->gennum <= genre_largest ; newinfo->gennum++) {
+		if (strcasecmp(optarg,genres[newinfo->gennum])==0) break;
             }
-            if (newinfo->gennum==genre_largest)
+            if (newinfo->gennum > genre_largest) {
+		newinfo->gennum = genre_default;
                 fprintf(stderr, "Unknown genre\n");
-            else
-                shall_write = 1;
+	    }
+            shall_write = 1;
             printf("G : %d\n", newinfo->gennum);
             break;
 	case 'p':



-- 
 Matus "fantomas" Uhlar, sysadmin at NEXTRA, Slovakia; IRCNET admin of *.sk
 uhlar@fantomas.sk ; http://www.fantomas.sk/ ; http://www.nextra.sk/
 He who laughs last thinks slowest. 

---
Odchozí zpráva obsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.217 / Virová báze: 102 - datum vydání: 1/12/2000


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010108114509.A5362>