From: fred Date: Sun, 24 Mar 2002 19:55:14 +0000 (+0000) Subject: lilypond-0.1.7 X-Git-Tag: release/1.5.59~4031 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=eaff5383ddb2cd82238af8ca7ae6d701f431395b;p=lilypond.git lilypond-0.1.7 --- diff --git a/lily/include/midi-walker.hh b/lily/include/midi-walker.hh new file mode 100644 index 0000000000..a9ce619a09 --- /dev/null +++ b/lily/include/midi-walker.hh @@ -0,0 +1,48 @@ +/* + midi-walker.hh -- declare Midi_walker + + (c) 1996, 1997 Han-Wen Nienhuys + Jan Nieuwenhuizen + */ + +#ifndef MIDI_WALKER_HH +#define MIDI_WALKER_HH + +#include "proto.hh" +#include "plist.hh" +#include "pcursor.hh" +#include "pqueue.hh" +#include "lily-proto.hh" +#include "moment.hh" + +struct Midi_note_event : PQueue_ent +{ + bool ignore_b_; + Midi_note_event(); +}; + +int compare(Midi_note_event const& left, Midi_note_event const& right ); + +/** + walk audio and output midi + */ +class Midi_walker : public PCursor +{ +public: + Midi_walker( Audio_staff* audio_staff_l, Midi_track* midi_track_l ); + ~Midi_walker(); + + void process(); + +private: + void do_start_note( Midi_note* note_l ); + void do_stop_notes( Moment now_mom ); + void output_event( Moment now_mom, Midi_item* l ); + + Midi_track* track_l_; + PQueue stop_note_queue; + Moment last_mom_; +}; + + +#endif // MIDI_WALKER_HH