X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fmidi-walker.hh;h=8ea8b27b6442b73829c9b68f9e4d2b8a862e11f5;hb=f9214bac21e9926dc3248416f58190c98c4167a9;hp=ad2d6db6fd8e3e8a9b667523f96d287e843b616f;hpb=8aad615ea7bb31f49a0c2afc21eea5ff5de20437;p=lilypond.git diff --git a/lily/include/midi-walker.hh b/lily/include/midi-walker.hh index ad2d6db6fd..8ea8b27b64 100644 --- a/lily/include/midi-walker.hh +++ b/lily/include/midi-walker.hh @@ -1,48 +1,53 @@ /* midi-walker.hh -- declare Midi_walker - (c) 1996, 1997--1999 Han-Wen Nienhuys - Jan Nieuwenhuizen - */ + (c) 1996--2007 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 +struct Midi_note_event : PQueue_ent { - bool ignore_b_; - Midi_note_event(); + bool ignore_; + Midi_note_event (); }; -int compare (Midi_note_event const& left, Midi_note_event const& right); +int compare (Midi_note_event const &left, Midi_note_event const &right); /** - walk audio and output midi - */ -class Midi_walker : public PCursor + walk audio and output midi +*/ +class Midi_walker { public: - Midi_walker (Audio_staff* audio_staff_l, Midi_track* midi_track_l); - ~Midi_walker(); - - void process(); - + Midi_walker (Audio_staff *audio_staff, Midi_track *midi_track, + int channel); + ~Midi_walker (); + + void process (); + void operator ++ (int); + bool ok () const; + void finalize (); private: - void do_start_note (Midi_note* note_p); - 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_; + void do_start_note (Midi_note *note); + void do_stop_notes (int); + void output_event (int, Midi_item *l); + Midi_item *get_midi (Audio_item*); + int channel_; + Midi_track *track_; + Audio_staff *staff_; + vsize index_; + vector items_; + PQueue stop_note_queue; + int last_tick_; + + vector midi_events_; }; - #endif // MIDI_WALKER_HH