changeset 961:be2a8436461a dev-0_8_99

Add display of second SID chip to titles, and also new custom format tokens %1 and %2 for first and second SID respectively. The old "%m" now expands to one or both SID models, depending how many are in use.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 20 Nov 2012 23:00:33 +0200
parents 5711abf1ff39
children 96d5618ca8b7
files src/xmms-sid.h src/xs_config.h src/xs_interface.c src/xs_sidplay1.cpp src/xs_sidplay2.cpp src/xs_sidplayfp.cpp src/xs_slsup.c src/xs_slsup.h src/xs_title.c xmms-sid.glade
diffstat 10 files changed, 52 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/src/xmms-sid.h	Tue Nov 20 22:39:27 2012 +0200
+++ b/src/xmms-sid.h	Tue Nov 20 23:00:33 2012 +0200
@@ -135,7 +135,8 @@
                  initAddr,
                  playAddr,
                  dataFileLen,
-                 sidModel;
+                 sidModel1,
+                 sidModel2;
     gint         nsubTunes, startTune;
     XSSubTuneInfo    *subTunes;
 } XSTuneInfo;
--- a/src/xs_config.h	Tue Nov 20 22:39:27 2012 +0200
+++ b/src/xs_config.h	Tue Nov 20 23:00:33 2012 +0200
@@ -81,7 +81,7 @@
     XS_SIDMODEL_UNKNOWN = 0,
     XS_SIDMODEL_6581,
     XS_SIDMODEL_8580,
-    XS_SIDMODEL_ANY
+    XS_SIDMODEL_ANY,
 };
 
 
--- a/src/xs_interface.c	Tue Nov 20 22:39:27 2012 +0200
+++ b/src/xs_interface.c	Tue Nov 20 23:00:33 2012 +0200
@@ -1403,7 +1403,7 @@
   gtk_widget_show (w_hbox9);
   gtk_box_pack_start (GTK_BOX (cfg_ftitle_box), w_hbox9, FALSE, FALSE, 2);
 
-  cfg_ftitle_desc1 = gtk_label_new (_("%% - '%' character\n%p - Performer/composer\n%t - Song name (title)\n%c - Copyright\n%s - File type\n%m - SID model"));
+  cfg_ftitle_desc1 = gtk_label_new (_("%% - '%' character\n%p - Performer/composer\n%t - Song name (title)\n%c - Copyright\n%s - File type\n%m - SID model (both)\n%1 - Model of SID #1"));
   gtk_widget_set_name (cfg_ftitle_desc1, "cfg_ftitle_desc1");
   gtk_widget_ref (cfg_ftitle_desc1);
   gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_ftitle_desc1", cfg_ftitle_desc1,
@@ -1413,7 +1413,7 @@
   gtk_label_set_justify (GTK_LABEL (cfg_ftitle_desc1), GTK_JUSTIFY_LEFT);
   gtk_misc_set_alignment (GTK_MISC (cfg_ftitle_desc1), 0.04, 0.5);
 
-  cfg_ftitle_desc2 = gtk_label_new (_("%C - Speed/clock (PAL/NTSC)\n%n - Subtune\n%N - Number of subtunes\n%f - Filename\n%F - File path\n%e - File extension"));
+  cfg_ftitle_desc2 = gtk_label_new (_("%C - Speed/clock (PAL/NTSC)\n%n - Subtune\n%N - Number of subtunes\n%f - Filename\n%F - File path\n%e - File extension\n%2 - Model of SID #2"));
   gtk_widget_set_name (cfg_ftitle_desc2, "cfg_ftitle_desc2");
   gtk_widget_ref (cfg_ftitle_desc2);
   gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_ftitle_desc2", cfg_ftitle_desc2,
--- a/src/xs_sidplay1.cpp	Tue Nov 20 22:39:27 2012 +0200
+++ b/src/xs_sidplay1.cpp	Tue Nov 20 23:00:33 2012 +0200
@@ -395,7 +395,7 @@
         info.infoString[0], info.infoString[1], info.infoString[2],
         info.loadAddr, info.initAddr, info.playAddr,
         info.dataFileLen, info.formatString,
-        info.sidModel
+        info.sidModel, XS_SIDMODEL_UNKNOWN
         );
     
 error:
@@ -428,7 +428,8 @@
     /* NOTICE! Here we assume that libSIDPlay[12] headers define
      * SIDTUNE_SIDMODEL_* similarly to our enums in xs_config.h ...
      */
-    state->tuneInfo->sidModel = info.sidModel;
+    state->tuneInfo->sidModel1 = info.sidModel;
+    state->tuneInfo->sidModel2 = XS_SIDMODEL_UNKNOWN;
 
     if (state->currSong > 0 && state->currSong <= state->tuneInfo->nsubTunes)
     {
--- a/src/xs_sidplay2.cpp	Tue Nov 20 22:39:27 2012 +0200
+++ b/src/xs_sidplay2.cpp	Tue Nov 20 23:00:33 2012 +0200
@@ -454,7 +454,7 @@
         info.infoString[0], info.infoString[1], info.infoString[2],
         info.loadAddr, info.initAddr, info.playAddr,
         info.dataFileLen, info.formatString,
-        info.sidModel
+        info.sidModel, XS_SIDMODEL_UNKNOWN
         );
 
 error:
@@ -487,7 +487,8 @@
     /* NOTICE! Here we assume that libSIDPlay[12] headers define
      * SIDTUNE_SIDMODEL_* similarly to our enums in xs_config.h ...
      */
-    state->tuneInfo->sidModel = info.sidModel;
+    state->tuneInfo->sidModel1 = info.sidModel;
+    state->tuneInfo->sidModel2 = XS_SIDMODEL_UNKNOWN;
 
     if (state->currSong > 0 && state->currSong <= state->tuneInfo->nsubTunes)
     {
--- a/src/xs_sidplayfp.cpp	Tue Nov 20 22:39:27 2012 +0200
+++ b/src/xs_sidplayfp.cpp	Tue Nov 20 23:00:33 2012 +0200
@@ -481,7 +481,7 @@
         info->infoString(0), info->infoString(1), info->infoString(2),
         info->loadAddr(), info->initAddr(), info->playAddr(),
         info->dataFileLen(), info->formatString(),
-        info->sidModel1()
+        info->sidModel1(), info->sidModel2()
         );
 #else
     const SidTuneInfo info = tune->getInfo();
@@ -491,7 +491,7 @@
         info.infoString[0], info.infoString[1], info.infoString[2],
         info.loadAddr, info.initAddr, info.playAddr,
         info.dataFileLen, info.formatString,
-        info.sidModel1
+        info.sidModel1, info.sidModel2
         );
 #endif
     }
@@ -523,7 +523,8 @@
 
     const SidTuneInfo *info = engine->tune.getInfo();
 
-    state->tuneInfo->sidModel = info->sidModel1();
+    state->tuneInfo->sidModel1 = info->sidModel1();
+    state->tuneInfo->sidModel2 = info->sidModel2();
 
     if (state->currSong > 0 && state->currSong <= state->tuneInfo->nsubTunes)
     {
--- a/src/xs_slsup.c	Tue Nov 20 22:39:27 2012 +0200
+++ b/src/xs_slsup.c	Tue Nov 20 23:00:33 2012 +0200
@@ -220,7 +220,8 @@
         gint nsubTunes, gint startTune, const gchar * sidName,
         const gchar * sidComposer, const gchar * sidCopyright,
         gint loadAddr, gint initAddr, gint playAddr,
-        gint dataFileLen, const gchar *sidFormat, gint sidModel)
+        gint dataFileLen, const gchar *sidFormat,
+        gint sidModel1, gint sidModel2)
 {
     XSTuneInfo *result;
     XSSLDBNode *tmpLength;
@@ -269,7 +270,8 @@
     result->dataFileLen = dataFileLen;
     result->sidFormat = XS_CS_SID(sidFormat);
     
-    result->sidModel = sidModel;
+    result->sidModel1 = sidModel1;
+    result->sidModel2 = sidModel2;
 
     /* Get length information (NOTE: Do not free this!) */
     tmpLength = xs_songlen_get(filename);
--- a/src/xs_slsup.h	Tue Nov 20 22:39:27 2012 +0200
+++ b/src/xs_slsup.h	Tue Nov 20 23:00:33 2012 +0200
@@ -21,7 +21,8 @@
             gint nsubTunes, gint startTune, const gchar * sidName,
             const gchar * sidComposer, const gchar * sidCopyright,
             gint loadAddr, gint initAddr, gint playAddr,
-            gint dataFileLen, const gchar *sidFormat, gint sidModel);
+            gint dataFileLen, const gchar *sidFormat,
+            gint sidModel1, gint sidModel2);
 void        xs_tuneinfo_free(XSTuneInfo *);
 
 
--- a/src/xs_title.c	Tue Nov 20 22:39:27 2012 +0200
+++ b/src/xs_title.c	Tue Nov 20 23:00:33 2012 +0200
@@ -65,6 +65,18 @@
 }
 
 
+const gchar *xs_get_sidmodel(gint model)
+{
+    switch (model)
+    {
+        case XS_SIDMODEL_6581: return "6581";
+        case XS_SIDMODEL_8580: return "8580";
+        case XS_SIDMODEL_ANY: return "ANY";
+        case XS_SIDMODEL_UNKNOWN: return "???";
+        default: return "";
+    }
+}
+
 gchar *xs_make_titlestring(XSTuneInfo *p, gint subTune)
 {
     gchar *tmpFilename, *tmpFilePath, *tmpFileExt,
@@ -101,7 +113,10 @@
         pTuple->track_number = subTune;
         pTuple->album_name = NULL;
         pTuple->performer = g_strdup(p->sidComposer);
-        pTuple->date = g_strdup((p->sidModel == XS_SIDMODEL_6581) ? "SID6581" : "SID8580");
+        pTuple->date = g_strdup_printf("%s%s%s",
+            xs_get_sidmodel(p->sidModel1),
+            (p->sidModel2 > XS_SIDMODEL_UNKNOWN) ? " + " : "",
+            (p->sidModel2 > XS_SIDMODEL_UNKNOWN) ? xs_get_sidmodel(p->sidModel2) : "");
 
         pTuple->year = 0;
         pTuple->genre = g_strdup("SID-tune");
@@ -150,20 +165,18 @@
                 case 's':
                     VPUTSTR(p->sidFormat);
                     break;
+                case '1':
+                    VPUTSTR(xs_get_sidmodel(p->sidModel1));
+                    break;
+                case '2':
+                    VPUTSTR(xs_get_sidmodel(p->sidModel2));
+                    break;
                 case 'm':
-                    switch (p->sidModel) {
-                    case XS_SIDMODEL_6581:
-                        VPUTSTR("6581");
-                        break;
-                    case XS_SIDMODEL_8580:
-                        VPUTSTR("8580");
-                        break;
-                    case XS_SIDMODEL_ANY:
-                        VPUTSTR("ANY");
-                        break;
-                    default:
-                        VPUTSTR("?");
-                        break;
+                    VPUTSTR(xs_get_sidmodel(p->sidModel1));
+                    if (p->sidModel2 > XS_SIDMODEL_UNKNOWN)
+                    {
+                        VPUTSTR(" + ");
+                        VPUTSTR(xs_get_sidmodel(p->sidModel2));
                     }
                     break;
                 case 'C':
--- a/xmms-sid.glade	Tue Nov 20 22:39:27 2012 +0200
+++ b/xmms-sid.glade	Tue Nov 20 23:00:33 2012 +0200
@@ -2009,7 +2009,8 @@
 %t - Song name (title)
 %c - Copyright
 %s - File type
-%m - SID model</label>
+%m - SID model (both)
+%1 - Model of SID #1</label>
 		  <justify>GTK_JUSTIFY_LEFT</justify>
 		  <wrap>False</wrap>
 		  <xalign>0.04</xalign>
@@ -2031,7 +2032,8 @@
 %N - Number of subtunes
 %f - Filename
 %F - File path
-%e - File extension</label>
+%e - File extension
+%2 - Model of SID #2</label>
 		  <justify>GTK_JUSTIFY_LEFT</justify>
 		  <wrap>False</wrap>
 		  <xalign>0.04</xalign>