summaryrefslogtreecommitdiff
path: root/libs/evoral
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-12-14 11:42:10 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2016-12-14 11:46:26 +0000
commit7e0dbd06dbecd400a9ea3b05566b757982596e69 (patch)
treeaae32f2098156cbcffbda59451ae9b501ae2bf4e /libs/evoral
parent24160a3b856b0383823cc5528668d25fc357c623 (diff)
extract track and instrument names from SMF while loading
Diffstat (limited to 'libs/evoral')
-rw-r--r--libs/evoral/src/libsmf/smf_load.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/libs/evoral/src/libsmf/smf_load.c b/libs/evoral/src/libsmf/smf_load.c
index c043c26c97..6bcf14980e 100644
--- a/libs/evoral/src/libsmf/smf_load.c
+++ b/libs/evoral/src/libsmf/smf_load.c
@@ -812,8 +812,22 @@ parse_mtrk_chunk(smf_track_t *track)
break;
}
- if (event_is_end_of_track(event))
+ if (event_is_end_of_track(event)) {
break;
+ }
+
+ if (smf_event_is_metadata (event)) {
+ switch (event->midi_buffer[1]) {
+ case 0x03:
+ track->name = smf_event_extract_text (event);
+ break;
+ case 0x04:
+ track->instrument = smf_event_extract_text (event);
+ break;
+ default:
+ break;
+ }
+ }
}
track->file_buffer = NULL;