X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fport_insert_ui.cc;h=ffe2d34f069b297e599e3cd21da4f6fb7d219c5d;hb=e8903a7590caaa46498d3e53c9d7df63edb24090;hp=3c495f0e797c0c25255a1d103245c917079196fc;hpb=bb826f4beebfcedc50570b818c305560d2233e47;p=ardour.git diff --git a/gtk2_ardour/port_insert_ui.cc b/gtk2_ardour/port_insert_ui.cc index 3c495f0e79..ffe2d34f06 100644 --- a/gtk2_ardour/port_insert_ui.cc +++ b/gtk2_ardour/port_insert_ui.cc @@ -17,129 +17,130 @@ */ -#include #include -#include +#include +#include #include "ardour/audioengine.h" #include "ardour/mtdm.h" #include "ardour/port_insert.h" #include "ardour/session.h" +#include "gtkmm2ext/doi.h" + #include "port_insert_ui.h" -#include "utils.h" #include "gui_thread.h" -#include "i18n.h" +#include "pbd/i18n.h" using namespace ARDOUR; using namespace Gtk; PortInsertUI::PortInsertUI (Gtk::Window* parent, ARDOUR::Session* sess, boost::shared_ptr pi) - : _pi (pi) - , latency_button (_("Measure Latency")) - , input_selector (parent, sess, pi->input()) - , output_selector (parent, sess, pi->output()) + : _pi (pi) + , latency_button (_("Measure Latency")) + , input_selector (parent, sess, pi->input()) + , output_selector (parent, sess, pi->output()) { - latency_hbox.pack_start (latency_button, false, false); - latency_hbox.pack_start (latency_display, false, false); + latency_hbox.pack_start (latency_button, false, false); + latency_hbox.pack_start (latency_display, false, false); latency_hbox.set_spacing (4); output_selector.set_min_height_divisor (2); input_selector.set_min_height_divisor (2); - notebook.append_page (output_selector, _("Send/Output")); - notebook.append_page (input_selector, _("Return/Input")); + notebook.append_page (output_selector, _("Send/Output")); + notebook.append_page (input_selector, _("Return/Input")); - notebook.set_current_page (0); + notebook.set_current_page (0); - set_spacing (12); - pack_start (notebook, true, true); - pack_start (latency_hbox, false, false); + set_spacing (12); + pack_start (notebook, true, true); + pack_start (latency_hbox, false, false); - update_latency_display (); + update_latency_display (); - latency_button.signal_toggled().connect (mem_fun (*this, &PortInsertUI::latency_button_toggled)); + latency_button.signal_toggled().connect (mem_fun (*this, &PortInsertUI::latency_button_toggled)); latency_button.set_name (X_("MeasureLatencyButton")); } void PortInsertUI::update_latency_display () { - framecnt_t const sample_rate = AudioEngine::instance()->sample_rate(); - if (sample_rate == 0) { - latency_display.set_text (_("Disconnected from audio engine")); - } else { - char buf[64]; - snprintf (buf, sizeof (buf), "%10.3lf frames %10.3lf ms", - (float)_pi->latency(), (float)_pi->latency() * 1000.0f/sample_rate); - latency_display.set_text(buf); - } + samplecnt_t const sample_rate = AudioEngine::instance()->sample_rate(); + if (sample_rate == 0) { + latency_display.set_text (_("Disconnected from audio engine")); + } else { + char buf[64]; + snprintf (buf, sizeof (buf), "%10.3lf samples %10.3lf ms", + (float)_pi->latency(), (float)_pi->latency() * 1000.0f/sample_rate); + latency_display.set_text(buf); + } } bool PortInsertUI::check_latency_measurement () { - MTDM* mtdm = _pi->mtdm (); + MTDM* mtdm = _pi->mtdm (); - if (mtdm->resolve () < 0) { - latency_display.set_text (_("No signal detected")); - return true; - } + if (mtdm->resolve () < 0) { + latency_display.set_text (_("No signal detected")); + return true; + } - if (mtdm->err () > 0.3) { - mtdm->invert (); - mtdm->resolve (); - } + if (mtdm->err () > 0.3) { + mtdm->invert (); + mtdm->resolve (); + } - char buf[128]; - framecnt_t const sample_rate = AudioEngine::instance()->sample_rate(); + char buf[128]; + samplecnt_t const sample_rate = AudioEngine::instance()->sample_rate(); - if (sample_rate == 0) { - latency_display.set_text (_("Disconnected from audio engine")); - _pi->stop_latency_detection (); - return false; - } + if (sample_rate == 0) { + latency_display.set_text (_("Disconnected from audio engine")); + _pi->stop_latency_detection (); + return false; + } - snprintf (buf, sizeof (buf), "%10.3lf frames %10.3lf ms", mtdm->del (), mtdm->del () * 1000.0f/sample_rate); + snprintf (buf, sizeof (buf), "%10.3lf samples %10.3lf ms", mtdm->del (), mtdm->del () * 1000.0f/sample_rate); - bool solid = true; + bool solid = true; - if (mtdm->err () > 0.2) { - strcat (buf, " ??"); - solid = false; - } + if (mtdm->err () > 0.2) { + strcat (buf, " ??"); + solid = false; + } - if (mtdm->inv ()) { - strcat (buf, " (Inv)"); - solid = false; - } + if (mtdm->inv ()) { + strcat (buf, " (Inv)"); + solid = false; + } - if (solid) { - _pi->set_measured_latency (rint (mtdm->del())); - latency_button.set_active (false); - strcat (buf, " (set)"); - } + if (solid) { + _pi->set_measured_latency (rint (mtdm->del())); + latency_button.set_active (false); + strcat (buf, " (set)"); + } - latency_display.set_text (buf); + latency_display.set_text (buf); - return true; + return true; } void PortInsertUI::latency_button_toggled () { - if (latency_button.get_active ()) { + if (latency_button.get_active ()) { - _pi->start_latency_detection (); - latency_display.set_text (_("Detecting ...")); - latency_timeout = Glib::signal_timeout().connect (mem_fun (*this, &PortInsertUI::check_latency_measurement), 250); + _pi->start_latency_detection (); + latency_display.set_text (_("Detecting ...")); + latency_timeout = Glib::signal_timeout().connect (mem_fun (*this, &PortInsertUI::check_latency_measurement), 250); - } else { - _pi->stop_latency_detection (); - latency_timeout.disconnect (); - update_latency_display (); - } + } else { + _pi->stop_latency_detection (); + latency_timeout.disconnect (); + update_latency_display (); + } } void @@ -176,8 +177,6 @@ PortInsertWindow::PortInsertWindow (ARDOUR::Session* sess, boost::shared_ptrsignal_clicked().connect (sigc::mem_fun (*this, &PortInsertWindow::accept)); signal_delete_event().connect (sigc::mem_fun (*this, &PortInsertWindow::wm_delete), false); - - pi->DropReferences.connect (going_away_connection, invalidator (*this), boost::bind (&PortInsertWindow::plugin_going_away, this), gui_context()); } bool @@ -187,15 +186,6 @@ PortInsertWindow::wm_delete (GdkEventAny* /*event*/) return false; } -void -PortInsertWindow::plugin_going_away () -{ - ENSURE_GUI_THREAD (*this, &PortInsertWindow::plugin_going_away) - - going_away_connection.disconnect (); - delete_when_idle (this); -} - void PortInsertWindow::on_map () {