when calculating average slave/master delta, use absolute value.
[ardour.git] / gtk2_ardour / plugin_ui.h
index ed1c72260594306004f47f5b9d76fc137d9e0854..b17ecc92966a8b7228743b6aff5d47d52cfd310d 100644 (file)
@@ -55,6 +55,7 @@
 
 #include "ardour_window.h"
 #include "automation_controller.h"
+#include "gtk_pianokeyboard.h"
 
 namespace ARDOUR {
        class PluginInsert;
@@ -147,6 +148,8 @@ protected:
        ArdourWidgets::ArdourButton automation_write_all_button;
        /** a button which sets all controls' automation setting to Touch */
        ArdourWidgets::ArdourButton automation_touch_all_button;
+       /** a button which sets all controls' automation setting to Latch */
+       ArdourWidgets::ArdourButton automation_latch_all_button;
 
        void set_latency_label ();
 
@@ -303,6 +306,27 @@ private:
 
        void scroller_size_request (Gtk::Requisition*);
        Gtk::ScrolledWindow scroller;
+
+       Gtk::Expander   _plugin_pianokeyboard_expander;
+       PianoKeyboard*  _piano;
+       Gtk::Widget*    _pianomm;
+       Gtk::VBox       _pianobox;
+       Gtk::SpinButton _piano_velocity;
+       Gtk::SpinButton _piano_channel;
+
+       static void _note_on_event_handler (GtkWidget*, int, gpointer);
+       static void _note_off_event_handler (GtkWidget*, int, gpointer);
+       void note_on_event_handler (int);
+       void note_off_event_handler (int);
+
+       void toggle_pianokeyboard ();
+       void build_midi_table ();
+       void midi_refill_patches ();
+       void midi_bank_patch_change (uint8_t chn);
+       void midi_bank_patch_select (uint8_t chn, uint32_t bankpgm);
+       std::vector<ArdourWidgets::ArdourDropdown*> midi_pgmsel;
+       PBD::ScopedConnectionList midi_connections;
+       std::map<uint32_t, std::string> pgm_names;
 };
 
 class PluginUIWindow : public ArdourWindow