X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fpiano_roll_header.h;h=2dac6f42174d9caa16ebdc9a1aafc9a8602259b4;hb=69b9ad6bccf95dbff9bf32f0f362c75d90918275;hp=8333284ad99b0c64df4cc0df9c747e667cf38d77;hpb=1b657585572298d1a69a7b43e611f59b7e185df3;p=ardour.git diff --git a/gtk2_ardour/piano_roll_header.h b/gtk2_ardour/piano_roll_header.h index 8333284ad9..2dac6f4217 100644 --- a/gtk2_ardour/piano_roll_header.h +++ b/gtk2_ardour/piano_roll_header.h @@ -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 +#include "ardour/types.h" #include @@ -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 SetNoteSelection; + sigc::signal AddNoteSelection; + sigc::signal ToggleNoteSelection; + sigc::signal ExtendNoteSelection; + private: static Color white; static Color white_highlight; @@ -87,9 +95,11 @@ 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; - ARDOUR::Byte _event[3]; + uint8_t _event[3]; Cairo::RefPtr cc; bool _active_notes[128]; @@ -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__ */