#include "ardour_window.h"
#include "automation_controller.h"
+#include "gtk_pianokeyboard.h"
namespace ARDOUR {
class PluginInsert;
}
namespace ArdourWidgets {
- class ClickBox;
class FastMeter;
}
class LatencyGUI;
class ArdourWindow;
class PluginEqGui;
+class PluginLoadStatsGui;
class VSTPluginUI;
class PlugUIBase : public virtual sigc::trackable, public PBD::ScopedConnectionList
Gtk::Expander description_expander;
/** an expander containing the plugin analysis graph */
Gtk::Expander plugin_analysis_expander;
+ /** an expander containing the plugin cpu profile */
+ Gtk::Expander cpuload_expander;
/** a button which, when clicked, opens the latency GUI */
ArdourWidgets::ArdourButton latency_button;
/** a button which sets all controls' automation setting to Manual */
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 ();
-
LatencyGUI* latency_gui;
ArdourWindow* latency_dialog;
PluginEqGui* eqgui;
+ PluginLoadStatsGui* stats_gui;
Gtk::Image* focus_out_image;
Gtk::Image* focus_in_image;
bool bypass_button_release(GdkEventButton*);
void toggle_description ();
void toggle_plugin_analysis ();
+ void toggle_cpuload_display ();
void processor_active_changed (boost::weak_ptr<ARDOUR::Processor> p);
void plugin_going_away ();
void automation_state_changed ();
ArdourWidgets::ArdourButton automate_button;
Gtk::Label label;
ArdourWidgets::ArdourDropdown* combo;
- ArdourWidgets::ClickBox* clickbox;
Gtk::FileChooserButton* file_button;
ArdourWidgets::ArdourSpinner* spin_box;
bool update_pending;
bool ignore_change;
+
/* output */
Gtk::EventBox* display;
/* layout */
Gtk::Table* knobtable;
int x0, x1, y0, y1;
+
+ bool short_autostate; // modify with set_short_autostate below
};
+ void set_short_autostate(ControlUI* cui, bool value);
+
std::vector<ControlUI*> input_controls; // workaround for preset load
std::vector<ControlUI*> input_controls_with_automation;
std::vector<ControlUI*> output_controls;
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;
};
class PluginUIWindow : public ArdourWindow