Update ghost note presence when mouse mode is changed. Fixes #3559.
[ardour.git] / gtk2_ardour / note_player.h
1 #ifndef __gtk2_ardour_note_player_h__
2 #define __gtk2_ardour_note_player_h__
3
4 #include <vector>
5 #include <boost/shared_ptr.hpp>
6 #include <sigc++/trackable.h>
7
8 #include "evoral/Note.hpp"
9
10 namespace ARDOUR {
11         class MidiTrack;
12 }
13
14 class NotePlayer : public sigc::trackable {
15   public:
16         typedef Evoral::Note<Evoral::MusicalTime> NoteType;
17
18         NotePlayer (boost::shared_ptr<ARDOUR::MidiTrack>);
19         ~NotePlayer () {}
20
21         void add (boost::shared_ptr<NoteType>);
22         void play ();
23         void off ();
24
25         static bool _off (NotePlayer*);
26
27   private:
28         typedef std::vector<boost::shared_ptr<NoteType> > NoteList;
29
30         boost::shared_ptr<ARDOUR::MidiTrack> track;
31         NoteList notes;
32 };
33
34 #endif /* __gtk2_ardour_note_player_h__ */