extract track and instrument names from SMF while loading
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 14 Dec 2016 11:42:10 +0000 (11:42 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 14 Dec 2016 11:46:26 +0000 (11:46 +0000)
libs/evoral/src/libsmf/smf_load.c

index c043c26c97b81c1502102dacec1e13d9cb1a92a0..6bcf14980e810b6025952a715cc93d85ec05cdbb 100644 (file)
@@ -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;