diff options
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/SConscript | 1 | ||||
-rwxr-xr-x | gtk2_ardour/ardev_common.sh | 2 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 88 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.h | 11 | ||||
-rw-r--r-- | gtk2_ardour/audio_time_axis.cc | 14 | ||||
-rw-r--r-- | gtk2_ardour/editor.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/gain_meter.cc | 7 | ||||
-rw-r--r-- | gtk2_ardour/gain_meter.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/keyboard.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/mixer_strip.cc | 29 | ||||
-rw-r--r-- | gtk2_ardour/mixer_strip.h | 5 | ||||
-rw-r--r-- | gtk2_ardour/mixer_ui.h | 3 | ||||
-rw-r--r-- | gtk2_ardour/panner_ui.cc | 6 | ||||
-rw-r--r-- | gtk2_ardour/panner_ui.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/playlist_selector.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/playlist_selector.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/plugin_ui.cc | 8 | ||||
-rw-r--r-- | gtk2_ardour/plugin_ui.h | 4 | ||||
-rw-r--r-- | gtk2_ardour/redirect_box.h | 3 | ||||
-rw-r--r-- | gtk2_ardour/route_params_ui.h | 3 | ||||
-rw-r--r-- | gtk2_ardour/route_ui.cc | 28 | ||||
-rw-r--r-- | gtk2_ardour/route_ui.h | 12 |
22 files changed, 81 insertions, 155 deletions
diff --git a/gtk2_ardour/SConscript b/gtk2_ardour/SConscript index 68e07ebd22..8d66b9298c 100644 --- a/gtk2_ardour/SConscript +++ b/gtk2_ardour/SConscript @@ -42,6 +42,7 @@ gtkardour.Merge ([ libraries['gdkmm2'], libraries['sigc2'], libraries['gtk2'], + libraries['uuid'], libraries['xml'], libraries['xslt'], libraries['soundtouch'], diff --git a/gtk2_ardour/ardev_common.sh b/gtk2_ardour/ardev_common.sh index 5c68933a96..faf5f69531 100755 --- a/gtk2_ardour/ardev_common.sh +++ b/gtk2_ardour/ardev_common.sh @@ -2,7 +2,7 @@ export ARDOUR_PATH=./glade:./pixmaps:. -export LD_LIBRARY_PATH=../libs/surfaces/control_protocol:../libs/ardour:../libs/midi++2:../libs/pbd3:../libs/soundtouch:../libs/gtkmm2ext:../libs/sigc++2:../libs/glibmm2:../libs/gtkmm2/atk:../libs/gtkmm2/pango:../libs/gtkmm2/gdk:../libs/gtkmm2/gtk:../libs/libgnomecanvasmm:../libs/libsndfile:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=../libs/surfaces/control_protocol:../libs/ardour:../libs/midi++2:../libs/pbd:../libs/soundtouch:../libs/gtkmm2ext:../libs/sigc++2:../libs/glibmm2:../libs/gtkmm2/atk:../libs/gtkmm2/pango:../libs/gtkmm2/gdk:../libs/gtkmm2/gtk:../libs/libgnomecanvasmm:../libs/libsndfile:$LD_LIBRARY_PATH # DYLD_LIBRARY_PATH is for darwin. export DYLD_LIBRARY_PATH=$LD_LIBRARY_PATH diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index f452ec9c7e..ce4a12f330 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -374,9 +374,11 @@ ARDOUR_UI::finish() if (session && session->dirty()) { switch (ask_about_saving_session(_("quit"))) { case -1: + cerr << "dialog return -1\n"; return; break; case 1: + cerr << "dialog return +1\n"; /* use the default name */ if (save_state_canfail ("")) { /* failed - don't quit */ @@ -390,7 +392,10 @@ If you still wish to quit, please use the\n\n\ } break; case 0: + cerr << "dialog return 0\n"; break; + default: + cerr << "dialog return other\n"; } } Config->save_state(); @@ -1159,31 +1164,21 @@ ARDOUR_UI::transport_forward (int option) } void -ARDOUR_UI::toggle_monitor_enable (guint32 dstream) +ARDOUR_UI::toggle_record_enable (uint32_t dstream) { if (session == 0) { return; } - AudioDiskstream *ds; - - if ((ds = session->diskstream_by_id (dstream)) != 0) { - Port *port = ds->io()->input (0); - port->request_monitor_input (!port->monitoring_input()); - } -} - -void -ARDOUR_UI::toggle_record_enable (guint32 dstream) -{ - if (session == 0) { - return; - } + Route* r; + + if ((r = session->route_by_remote_id (dstream)) != 0) { - AudioDiskstream *ds; + AudioTrack* at; - if ((ds = session->diskstream_by_id (dstream)) != 0) { - ds->set_record_enabled (!ds->record_enabled(), this); + if ((at = dynamic_cast<AudioTrack*>(r)) != 0) { + at->disk_stream().set_record_enabled (!at->disk_stream().record_enabled(), this); + } } } @@ -1385,63 +1380,6 @@ ARDOUR_UI::stop_blinking () } } - -void -ARDOUR_UI::add_diskstream_to_menu (AudioDiskstream& dstream) -{ - using namespace Gtk; - using namespace Menu_Helpers; - - if (dstream.hidden()) { - return; - } - - MenuList& items = diskstream_menu->items(); - items.push_back (MenuElem (dstream.name(), bind (mem_fun(*this, &ARDOUR_UI::diskstream_selected), (gint32) dstream.id()))); -} - -void -ARDOUR_UI::diskstream_selected (gint32 id) -{ - selected_dstream = id; - Main::quit (); -} - -gint32 -ARDOUR_UI::select_diskstream (GdkEventButton *ev) -{ - using namespace Gtk; - using namespace Menu_Helpers; - - if (session == 0) { - return -1; - } - - diskstream_menu = new Menu(); - diskstream_menu->set_name ("ArdourContextMenu"); - using namespace Gtk; - using namespace Menu_Helpers; - - MenuList& items = diskstream_menu->items(); - items.push_back (MenuElem (_("No Stream"), (bind (mem_fun(*this, &ARDOUR_UI::diskstream_selected), -1)))); - - session->foreach_audio_diskstream (this, &ARDOUR_UI::add_diskstream_to_menu); - - if (ev) { - diskstream_menu->popup (ev->button, ev->time); - } else { - diskstream_menu->popup (0, 0); - } - - selected_dstream = -1; - - Main::run (); - - delete diskstream_menu; - - return selected_dstream; -} - void ARDOUR_UI::name_io_setup (AudioEngine& engine, string& buf, diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 678342f32b..e9fae63677 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -154,8 +154,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI void toggle_tempo_window (); void toggle_editing_space(); - gint32 select_diskstream (GdkEventButton *ev); - Gtk::Tooltips& tooltips() { return _tooltips; } static sigc::signal<void,bool> Blink; @@ -536,14 +534,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI void save_template (); - void session_add_audio_route (bool disk, int32_t input_channels, int32_t output_channels, ARDOUR::TrackMode mode); - void add_diskstream_to_menu (ARDOUR::AudioDiskstream&); - void diskstream_selected (gint32); - Gtk::Menu *diskstream_menu; - gint32 selected_dstream; - void set_transport_sensitivity (bool); void remove_last_capture (); @@ -626,8 +618,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI void test_binding_action (const char *); void start_keyboard_prefix(); - void toggle_record_enable (guint32); - void toggle_monitor_enable (guint32); + void toggle_record_enable (uint32_t); uint32_t rec_enabled_diskstreams; void count_recenabled_diskstreams (ARDOUR::AudioDiskstream&); diff --git a/gtk2_ardour/audio_time_axis.cc b/gtk2_ardour/audio_time_axis.cc index 01205abfc8..42bf3f5647 100644 --- a/gtk2_ardour/audio_time_axis.cc +++ b/gtk2_ardour/audio_time_axis.cc @@ -31,10 +31,10 @@ #include <pbd/stl_delete.h> #include <pbd/whitespace.h> -#include <gtkmm2ext/bindable_button.h> #include <gtkmm2ext/gtk_ui.h> #include <gtkmm2ext/selector.h> #include <gtkmm2ext/stop_signal.h> +#include <gtkmm2ext/bindable_button.h> #include <gtkmm2ext/utils.h> #include <ardour/audioplaylist.h> @@ -120,11 +120,9 @@ AudioTimeAxisView::AudioTimeAxisView (PublicEditor& ed, Session& sess, Route& rt ignore_toggle = false; - rec_enable_button->set_active (false); mute_button->set_active (false); solo_button->set_active (false); - rec_enable_button->set_name ("TrackRecordEnableButton"); mute_button->set_name ("TrackMuteButton"); solo_button->set_name ("SoloButton"); edit_group_button.set_name ("TrackGroupButton"); @@ -138,7 +136,6 @@ AudioTimeAxisView::AudioTimeAxisView (PublicEditor& ed, Session& sess, Route& rt solo_button->signal_button_press_event().connect (mem_fun (*this, &AudioTimeAxisView::select_me), false); mute_button->signal_button_press_event().connect (mem_fun (*this, &AudioTimeAxisView::select_me), false); - rec_enable_button->signal_button_press_event().connect (mem_fun (*this, &AudioTimeAxisView::select_me), false); playlist_button.signal_button_press_event().connect (mem_fun (*this, &AudioTimeAxisView::select_me), false); automation_button.signal_button_press_event().connect (mem_fun (*this, &AudioTimeAxisView::select_me), false); size_button.signal_button_press_event().connect (mem_fun (*this, &AudioTimeAxisView::select_me), false); @@ -149,7 +146,6 @@ AudioTimeAxisView::AudioTimeAxisView (PublicEditor& ed, Session& sess, Route& rt solo_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::solo_release), false); mute_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::mute_press), false); mute_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::mute_release), false); - rec_enable_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::rec_enable_press)); edit_group_button.signal_button_release_event().connect (mem_fun(*this, &AudioTimeAxisView::edit_click), false); playlist_button.signal_clicked().connect (mem_fun(*this, &AudioTimeAxisView::playlist_click)); automation_button.signal_clicked().connect (mem_fun(*this, &AudioTimeAxisView::automation_click)); @@ -158,14 +154,19 @@ AudioTimeAxisView::AudioTimeAxisView (PublicEditor& ed, Session& sess, Route& rt hide_button.signal_clicked().connect (mem_fun(*this, &AudioTimeAxisView::hide_click)); if (is_audio_track()) { + rec_enable_button->set_active (false); + rec_enable_button->set_name ("TrackRecordEnableButton"); + rec_enable_button->signal_button_press_event().connect (mem_fun (*this, &AudioTimeAxisView::select_me), false); + rec_enable_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::rec_enable_press)); controls_table.attach (*rec_enable_button, 5, 6, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND, 0, 0); + ARDOUR_UI::instance()->tooltips().set_tip(*rec_enable_button, _("Record")); } + controls_table.attach (*mute_button, 6, 7, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND, 0, 0); controls_table.attach (*solo_button, 7, 8, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::FILL|Gtk::EXPAND, 0, 0); controls_table.attach (edit_group_button, 6, 7, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND, 0, 0); - ARDOUR_UI::instance()->tooltips().set_tip(*rec_enable_button, _("Record")); ARDOUR_UI::instance()->tooltips().set_tip(*solo_button,_("Solo")); ARDOUR_UI::instance()->tooltips().set_tip(*mute_button,_("Mute")); ARDOUR_UI::instance()->tooltips().set_tip(edit_group_button,_("Edit Group")); @@ -1876,7 +1877,6 @@ AudioTimeAxisView::map_frozen () ENSURE_GUI_THREAD (mem_fun(*this, &AudioTimeAxisView::map_frozen)); - switch (audio_track()->freeze_state()) { case AudioTrack::Frozen: playlist_button.set_sensitive (false); diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index be2f3ba44f..9e2fda142e 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -40,7 +40,7 @@ #include <gtkmm2ext/click_box.h> #include <gtkmm2ext/dndtreeview.h> -#include <ardour/stateful.h> +#include <pbd/stateful.h> #include <ardour/session.h> #include <ardour/tempo.h> #include <ardour/location.h> diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc index b7746c4b19..7fa2c33335 100644 --- a/gtk2_ardour/gain_meter.cc +++ b/gtk2_ardour/gain_meter.cc @@ -99,18 +99,13 @@ GainMeter::GainMeter (IO& io, Session& s) gain_slider = manage (new VSliderController (slider, rail, &gain_adjustment, - & _io.midi_gain_control(), + _io.gain_control(), false)); gain_slider->signal_button_press_event().connect (mem_fun(*this, &GainMeter::start_gain_touch)); gain_slider->signal_button_release_event().connect (mem_fun(*this, &GainMeter::end_gain_touch)); gain_slider->set_name ("MixerGainMeter"); - if (_session.midi_port()) { - _io.set_midi_to_gain_function (slider_position_to_gain); - _io.set_gain_to_midi_function (gain_to_slider_position); - } - gain_display.set_print_func (_gain_printer, this); gain_display_box.set_spacing (2); diff --git a/gtk2_ardour/gain_meter.h b/gtk2_ardour/gain_meter.h index ddf93b579f..0ed09ee383 100644 --- a/gtk2_ardour/gain_meter.h +++ b/gtk2_ardour/gain_meter.h @@ -34,8 +34,8 @@ #include <ardour/types.h> -#include <gtkmm2ext/slider_controller.h> #include <gtkmm2ext/click_box.h> +#include <gtkmm2ext/slider_controller.h> #include "enums.h" diff --git a/gtk2_ardour/keyboard.h b/gtk2_ardour/keyboard.h index 06ed4c800d..c13b06afe5 100644 --- a/gtk2_ardour/keyboard.h +++ b/gtk2_ardour/keyboard.h @@ -28,7 +28,7 @@ #include <gtk/gtk.h> #include <ardour/types.h> -#include <ardour/stateful.h> +#include <pbd/stateful.h> #include "selection.h" diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 47d884be5e..9913e483fa 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -27,10 +27,10 @@ #include <gtkmm2ext/gtk_ui.h> #include <gtkmm2ext/utils.h> #include <gtkmm2ext/choice.h> -#include <gtkmm2ext/slider_controller.h> #include <gtkmm2ext/stop_signal.h> -#include <gtkmm2ext/bindable_button.h> #include <gtkmm2ext/doi.h> +#include <gtkmm2ext/slider_controller.h> +#include <gtkmm2ext/bindable_button.h> #include <ardour/ardour.h> #include <ardour/session.h> @@ -52,7 +52,6 @@ #include "keyboard.h" #include "plugin_selector.h" #include "public_editor.h" - #include "plugin_ui.h" #include "send_ui.h" #include "io_selector.h" @@ -159,9 +158,6 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session& sess, Route& rt, bool in_mixer) /* XXX what is this meant to do? */ //meter_point_button.signal_button_release_event().connect (mem_fun (gpm, &GainMeter::meter_release), false); - rec_enable_button->set_name ("MixerRecordEnableButton"); - rec_enable_button->unset_flags (Gtk::CAN_FOCUS); - solo_button->set_name ("MixerSoloButton"); mute_button->set_name ("MixerMuteButton"); @@ -191,6 +187,10 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session& sess, Route& rt, bool in_mixer) if (is_audio_track()) { + rec_enable_button->set_name ("MixerRecordEnableButton"); + rec_enable_button->unset_flags (Gtk::CAN_FOCUS); + rec_enable_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::rec_enable_press)); + AudioTrack* at = dynamic_cast<AudioTrack*>(&_route); at->FreezeChange.connect (mem_fun(*this, &MixerStrip::map_frozen)); @@ -301,7 +301,6 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session& sess, Route& rt, bool in_mixer) input_button.signal_button_press_event().connect (mem_fun(*this, &MixerStrip::input_press), false); output_button.signal_button_press_event().connect (mem_fun(*this, &MixerStrip::output_press), false); - rec_enable_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::rec_enable_press)); solo_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::solo_press), false); solo_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::solo_release), false); mute_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::mute_press), false); @@ -414,7 +413,9 @@ MixerStrip::set_width (Width w) set_size_request (-1, -1); xml_node->add_property ("strip_width", "wide"); - rec_enable_button->set_label (_("record")); + if (rec_enable_button) { + rec_enable_button->set_label (_("record")); + } mute_button->set_label (_("mute")); solo_button->set_label (_("solo")); @@ -435,7 +436,9 @@ MixerStrip::set_width (Width w) set_size_request (50, -1); xml_node->add_property ("strip_width", "narrow"); - rec_enable_button->set_label (_("Rec")); + if (rec_enable_button) { + rec_enable_button->set_label (_("Rec")); + } mute_button->set_label (_("M")); solo_button->set_label (_("S")); @@ -1200,7 +1203,9 @@ void MixerStrip::engine_stopped () { input_button.set_sensitive (false); - rec_enable_button->set_sensitive (false); + if (rec_enable_button) { + rec_enable_button->set_sensitive (false); + } output_button.set_sensitive (false); } @@ -1208,7 +1213,9 @@ void MixerStrip::engine_running () { input_button.set_sensitive (true); - rec_enable_button->set_sensitive (true); + if (rec_enable_button) { + rec_enable_button->set_sensitive (true); + } output_button.set_sensitive (true); } diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h index 0cc8fed8e3..c914d12404 100644 --- a/gtk2_ardour/mixer_strip.h +++ b/gtk2_ardour/mixer_strip.h @@ -37,14 +37,15 @@ #include <gtkmm/adjustment.h> #include <gtkmm2ext/auto_spin.h> -#include <gtkmm2ext/slider_controller.h> #include <gtkmm2ext/click_box.h> +#include <gtkmm2ext/slider_controller.h> + +#include <pbd/stateful.h> #include <ardour/types.h> #include <ardour/ardour.h> #include <ardour/io.h> #include <ardour/insert.h> -#include <ardour/stateful.h> #include <ardour/redirect.h> #include <pbd/fastlog.h> diff --git a/gtk2_ardour/mixer_ui.h b/gtk2_ardour/mixer_ui.h index 5108df6014..864a110de7 100644 --- a/gtk2_ardour/mixer_ui.h +++ b/gtk2_ardour/mixer_ui.h @@ -33,8 +33,9 @@ #include <gtkmm/menu.h> #include <gtkmm/treeview.h> +#include <pbd/stateful.h> + #include <ardour/ardour.h> -#include <ardour/stateful.h> #include <ardour/io.h> #include "keyboard_target.h" diff --git a/gtk2_ardour/panner_ui.cc b/gtk2_ardour/panner_ui.cc index 63a19867a8..fac92a2844 100644 --- a/gtk2_ardour/panner_ui.cc +++ b/gtk2_ardour/panner_ui.cc @@ -316,13 +316,9 @@ PannerUI::setup_pan () _io.panner()[asz]->Changed.connect (bind (mem_fun(*this, &PannerUI::pan_value_changed), (uint32_t) asz)); bc = new BarController (*pan_adjustments[asz], - &_io.panner()[asz]->midi_control(), + _io.panner()[asz]->control(), bind (mem_fun(*this, &PannerUI::pan_printer), pan_adjustments[asz])); - if (_session.midi_port()) { - _io.panner()[asz]->reset_midi_control (_session.midi_port(), true); - } - bc->set_name ("PanSlider"); bc->set_shadow_type (Gtk::SHADOW_NONE); bc->set_style (BarController::Line); diff --git a/gtk2_ardour/panner_ui.h b/gtk2_ardour/panner_ui.h index 80b14465cf..86a8575802 100644 --- a/gtk2_ardour/panner_ui.h +++ b/gtk2_ardour/panner_ui.h @@ -31,8 +31,8 @@ #include <gtkmm/togglebutton.h> #include <gtkmm/button.h> -#include <gtkmm2ext/slider_controller.h> #include <gtkmm2ext/click_box.h> +#include <gtkmm2ext/slider_controller.h> #include "enums.h" diff --git a/gtk2_ardour/playlist_selector.cc b/gtk2_ardour/playlist_selector.cc index f1a975d5dc..9022c8acb4 100644 --- a/gtk2_ardour/playlist_selector.cc +++ b/gtk2_ardour/playlist_selector.cc @@ -189,7 +189,7 @@ PlaylistSelector::add_playlist_to_map (Playlist *pl) if ((x = dspl_map.find (apl->get_orig_diskstream_id())) == dspl_map.end()) { - pair<ARDOUR::id_t,list<Playlist*>*> newp (apl->get_orig_diskstream_id(), new list<Playlist*>); + pair<PBD::ID,list<Playlist*>*> newp (apl->get_orig_diskstream_id(), new list<Playlist*>); x = dspl_map.insert (dspl_map.end(), newp); } diff --git a/gtk2_ardour/playlist_selector.h b/gtk2_ardour/playlist_selector.h index 863d6cc7f3..2829ba54bb 100644 --- a/gtk2_ardour/playlist_selector.h +++ b/gtk2_ardour/playlist_selector.h @@ -46,7 +46,7 @@ class PlaylistSelector : public ArdourDialog void show_for (RouteUI*); private: - typedef std::map<ARDOUR::id_t,std::list<ARDOUR::Playlist*>*> DSPL_Map; + typedef std::map<PBD::ID,std::list<ARDOUR::Playlist*>*> DSPL_Map; ARDOUR::Session* session; Gtk::ScrolledWindow scroller; diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc index 749ab9d4ac..e5c8534df6 100644 --- a/gtk2_ardour/plugin_ui.cc +++ b/gtk2_ardour/plugin_ui.cc @@ -29,10 +29,10 @@ #include <gtkmm2ext/click_box.h> #include <gtkmm2ext/fastmeter.h> -#include <gtkmm2ext/slider_controller.h> #include <gtkmm2ext/barcontroller.h> #include <gtkmm2ext/utils.h> #include <gtkmm2ext/doi.h> +#include <gtkmm2ext/slider_controller.h> #include <midi++/manager.h> @@ -263,7 +263,7 @@ PluginUI::build (AudioEngine &engine) } } - if ((cui = build_control_ui (engine, i, plugin.get_nth_midi_control (i))) == 0) { + if ((cui = build_control_ui (engine, i, plugin.get_nth_control (i))) == 0) { error << string_compose(_("Plugin Editor: could not build control element for port %1"), i) << endmsg; continue; } @@ -419,7 +419,7 @@ PluginUI::print_parameter (char *buf, uint32_t len, uint32_t param) } PluginUI::ControlUI* -PluginUI::build_control_ui (AudioEngine &engine, guint32 port_index, MIDI::Controllable* mcontrol) +PluginUI::build_control_ui (AudioEngine &engine, guint32 port_index, PBD::Controllable* mcontrol) { ControlUI* control_ui; @@ -516,7 +516,7 @@ PluginUI::build_control_ui (AudioEngine &engine, guint32 port_index, MIDI::Contr } else { sigc::slot<void,char*,uint32_t> pslot = sigc::bind (mem_fun(*this, &PluginUI::print_parameter), (uint32_t) port_index); - control_ui->control = new BarController (*control_ui->adjustment, mcontrol, pslot); + control_ui->control = new BarController (*control_ui->adjustment, *mcontrol, pslot); // should really match the height of the text in the automation button+label control_ui->control->set_size_request (200, 22); control_ui->control->set_name (X_("PluginSlider")); diff --git a/gtk2_ardour/plugin_ui.h b/gtk2_ardour/plugin_ui.h index e5800e8ece..351ab0dc2b 100644 --- a/gtk2_ardour/plugin_ui.h +++ b/gtk2_ardour/plugin_ui.h @@ -52,7 +52,7 @@ namespace ARDOUR { class Redirect; } -namespace MIDI { +namespace PBD { class Controllable; } @@ -174,7 +174,7 @@ class PluginUI : public PlugUIBase, public Gtk::VBox void output_update(); void build (ARDOUR::AudioEngine &); - ControlUI* build_control_ui (ARDOUR::AudioEngine &, guint32 port_index, MIDI::Controllable *); + ControlUI* build_control_ui (ARDOUR::AudioEngine &, guint32 port_index, PBD::Controllable *); std::vector<string> setup_scale_values(guint32 port_index, ControlUI* cui); void control_adjustment_changed (ControlUI* cui); void parameter_changed (uint32_t, float, ControlUI* cui); diff --git a/gtk2_ardour/redirect_box.h b/gtk2_ardour/redirect_box.h index bc162fac17..0a4a6d5dee 100644 --- a/gtk2_ardour/redirect_box.h +++ b/gtk2_ardour/redirect_box.h @@ -33,11 +33,12 @@ #include <gtkmm2ext/click_box.h> #include <gtkmm2ext/dndtreeview.h> +#include <pbd/stateful.h> + #include <ardour/types.h> #include <ardour/ardour.h> #include <ardour/io.h> #include <ardour/insert.h> -#include <ardour/stateful.h> #include <ardour/redirect.h> #include <pbd/fastlog.h> diff --git a/gtk2_ardour/route_params_ui.h b/gtk2_ardour/route_params_ui.h index 96b2041db4..29f5b9112a 100644 --- a/gtk2_ardour/route_params_ui.h +++ b/gtk2_ardour/route_params_ui.h @@ -33,8 +33,9 @@ #include <gtkmm/togglebutton.h> #include <gtkmm/treeview.h> +#include <pbd/stateful.h> + #include <ardour/ardour.h> -#include <ardour/stateful.h> #include <ardour/io.h> #include <ardour/redirect.h> diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index 06f86bb545..a02814839a 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -21,8 +21,8 @@ #include <gtkmm2ext/gtk_ui.h> #include <gtkmm2ext/stop_signal.h> #include <gtkmm2ext/choice.h> -#include <gtkmm2ext/bindable_button.h> #include <gtkmm2ext/doi.h> +#include <gtkmm2ext/bindable_button.h> #include <ardour/route_group.h> @@ -67,11 +67,9 @@ RouteUI::RouteUI (ARDOUR::Route& rt, ARDOUR::Session& sess, const char* m_name, _route.GoingAway.connect (mem_fun (*this, &RouteUI::route_removed)); _route.active_changed.connect (mem_fun (*this, &RouteUI::route_active_changed)); - mute_button = manage (new BindableToggleButton (& _route.midi_mute_control(), m_name )); - mute_button->set_bind_button_state (2, GDK_CONTROL_MASK); - solo_button = manage (new BindableToggleButton (& _route.midi_solo_control(), s_name )); - solo_button->set_bind_button_state (2, GDK_CONTROL_MASK); - + mute_button = manage (new BindableToggleButton (_route.mute_control(), m_name )); + solo_button = manage (new BindableToggleButton (_route.solo_control(), s_name )); + if (is_audio_track()) { AudioTrack* at = dynamic_cast<AudioTrack*>(&_route); @@ -79,20 +77,18 @@ RouteUI::RouteUI (ARDOUR::Route& rt, ARDOUR::Session& sess, const char* m_name, _session.RecordStateChanged.connect (mem_fun (*this, &RouteUI::session_rec_enable_changed)); - rec_enable_button = manage (new BindableToggleButton (& at->midi_rec_enable_control(), r_name )); - rec_enable_button->set_bind_button_state (2, GDK_CONTROL_MASK); + rec_enable_button = manage (new BindableToggleButton (at->rec_enable_control(), r_name )); - } else { - rec_enable_button = manage (new BindableToggleButton (0, r_name )); - } + rec_enable_button->unset_flags (Gtk::CAN_FOCUS); + + update_rec_display (); + } mute_button->unset_flags (Gtk::CAN_FOCUS); solo_button->unset_flags (Gtk::CAN_FOCUS); - rec_enable_button->unset_flags (Gtk::CAN_FOCUS); /* map the current state */ - update_rec_display (); map_frozen (); } @@ -272,7 +268,7 @@ RouteUI::solo_release(GdkEventButton* ev) gint RouteUI::rec_enable_press(GdkEventButton* ev) { - if (!ignore_toggle && is_audio_track()) { + if (!ignore_toggle && is_audio_track() && rec_enable_button) { if (ev->button == 2 && Keyboard::modifier_state_equals (ev->state, Keyboard::Control)) { // do nothing on midi bind event @@ -484,7 +480,7 @@ RouteUI::build_solo_menu (void) check->show_all(); items.push_back (SeparatorElem()); - items.push_back (MenuElem (_("MIDI Bind"), mem_fun (*mute_button, &BindableToggleButton::midi_learn))); + // items.push_back (MenuElem (_("MIDI Bind"), mem_fun (*mute_button, &BindableToggleButton::midi_learn))); } @@ -527,7 +523,7 @@ RouteUI::build_mute_menu(void) check->show_all(); items.push_back (SeparatorElem()); - items.push_back (MenuElem (_("MIDI Bind"), mem_fun (*mute_button, &BindableToggleButton::midi_learn))); + // items.push_back (MenuElem (_("MIDI Bind"), mem_fun (*mute_button, &BindableToggleButton::midi_learn))); } void diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h index 69c9b7f5a9..df2e3aa319 100644 --- a/gtk2_ardour/route_ui.h +++ b/gtk2_ardour/route_ui.h @@ -29,10 +29,6 @@ #include "axis_view.h" -namespace Gtkmm2ext { - class BindableToggleButton; -} - namespace ARDOUR { class AudioTrack; } @@ -43,6 +39,8 @@ namespace Gtk { class Widget; } +class BindableToggleButton; + class RouteUI : public virtual AxisView { public: @@ -65,9 +63,9 @@ class RouteUI : public virtual AxisView bool ignore_toggle; bool wait_for_release; - Gtkmm2ext::BindableToggleButton * mute_button; - Gtkmm2ext::BindableToggleButton * solo_button; - Gtkmm2ext::BindableToggleButton * rec_enable_button; + BindableToggleButton* mute_button; + BindableToggleButton* solo_button; + BindableToggleButton* rec_enable_button; virtual string solo_button_name () const { return "SoloButton"; } virtual string safe_solo_button_name () const { return "SafeSoloButton"; } |