diff src/xs_title.c @ 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 61a527ac3baa
children
line wrap: on
line diff
--- 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':