X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmidi-chunk.cc;fp=lily%2Fmidi-chunk.cc;h=0aa11eb5497bc388f83b7e323217d46ab9705cbb;hb=941dff9d2a67080e0dd8474f1e70f0c72ace6424;hp=d6ad38e31555997a89e9f41b5855bdbc50cece37;hpb=5a22d6233a39d3164e1ca043244794c268be4ad0;p=lilypond.git diff --git a/lily/midi-chunk.cc b/lily/midi-chunk.cc index d6ad38e315..0aa11eb549 100644 --- a/lily/midi-chunk.cc +++ b/lily/midi-chunk.cc @@ -1,10 +1,21 @@ -/* - midi-chunk.cc -- implement Midi_chunk - - source file of the GNU LilyPond music typesetter - - (c) 2007--2009 Han-Wen Nienhuys +/* + This file is part of LilyPond, the GNU music typesetter. + + Copyright (C) 2007--2011 Han-Wen Nienhuys + + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "midi-chunk.hh" @@ -13,7 +24,8 @@ #include "std-string.hh" #include "string-convert.hh" -Midi_track::Midi_track () +Midi_track::Midi_track (int number, bool port) + : number_ (number) { // 4D 54 72 6B MTrk // 00 00 00 3B chunk length (59) @@ -29,8 +41,6 @@ Midi_track::Midi_track () // mi = 0: major key // mi = 1: minor key - number_ = 0; - char const *data_str0 = "" // "00" "ff58" "0404" "0218" "08" // "00" "ff51" "0307" "a120" @@ -45,6 +55,13 @@ Midi_track::Midi_track () // only for format 0 (currently using format 1)? data_string += String_convert::hex2bin (data_str0); + if (port) + { + string port = "00" "ff" "21" "01" + + String_convert::int2hex (number_, 2, '0'); + data_string += String_convert::hex2bin (port); + } + char const *footer_str0 = "00" "ff2f" "00"; string footer_string = String_convert::hex2bin (footer_str0); @@ -93,7 +110,6 @@ Midi_event::to_string () const { string delta_string = int2midi_varint_string (delta_ticks_); string midi_string = midi_->to_string (); - assert (midi_string.length ()); return delta_string + midi_string; } /****************************************************************