Mercurial > hg > xmms-sid
comparison 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 |
comparison
equal
deleted
inserted
replaced
960:5711abf1ff39 | 961:be2a8436461a |
---|---|
62 } else \ | 62 } else \ |
63 index = XS_BUF_SIZE; \ | 63 index = XS_BUF_SIZE; \ |
64 } \ | 64 } \ |
65 } | 65 } |
66 | 66 |
67 | |
68 const gchar *xs_get_sidmodel(gint model) | |
69 { | |
70 switch (model) | |
71 { | |
72 case XS_SIDMODEL_6581: return "6581"; | |
73 case XS_SIDMODEL_8580: return "8580"; | |
74 case XS_SIDMODEL_ANY: return "ANY"; | |
75 case XS_SIDMODEL_UNKNOWN: return "???"; | |
76 default: return ""; | |
77 } | |
78 } | |
67 | 79 |
68 gchar *xs_make_titlestring(XSTuneInfo *p, gint subTune) | 80 gchar *xs_make_titlestring(XSTuneInfo *p, gint subTune) |
69 { | 81 { |
70 gchar *tmpFilename, *tmpFilePath, *tmpFileExt, | 82 gchar *tmpFilename, *tmpFilePath, *tmpFileExt, |
71 *str, *result, tmpStr[XS_BUF_SIZE], tmpBuf[XS_BUF_SIZE]; | 83 *str, *result, tmpStr[XS_BUF_SIZE], tmpBuf[XS_BUF_SIZE]; |
99 | 111 |
100 pTuple->track_name = g_strdup(p->sidName); | 112 pTuple->track_name = g_strdup(p->sidName); |
101 pTuple->track_number = subTune; | 113 pTuple->track_number = subTune; |
102 pTuple->album_name = NULL; | 114 pTuple->album_name = NULL; |
103 pTuple->performer = g_strdup(p->sidComposer); | 115 pTuple->performer = g_strdup(p->sidComposer); |
104 pTuple->date = g_strdup((p->sidModel == XS_SIDMODEL_6581) ? "SID6581" : "SID8580"); | 116 pTuple->date = g_strdup_printf("%s%s%s", |
117 xs_get_sidmodel(p->sidModel1), | |
118 (p->sidModel2 > XS_SIDMODEL_UNKNOWN) ? " + " : "", | |
119 (p->sidModel2 > XS_SIDMODEL_UNKNOWN) ? xs_get_sidmodel(p->sidModel2) : ""); | |
105 | 120 |
106 pTuple->year = 0; | 121 pTuple->year = 0; |
107 pTuple->genre = g_strdup("SID-tune"); | 122 pTuple->genre = g_strdup("SID-tune"); |
108 pTuple->comment = g_strdup(p->sidCopyright); | 123 pTuple->comment = g_strdup(p->sidCopyright); |
109 | 124 |
148 VPUTSTR(p->sidCopyright); | 163 VPUTSTR(p->sidCopyright); |
149 break; | 164 break; |
150 case 's': | 165 case 's': |
151 VPUTSTR(p->sidFormat); | 166 VPUTSTR(p->sidFormat); |
152 break; | 167 break; |
168 case '1': | |
169 VPUTSTR(xs_get_sidmodel(p->sidModel1)); | |
170 break; | |
171 case '2': | |
172 VPUTSTR(xs_get_sidmodel(p->sidModel2)); | |
173 break; | |
153 case 'm': | 174 case 'm': |
154 switch (p->sidModel) { | 175 VPUTSTR(xs_get_sidmodel(p->sidModel1)); |
155 case XS_SIDMODEL_6581: | 176 if (p->sidModel2 > XS_SIDMODEL_UNKNOWN) |
156 VPUTSTR("6581"); | 177 { |
157 break; | 178 VPUTSTR(" + "); |
158 case XS_SIDMODEL_8580: | 179 VPUTSTR(xs_get_sidmodel(p->sidModel2)); |
159 VPUTSTR("8580"); | |
160 break; | |
161 case XS_SIDMODEL_ANY: | |
162 VPUTSTR("ANY"); | |
163 break; | |
164 default: | |
165 VPUTSTR("?"); | |
166 break; | |
167 } | 180 } |
168 break; | 181 break; |
169 case 'C': | 182 case 'C': |
170 if (subInfo && (subInfo->tuneSpeed > 0)) { | 183 if (subInfo && (subInfo->tuneSpeed > 0)) { |
171 switch (subInfo->tuneSpeed) { | 184 switch (subInfo->tuneSpeed) { |