do not reset session for MonitorSection just because monitor out was removed
[ardour.git] / gtk2_ardour / piano_roll_header.h
index 986a7fafc9a31787ede126ed6e51fda322b36960..2dac6f42174d9caa16ebdc9a1aafc9a8602259b4 100644 (file)
@@ -1,5 +1,6 @@
 /*
-    Copyright (C) 2008 Paul Davis 
+    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
@@ -19,7 +20,7 @@
 #ifndef __ardour_piano_roll_header_h__
 #define __ardour_piano_roll_header_h__
 
-#include <ardour/types.h>
+#include "ardour/types.h"
 
 #include <gtkmm/drawingarea.h>
 
@@ -29,6 +30,7 @@ namespace ARDOUR {
 
 class MidiTimeAxisView;
 class MidiStreamView;
+class PublicEditor;
 
 class PianoRollHeader : public Gtk::DrawingArea {
 public:
@@ -46,17 +48,23 @@ public:
        void on_size_allocate(Gtk::Allocation& a);
 
        void note_range_changed();
+       void set_note_highlight (uint8_t note);
 
        struct Color {
                Color();
                Color(double _r, double _g, double _b);
                inline void set(const Color& c);
-               
+
                double r;
                double g;
                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];
@@ -97,9 +107,11 @@ private:
        uint8_t _clicked_note;
        double _grab_y;
        bool _dragging;
-       
+
        double _note_height;
        double _black_note_width;
+
+       PublicEditor& editor() const;
 };
 
 #endif /* __ardour_piano_roll_header_h__ */