unused but slightly tricky code to add track name/instrument to an SMF file when...
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 15 Dec 2016 17:23:44 +0000 (17:23 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Fri, 16 Dec 2016 09:36:52 +0000 (09:36 +0000)
libs/evoral/src/libsmf/smf_save.c

index 6463955dba593178c51c9312b52406687d6dd5d1..555881ab08368702f8d7b15520ea79ae32819d9b 100644 (file)
@@ -382,6 +382,32 @@ write_track(smf_track_t *track)
        if (ret)
                return (ret);
 
+       if (track->name) {
+               printf ("save track name [%s]\n", track->name);
+               smf_event_t *ev = smf_event_new_textual (0x03, track->name);
+               ev->delta_time_pulses = 0; /* time zero */
+               ev->track = track;
+               ret = write_event (ev);
+               ev->track = 0;
+               smf_event_delete (ev);
+               if (ret) {
+                       return ret;
+               }
+       }
+
+       if (track->instrument) {
+               printf ("save track instrument [%s]\n", track->instrument);
+               smf_event_t *ev = smf_event_new_textual (0x04, track->instrument);
+               ev->delta_time_pulses = 0; /* time zero */
+               ev->track = track;
+               ret = write_event (ev);
+               ev->track = 0;
+               smf_event_delete (ev);
+               if (ret) {
+                       return ret;
+               }
+       }
+
        while ((event = smf_track_get_next_event(track)) != NULL) {
                ret = write_event(event);
                if (ret)