#ifndef __gtk2_ardour_ghost_event_h__ #define __gtk2_ardour_ghost_event_h__ #include #include #include #include "evoral/Note.h" #include "temporal/beats.h" namespace ArdourCanvas { class Container; class Item; } class NoteBase; class GhostEvent : public sigc::trackable { public: GhostEvent (::NoteBase *, ArdourCanvas::Container *); GhostEvent (::NoteBase *, ArdourCanvas::Container *, ArdourCanvas::Item* i); virtual ~GhostEvent (); NoteBase* event; ArdourCanvas::Item* item; bool is_hit; int velocity_while_editing; /* must match typedef in NoteBase */ typedef Evoral::Note NoteType; typedef std::unordered_map, GhostEvent* > EventList; static GhostEvent* find (std::shared_ptr parent, EventList& events, EventList::iterator& opti); }; #endif /* __gtk2_ardour_ghost_event_h__ */