Track Number column in music browser

Robert Hart <[email protected]>
Newsgroups gmane.comp.audio.zinf.devel
Message-ID <1052816954.897.7.camel@euclid>
I've got a nagging feeling that this has been done before....

The unix version of the musicbrowser doesn't seem to let you have the
tracknumber as a column. 

Any reason why this shouldn't go in?

Rob
track.diff (text/x-patch, 5.5 KB)
Index: ui/musicbrowser/unix/include/gtkmusicbrowser.h
===================================================================
RCS file: /cvsroot/zinf/zinf/ui/musicbrowser/unix/include/gtkmusicbrowser.h,v
retrieving revision 1.8
diff -u -r1.8 gtkmusicbrowser.h
--- ui/musicbrowser/unix/include/gtkmusicbrowser.h	13 Feb 2003 12:17:58 -0000	1.8
+++ ui/musicbrowser/unix/include/gtkmusicbrowser.h	12 May 2003 22:44:52 -0000
@@ -52,6 +52,7 @@
     kPositionColumn,
     kTitleColumn,
     kTimeColumn,
+    kTrackColumn,
     kYearColumn
 } PlaylistColumns;
 
@@ -261,7 +262,7 @@
     GtkWidget *artistSubTree;
     GtkWidget *playlistSubTree;
  
-    PlaylistColumns playlistCols[9];
+    PlaylistColumns playlistCols[10];
     bool playlistColsChanged;
     void ParsePlaylistCols();
     void UpdateColumnHeaders();
Index: ui/musicbrowser/unix/src/browserlist.cpp
===================================================================
RCS file: /cvsroot/zinf/zinf/ui/musicbrowser/unix/src/browserlist.cpp,v
retrieving revision 1.9
diff -u -r1.9 browserlist.cpp
--- ui/musicbrowser/unix/src/browserlist.cpp	15 Mar 2003 01:01:53 -0000	1.9
+++ ui/musicbrowser/unix/src/browserlist.cpp	12 May 2003 22:44:58 -0000
@@ -137,6 +137,7 @@
         char *album;
         char *genre;
         char *comment;
+	char track[4];
         char year[10];
         char length[50];
 	
@@ -152,6 +153,11 @@
 
         URLToFilePath((*i)->URL().c_str(), location);
 	if(blah) blah << "location "<<location<<endl;
+	if (mdata.Track() == 0 || mdata.Track()>999)
+	  sprintf(track, "-");
+	else {
+	  sprintf(track, "%d", mdata.Track());
+	}
         if (mdata.Year() == 0)
             sprintf(year, _("Unknown"));
         else
@@ -196,6 +202,9 @@
             case kTimeColumn:
                 iText[i] = length;
                 break;
+            case kTrackColumn:
+                iText[i] = track;
+                break;
             case kYearColumn:
                 iText[i] = year;
                 break;
@@ -244,6 +253,7 @@
         char *album;
         char *genre;
         char *comment;
+	char track[4];
         char length[50];
 
         string empty = " ";
@@ -256,11 +266,17 @@
         album = (char *)mdata.Album().c_str();
         genre = (char *)mdata.Genre().c_str();
         comment = (char *)mdata.Comment().c_str();
-
         URLToFilePath(item->URL().c_str(), location);
 	
 	if(blah) blah << "location "<<location<<endl;
-	
+
+	if (mdata.Track() == 0 || mdata.Track()>999)
+	  sprintf(track, "-");
+	else {
+	  sprintf(track, "%d", mdata.Track());
+	}
+
         if (mdata.Time() == 0)
             sprintf(length, _("Unknown"));
         else {
@@ -300,6 +316,9 @@
             case kTimeColumn:
                 iText[i] = length;
                 break;
+	    case kTrackColumn:
+	        iText[i] = track;
+	        break;
             default:
                 iText[i] = (char *)empty.c_str();
                 break;
@@ -365,7 +384,7 @@
     char *buf2 = new char[buffer.length()+1];
     strcpy(buf2,buffer.c_str());
     char *token = strtok(buf2, "|");
-    while (token != NULL && column < 9)
+    while (token != NULL && column < 10)
     {
         PlaylistColumns newcol = kEmptyColumn;
  
@@ -385,6 +404,8 @@
             newcol = kTimeColumn;
         else if (!strcmp(token, "Year"))
             newcol = kYearColumn;
+        else if (!strcmp(token, "Track"))
+            newcol = kTrackColumn;
         else
             newcol = kEmptyColumn;
 
@@ -395,7 +416,7 @@
         token = strtok(NULL, "|");
         column++;
     }
-    for (; column < 9; column++) 
+    for (; column < 10; column++) 
         playlistCols[column] = kEmptyColumn;
     delete [] buf2;
 }
@@ -435,6 +456,9 @@
             case kTimeColumn:
                 title = "Length"; 
                 break;
+            case kTrackColumn:
+                title = "Track";
+                break;
             case kYearColumn:
                 title = "Year";
                 break;
@@ -488,6 +512,7 @@
         char *album;
         char *genre;
         char *comment;
+	char track[4];
         char length[50];
         char year[10];
         string empty = " ";
@@ -503,7 +528,11 @@
         URLToFilePath(item->URL().c_str(), location);
 	if(blah) blah << "location " << location.c_str() << endl;
 	if(blah) blah << "url() "<< item->URL().c_str() << endl;
-
+	if (mdata.Track() == 0 || mdata.Track()>999)
+	  sprintf(track, "-");
+	else {
+	  sprintf(track, "%d", mdata.Track());
+	}
         if (mdata.Year() == 0)
             sprintf(year, "Unknown");
         else
@@ -547,6 +576,9 @@
                 break;
             case kTimeColumn:
                 iText[i] = length;
+                break;
+            case kTrackColumn:
+                iText[i] = track;
                 break;
             case kYearColumn:
                 iText[i] = year;
Index: ui/zinf/unix/src/GTKPreferenceWindow.cpp
===================================================================
RCS file: /cvsroot/zinf/zinf/ui/zinf/unix/src/GTKPreferenceWindow.cpp,v
retrieving revision 1.19
diff -u -r1.19 GTKPreferenceWindow.cpp
--- ui/zinf/unix/src/GTKPreferenceWindow.cpp	15 Mar 2003 01:01:53 -0000	1.19
+++ ui/zinf/unix/src/GTKPreferenceWindow.cpp	12 May 2003 22:45:10 -0000
@@ -2420,7 +2420,7 @@
     delete [] columns;
  
     char *available[] = {"Artist", "Album", "Comment", "Genre", "Location",
-                         "Time", "Title", "Year"};
+                         "Time", "Title", "Track", "Year"};
     int nCols = sizeof(available) / sizeof(available[0]);
     for (int i = 0; i < nCols; i++)
     {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.