X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fpatch_change_dialog.h;h=d19234d2c47ae1536d183fe87722668cdb274d0d;hb=5e7d9d30e28e8022661497244ccd43a1f5a836c6;hp=02eb311d484f529304d2afd97e25b1fed259a2af;hpb=3d0c3ffb6a9f809649ab1667d81692114a50d04c;p=ardour.git diff --git a/gtk2_ardour/patch_change_dialog.h b/gtk2_ardour/patch_change_dialog.h index 02eb311d48..d19234d2c4 100644 --- a/gtk2_ardour/patch_change_dialog.h +++ b/gtk2_ardour/patch_change_dialog.h @@ -19,6 +19,8 @@ */ #include +#include + #include "evoral/PatchChange.hpp" #include "ardour_dialog.h" #include "audio_clock.h" @@ -26,6 +28,13 @@ namespace ARDOUR { class BeatsFramesConverter; class Session; + class InstrumentInfo; +} + +namespace MIDI { + namespace Name { + class PatchBank; + } } class PatchChangeDialog : public ArdourDialog @@ -34,16 +43,37 @@ public: PatchChangeDialog ( const ARDOUR::BeatsFramesConverter *, ARDOUR::Session *, - Evoral::PatchChange const &, - const Gtk::BuiltinStockID & + Evoral::PatchChange const &, + ARDOUR::InstrumentInfo&, + const Gtk::BuiltinStockID &, + bool allow_delete = false ); - Evoral::PatchChange patch () const; + Evoral::PatchChange patch () const; private: + void fill_bank_combo (); + void set_active_bank_combo (); + void fill_patch_combo (); + void set_active_patch_combo (); + void bank_combo_changed (); + void patch_combo_changed (); + void channel_changed (); + void bank_changed (); + void program_changed (); + const ARDOUR::BeatsFramesConverter* _time_converter; + ARDOUR::InstrumentInfo& _info; AudioClock _time; Gtk::SpinButton _channel; Gtk::SpinButton _program; Gtk::SpinButton _bank; + Gtk::ComboBoxText _bank_combo; + Gtk::ComboBoxText _patch_combo; + + boost::shared_ptr _current_patch_bank; + bool _ignore_signals; + + void instrument_info_changed (); + PBD::ScopedConnection _info_changed_connection; };