Prepare central engine check and user notification
[ardour.git] / gtk2_ardour / piano_roll_header.h
index 7369303e5d4fea2f927ce108b94eba5e0d8eb1a3..2dac6f42174d9caa16ebdc9a1aafc9a8602259b4 100644 (file)
@@ -1,5 +1,6 @@
 /*
     Copyright (C) 2008 Paul Davis
+    Author: Audan Holland ??
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -29,6 +30,7 @@ namespace ARDOUR {
 
 class MidiTimeAxisView;
 class MidiStreamView;
+class PublicEditor;
 
 class PianoRollHeader : public Gtk::DrawingArea {
 public:
@@ -46,6 +48,7 @@ public:
        void on_size_allocate(Gtk::Allocation& a);
 
        void note_range_changed();
+       void set_note_highlight (uint8_t note);
 
        struct Color {
                Color();
@@ -57,6 +60,11 @@ public:
                double b;
        };
 
+       sigc::signal<void,uint8_t> SetNoteSelection;
+       sigc::signal<void,uint8_t> AddNoteSelection;
+       sigc::signal<void,uint8_t> ToggleNoteSelection;
+       sigc::signal<void,uint8_t> ExtendNoteSelection;
+
 private:
        static Color white;
        static Color white_highlight;
@@ -87,6 +95,8 @@ private:
        void send_note_on(uint8_t note);
        void send_note_off(uint8_t note);
 
+       void reset_clicked_note(uint8_t, bool invalidate = true);
+
        MidiStreamView& _view;
 
        uint8_t _event[3];
@@ -100,6 +110,8 @@ private:
 
        double _note_height;
        double _black_note_width;
+
+       PublicEditor& editor() const;
 };
 
 #endif /* __ardour_piano_roll_header_h__ */