Mercurial > hg > dmlib
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) |