comparison tools/dumpmod.c @ 1117:378e5914be1e

Improve dumpmod output some more.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 04 Mar 2015 03:30:28 +0200
parents 14bd24790929
children 54e6516093ec
comparison
equal deleted inserted replaced
1116:9d78c880c6e1 1117:378e5914be1e
120 str++; 120 str++;
121 } 121 }
122 } 122 }
123 123
124 124
125 const char *getNote(const int note)
126 {
127 static char tmp[16];
128 snprintf(tmp, sizeof(tmp), "%s%d",
129 patNoteTable[note % 12], note / 12);
130 return tmp;
131 }
132
133
125 /* Print a given pattern 134 /* Print a given pattern
126 */ 135 */
127 void printPattern(FILE *f, JSSPattern *p) 136 void printPattern(FILE *f, JSSPattern *p)
128 { 137 {
129 int i, j; 138 int i, j;
143 break; 152 break;
144 case jsetNoteOff: 153 case jsetNoteOff:
145 fprintf(f, "=== "); 154 fprintf(f, "=== ");
146 break; 155 break;
147 default: 156 default:
148 fprintf(f, "%s%i ", patNoteTable[n->note % 12], n->note / 12); 157 fprintf(f, "%s ", getNote(n->note));
149 break; 158 break;
150 } 159 }
151 160
152 if (n->instrument != jsetNotSet) 161 if (n->instrument != jsetNotSet)
153 fprintf(f, "%.2x ", n->instrument + 1); // Because FT2 is 1-based and we use 0 internally 162 fprintf(f, "%.2x ", n->instrument + 1); // Because FT2 is 1-based and we use 0 internally
231 fprintf(f, "\n"); 240 fprintf(f, "\n");
232 } 241 }
233 } 242 }
234 243
235 244
236 void printExtInstrument(FILE *f, JSSExtInstrument *i) 245 void printExtInstrument(FILE *f, JSSExtInstrument *inst)
237 { 246 {
238 fprintf(f,
239 "Description: ");
240 #ifndef JSS_LIGHT 247 #ifndef JSS_LIGHT
241 if (i->desc && !optDump) 248 if (inst->desc && !optDump)
242 { 249 {
243 fprintf(f, "'"); 250 fprintf(f, "'");
244 printEscaped(f, i->desc); 251 printEscaped(f, inst->desc);
245 fprintf(f, "'"); 252 fprintf(f, "'");
246 } 253 }
247 #endif 254 #endif
248 fprintf(f, 255 fprintf(f,
249 "\n" 256 "\n"
251 " vibratoType....: %i\n" 258 " vibratoType....: %i\n"
252 " vibratoSweep...: %i\n" 259 " vibratoSweep...: %i\n"
253 " vibratoDepth...: %i\n" 260 " vibratoDepth...: %i\n"
254 " vibratoRate....: %i\n" 261 " vibratoRate....: %i\n"
255 " fadeOut........: %i\n", 262 " fadeOut........: %i\n",
256 i->nsamples, i->vibratoType, i->vibratoSweep, 263 inst->nsamples, inst->vibratoType, inst->vibratoSweep,
257 i->vibratoDepth, i->vibratoRate, i->fadeOut); 264 inst->vibratoDepth, inst->vibratoRate, inst->fadeOut);
258 265
259 if (dmVerbosity >= 1) 266 if (dmVerbosity >= 1)
260 { 267 {
261 printEnvelope(f, &i->volumeEnv, "Volume"); 268 printEnvelope(f, &inst->volumeEnv, "Volume");
262 printEnvelope(f, &i->panningEnv, "Panning"); 269 printEnvelope(f, &inst->panningEnv, "Panning");
270 }
271
272 if (dmVerbosity >= 2)
273 {
274 int n;
275 fprintf(f,
276 " sNumForNotes: ");
277 for (n = 0; n < jsetNNotes; n++)
278 {
279 int snum = inst->sNumForNotes[n];
280 if (snum != jsetNotSet)
281 {
282 fprintf(f, "%s:%d ", getNote(n), snum);
283 }
284 }
263 } 285 }
264 fprintf(f, "\n"); 286 fprintf(f, "\n");
265 } 287 }
266 288
267 289
268 void printInstrument(FILE *f, JSSInstrument *i) 290 void printInstrument(FILE *f, JSSInstrument *inst)
269 { 291 {
270 if (dmVerbosity >= 1) 292 if (dmVerbosity >= 1)
271 { 293 {
272 fprintf(f,
273 "Description: ");
274 #ifndef JSS_LIGHT 294 #ifndef JSS_LIGHT
275 if (i->desc && !optDump) 295 if (inst->desc && !optDump)
276 { 296 {
277 fprintf(f, "'"); 297 fprintf(f, "'");
278 printEscaped(f, i->desc); 298 printEscaped(f, inst->desc);
279 fprintf(f, "'"); 299 fprintf(f, "'");
280 } 300 }
281 #endif 301 #endif
282 fprintf(f, 302 fprintf(f,
283 "\n" 303 "\n"
284 " size...........: %ld (0x%lx)\n" 304 " size...........: %ld (0x%lx)\n"
285 " loop...........: %ld - %ld (0x%lx - 0x%lx)\n" 305 " loop...........: %ld - %ld (0x%lx - 0x%lx)\n"
286 " volume.........: %d (0x%x)\n" 306 " volume.........: %d (0x%x)\n"
287 " flags..........: 0x%x %s%s%s\n" 307 " flags..........: 0x%x %s%s%s\n"
288 " C4BaseSpeed....: %d (0x%x)\n" 308 " C4BaseSpeed....: %d (0x%x)\n"
289 " ERelNote.......: %s%d (%d)\n" 309 " ERelNote.......: %s (%d)\n"
290 " EFineTune......: %d\n" 310 " EFineTune......: %d\n"
291 " EPanning.......: %d (0x%x)\n\n", 311 " EPanning.......: %d (0x%x)\n\n",
292 (unsigned long) i->size, (unsigned long) i->size, 312 (unsigned long) inst->size, (unsigned long) inst->size,
293 (unsigned long) i->loopS, (unsigned long) i->loopE, 313 (unsigned long) inst->loopS, (unsigned long) inst->loopE,
294 (unsigned long) i->loopS, (unsigned long) i->loopE, 314 (unsigned long) inst->loopS, (unsigned long) inst->loopE,
295 i->volume, i->volume, 315 inst->volume, inst->volume,
296 i->flags, 316 inst->flags,
297 (i->flags & jsfLooped) ? "[loop]" : "", 317 (inst->flags & jsfLooped) ? "[loop]" : "",
298 (i->flags & jsfBiDi) ? "[bi-di]" : "", 318 (inst->flags & jsfBiDi) ? "[bi-di]" : "",
299 (i->flags & jsf16bit) ? "[16 bit]" : "[8 bit]", 319 (inst->flags & jsf16bit) ? "[16 bit]" : "[8 bit]",
300 i->C4BaseSpeed, i->C4BaseSpeed, 320 inst->C4BaseSpeed, inst->C4BaseSpeed,
301 patNoteTable[(48 + i->ERelNote) % 12], (48 + i->ERelNote) / 12, i->ERelNote, 321 getNote(inst->ERelNote + 48), inst->ERelNote,
302 i->EFineTune, i->EPanning, i->EPanning); 322 inst->EFineTune, inst->EPanning, inst->EPanning);
303 } 323 }
304 else 324 else
305 { 325 {
306 #ifndef JSS_LIGHT 326 #ifndef JSS_LIGHT
307 if (i->desc && !optDump) 327 if (inst->desc && !optDump)
308 { 328 {
309 printEscaped(f, i->desc); 329 printEscaped(f, inst->desc);
310 fprintf(f, "|"); 330 fprintf(f, "|");
311 } 331 }
312 #endif 332 #endif
313 fprintf(f, 333 fprintf(f,
314 "%8ld|%8ld..%-8ld|%03d|%-2s %-2s %-2s|" 334 "%8ld|%8ld..%-8ld|%03d|%-2s %-2s %-2s|"
315 "%4d|%s%d|%d|%d\n", 335 "%4d|%s%d|%4d|%4d\n",
316 (unsigned long) i->size, 336 (unsigned long) inst->size,
317 (unsigned long) i->loopS, 337 (unsigned long) inst->loopS,
318 (unsigned long) i->loopE, 338 (unsigned long) inst->loopE,
319 i->volume, 339 inst->volume,
320 340
321 (i->flags & jsfLooped) ? "lp" : "", 341 (inst->flags & jsfLooped) ? "lp" : "",
322 (i->flags & jsfBiDi) ? "bi" : "", 342 (inst->flags & jsfBiDi) ? "bi" : "",
323 (i->flags & jsf16bit) ? "16" : "8", 343 (inst->flags & jsf16bit) ? "16" : "8",
324 344
325 i->C4BaseSpeed, 345 inst->C4BaseSpeed,
326 patNoteTable[(48 + i->ERelNote) % 12], 346 patNoteTable[(48 + inst->ERelNote) % 12],
327 (48 + i->ERelNote) / 12, i->EFineTune, 347 (48 + inst->ERelNote) / 12, inst->EFineTune,
328 i->EPanning); 348 inst->EPanning);
329 } 349 }
330 } 350 }
331 351
332 352
333 void printGeneralInfo(FILE *f, JSSModule *m) 353 void printGeneralInfo(FILE *f, JSSModule *m)