commit de3ce04943ef70d9fd7993a0c0e02b79795f916e
parent 60f3b8e6b0dfcd531fa38136ee201bdbb6a0d1bc
Author: Alexandre Bique <bique.alexandre@gmail.com>
Date: Thu, 29 Sep 2016 18:19:34 +0200
More info for midi parser
Diffstat:
2 files changed, 45 insertions(+), 1 deletion(-)
diff --git a/include/clap/helpers/midi-parser.h b/include/clap/helpers/midi-parser.h
@@ -87,6 +87,50 @@ clap_midi_status_name(int status)
}
}
+enum clap_midi_meta
+{
+ CLAP_MIDI_META_SEQ_NUM = 0x00,
+ CLAP_MIDI_META_TEXT = 0x01,
+ CLAP_MIDI_META_COPYRIGHT = 0x02,
+ CLAP_MIDI_META_TRACK_NAME = 0x03,
+ CLAP_MIDI_META_INSTRUMENT_NAME = 0x04,
+ CLAP_MIDI_META_LYRICS = 0x05,
+ CLAP_MIDI_META_MAKER = 0x06,
+ CLAP_MIDI_META_CUE_POINT = 0x07,
+ CLAP_MIDI_META_CHANNEL_PREFIX = 0x20,
+ CLAP_MIDI_META_END_OF_TRACK = 0x2F,
+ CLAP_MIDI_META_SET_TEMPO = 0x51,
+ CLAP_MIDI_META_SMPTE_OFFSET = 0x54,
+ CLAP_MIDI_META_TIME_SIGNATURE = 0x58,
+ CLAP_MIDI_META_KEY_SIGNATURE = 0x59,
+ CLAP_MIDI_META_SEQ_SPECIFIC = 0x7F,
+};
+
+static const char *
+clap_midi_meta_name(int type)
+{
+ switch (type) {
+ case CLAP_MIDI_META_SEQ_NUM: return "Sequence Number";
+ case CLAP_MIDI_META_TEXT: return "Text";
+ case CLAP_MIDI_META_COPYRIGHT: return "Copyright";
+ case CLAP_MIDI_META_TRACK_NAME: return "Track Name";
+ case CLAP_MIDI_META_INSTRUMENT_NAME: return "Instrument Name";
+ case CLAP_MIDI_META_LYRICS: return "Lyrics";
+ case CLAP_MIDI_META_MAKER: return "Maker";
+ case CLAP_MIDI_META_CUE_POINT: return "Cue Point";
+ case CLAP_MIDI_META_CHANNEL_PREFIX: return "Channel Prefix";
+ case CLAP_MIDI_META_END_OF_TRACK: return "End of Track";
+ case CLAP_MIDI_META_SET_TEMPO: return "Set Tempo";
+ case CLAP_MIDI_META_SMPTE_OFFSET: return "SMPTE Offset";
+ case CLAP_MIDI_META_TIME_SIGNATURE: return "Time Signature";
+ case CLAP_MIDI_META_KEY_SIGNATURE: return "Key Signature";
+ case CLAP_MIDI_META_SEQ_SPECIFIC: return "Sequencer Specific";
+
+ default: return "(unknown)";
+ }
+}
+
+
struct clap_midi_channel_event
{
unsigned status : 4;
diff --git a/tests/midi-parser/midi-parser.c b/tests/midi-parser/midi-parser.c
@@ -56,7 +56,7 @@ void parse_and_dump(struct clap_midi_parser *parser)
case CLAP_MIDI_PARSER_TRACK_META:
printf("track-meta\n");
printf(" time: %d\n", parser->vtime);
- printf(" type: %d\n", parser->meta.type);
+ printf(" type: %d [%s]\n", parser->meta.type, clap_midi_meta_name(parser->meta.type));
printf(" length: %d\n", parser->meta.length);
break;