2 #include "../src/context.h"
3 #include "../src/lex.h"
6 char* usage
= "usage: lexdump <filename>\n\n"
7 "After parsing a quincer input file, dump the parse\n"
8 "results to output for test compliance\n\n"
9 "The output might be valid YAML.";
10 fprintf(stderr
,usage
);
13 int main(int argc
, char** argv
) {
21 qn_config_t
* config
= parse_config(argv
[1]);
24 for(i
=0; i
<config
->noutports
; i
++) {
28 printf(" - %s\n",config
->outports
[i
]);
31 for(i
=0; i
<config
->nvoices
; i
++) {
35 qn_voice_t
* v
= config
->voices
+i
;
36 printf(" - name: %s\n",v
->name
);
37 printf(" portname: %s\n", v
->portname
);
38 printf(" channel: %d\n", v
->channel
+1);
41 for(i
=0; i
<config
->npatterns
; i
++) {
43 printf(" patterns:\n");
45 qn_pattern_t
* p
= config
->patterns
+i
;
46 printf(" - bpm: %d\n",p
->beats_per_minute
);
47 printf(" bpm_relationship: %s\n",
48 (p
->bpm_relation
==Absolute
) ? "absolute" : "relative");
49 printf(" swing: %f\n", p
->swing_value
);
50 printf(" ticks_per_beat: %d\n", p
->tbm_ticks_per_beat
);
51 printf(" beats_per_bar: %f\n", p
->tbm_beats_per_bar
);
52 printf(" patternvoices:\n");
54 for(j
=0;j
<p
->npatternvoices
;j
++) {
55 qn_patternvoice_t
* pv
= p
->patternvoices
+ j
;
56 printf(" - voice: %s\n",pv
->voice
->name
);
57 printf(" nbeats: %d\n",pv
->nbeats
);
58 printf(" nevents: %d\n",pv
->nevents
);
61 for(k
=0;k
<pv
->nevents
;k
++) {
62 qn_event_t
* evt
= pv
->events
+k
;
63 printf(" - start: %d\n",evt
->start_tick
);
66 for(l
=0;l
<NBYTES_MIDI
;l
++) {
67 unsigned char c
= evt
->data
[l
];
68 printf(" - byte %d: %d\n",l
,c
);
71 } // loop patternvoices