2 This file is part of LilyPond, the GNU music typesetter.
4 Copyright (C) 1996--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
5 Jan Nieuwenhuizen <janneke@gnu.org>
7 LilyPond is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
12 LilyPond is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
21 #ifndef MIDI_WALKER_HH
22 #define MIDI_WALKER_HH
25 #include "lily-proto.hh"
28 struct Midi_note_event : PQueue_ent<int, Midi_note *>
34 int compare (Midi_note_event const &left, Midi_note_event const &right);
37 walk audio and output midi
42 Midi_walker (Audio_staff *audio_staff, Midi_track *midi_track, int start_tick);
46 void operator ++(int);
51 void do_start_note (Midi_note *note);
52 void do_stop_notes (int);
53 void output_event (int, Midi_item *l);
54 Midi_item *get_midi (Audio_item *);
59 vector<Audio_item *> items_;
60 PQueue<Midi_note_event> stop_note_queue;
63 vector<Midi_item *> midi_events_;
66 #endif // MIDI_WALKER_HH