+ bool integer_printer (char* buf, Gtk::Adjustment &, ControlUI *);
+ bool midinote_printer(char* buf, Gtk::Adjustment &, ControlUI *);
+
+ typedef std::map<uint32_t, Gtk::FileChooserButton*> FilePathControls;
+ FilePathControls _filepath_controls;
+ void set_path_property (const ARDOUR::ParameterDescriptor& desc,
+ Gtk::FileChooserButton* widget);
+ void path_property_changed (uint32_t key, const ARDOUR::Variant& value);
+
+ 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;