diff options
| author | Stepan Moskovchenko <stevenm@rockbox.org> | 2008-01-02 07:09:17 +0000 |
|---|---|---|
| committer | Stepan Moskovchenko <stevenm@rockbox.org> | 2008-01-02 07:09:17 +0000 |
| commit | 111049105bf20b55f8e114487f32daeda45c6d5c (patch) | |
| tree | ecf8e2e2f045428c2e6dfbc0db0f7579de980f83 | |
| parent | 0f8c77b306fbc5d27803a3062cdd1a65a573c325 (diff) | |
| download | rockbox-111049105bf20b55f8e114487f32daeda45c6d5c.zip rockbox-111049105bf20b55f8e114487f32daeda45c6d5c.tar.gz rockbox-111049105bf20b55f8e114487f32daeda45c6d5c.tar.bz2 rockbox-111049105bf20b55f8e114487f32daeda45c6d5c.tar.xz | |
MIDI player: print out track names, copyright info, song names, etc during load time. This includes
lyrics... maybe we should print those while the song is playing?
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15987 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/plugins/midi/midifile.c | 67 |
1 files changed, 65 insertions, 2 deletions
diff --git a/apps/plugins/midi/midifile.c b/apps/plugins/midi/midifile.c index ac3206c..5f98e89 100644 --- a/apps/plugins/midi/midifile.c +++ b/apps/plugins/midi/midifile.c @@ -149,8 +149,71 @@ int readEvent(int file, void * dest) /* Allocate and read in the data block */ if(dest != NULL) { - ev->evData = readData(file, ev->len); -/* printf("\nDATA: <%s>", ev->evData); */ + /* Null-terminate for text events */ + ev->evData = malloc(ev->len+1); /* Extra byte for the null termination */ + + rb->read(file, ev->evData, ev->len); + ev->evData[ev->len] = 0; + + switch(ev->d1) + { + case 0x01: /* Generic text */ + { + printf("Text: %s", ev->evData); + break; + } + + case 0x02: /* A copyright string within the file */ + { + printf("Copyright: %s", ev->evData); + break; + } + + case 0x03: /* Sequence of track name */ + { + printf("Name: %s", ev->evData); + break; + } + + case 0x04: /* Instrument (synth) name */ + { + printf("Instrument: %s", ev->evData); + break; + } + + case 0x05: /* Lyrics. These appear on the tracks at the right times */ + { /* Usually only a small 'piece' of the lyrics. */ + /* Maybe the sequencer should print these at play time? */ + printf("Lyric: %s", ev->evData); + break; + } + + case 0x06: /* Text marker */ + { + printf("Marker: %s", ev->evData); + break; + } + + + case 0x07: /* Cue point */ + { + printf("Cue point: %s", ev->evData); + break; + } + + case 0x08: /* Program name */ + { + printf("Patch: %s", ev->evData); + break; + } + + + case 0x09: /* Device name. Very much irrelevant here, though. */ + { + printf("Port: %s", ev->evData); + break; + } + } } else { |