diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-08-16 19:58:34 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-08-16 19:58:34 +0000 |
commit | a4d9d09af5853f769e1143c2353806bfb7d89f58 (patch) | |
tree | 05dc35268557395124f130ec8b6d8e32c6e49b7b /gtk2_ardour | |
parent | 0b2f156c5850fb1c60aae25df4b9767bd7f92b89 (diff) |
forward port 2.X changes up to and including rev 6714
git-svn-id: svn://localhost/ardour2/branches/3.0@7635 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/about.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/ardour.menus.in | 6 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 14 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.h | 5 | ||||
-rw-r--r-- | gtk2_ardour/io_selector.cc | 22 | ||||
-rw-r--r-- | gtk2_ardour/io_selector.h | 3 |
6 files changed, 47 insertions, 5 deletions
diff --git a/gtk2_ardour/about.cc b/gtk2_ardour/about.cc index 317be6f403..babc5db4bb 100644 --- a/gtk2_ardour/about.cc +++ b/gtk2_ardour/about.cc @@ -182,7 +182,7 @@ static const char* translators[] = { N_("Greek:\n\t Klearchos Gourgourinis <muadib@in.gr>\n"), N_("Swedish:\n\t Petter Sundlöf <petter.sundlof@gmail.com>\n"), N_("Polish:\n\t Piotr Zaryk <pzaryk@gmail.com>\n"), - N_("Czech:\n\t Pavel Frich\n"), + N_("Czech:\n\t Pavel Fric <pavelfric@seznam.cz>\n"), N_("Norwegian:\n\t Eivind Ødegård\n"), 0 }; diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in index 8d6950b90b..9aaada247b 100644 --- a/gtk2_ardour/ardour.menus.in +++ b/gtk2_ardour/ardour.menus.in @@ -29,10 +29,11 @@ <menuitem action='CleanupUnused'/> <menuitem action='FlushWastebasket'/> </menu> +#ifndef GTKOSX <separator/> +#endif <menuitem action='ToggleSessionOptionsEditor'/> - <separator/> -#ifdef GTKOSX +#ifndef GTKOSX <menuitem action='ToggleRCOptionsEditor'/> <menuitem action='About'/> #endif @@ -265,6 +266,7 @@ <menuitem action='region-fill-track'/> <separator/> <menuitem action='loop-region'/> + <menuitem action='set-loop-from-region'/> <menuitem action='set-punch-from-region'/> <menuitem action='add-range-marker-from-region'/> <menuitem action='add-range-markers-from-region'/> diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index b28bccbc94..72adc4305b 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -733,6 +733,19 @@ ARDOUR_UI::check_memory_locking () void +ARDOUR_UI::queue_finish () +{ + Glib::signal_idle().connect (mem_fun (*this, &ARDOUR_UI::idle_finish)); +} + +bool +ARDOUR_UI::idle_finish () +{ + finish (); + return false; /* do not call again */ +} + +void ARDOUR_UI::finish() { if (_session) { @@ -772,6 +785,7 @@ If you still wish to quit, please use the\n\n\ point_oh_five_second_connection.disconnect (); point_zero_one_second_connection.disconnect(); + _session->set_clean (); // _session->set_deletion_in_progress (); _session->remove_pending_capture_state (); delete _session; diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index b960af2074..cc81faee3a 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -699,6 +699,11 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr PBD::ScopedConnectionList forever_connections; void step_edit_status_change (bool); + + /* these are used only in response to a platform-specific "ShouldQuit" signal + */ + bool idle_finish (); + void queue_finish (); }; #endif /* __ardour_gui_h__ */ diff --git a/gtk2_ardour/io_selector.cc b/gtk2_ardour/io_selector.cc index 9399a6aaa7..2bf112ef8e 100644 --- a/gtk2_ardour/io_selector.cc +++ b/gtk2_ardour/io_selector.cc @@ -159,7 +159,7 @@ IOSelector::get_state (ARDOUR::BundleChannel c[2]) const ARDOUR::Bundle::PortList const & our_ports = c[_ours].bundle->channel_ports (c[_ours].channel); ARDOUR::Bundle::PortList const & other_ports = c[_other].bundle->channel_ports (c[_other].channel); - if (our_ports.empty() || other_ports.empty()) { + if (!_session || our_ports.empty() || other_ports.empty()) { /* we're looking at a bundle with no parts associated with this channel, so nothing to connect */ return PortMatrixNode::NOT_ASSOCIATED; @@ -286,9 +286,26 @@ PortInsertUI::PortInsertUI (Gtk::Window* parent, ARDOUR::Session* sess, boost::s pack_start (output_selector, true, true); pack_start (input_selector, true, true); + update_latency_display (); + latency_button.signal_toggled().connect (mem_fun (*this, &PortInsertUI::latency_button_toggled)); } + +void +PortInsertUI::update_latency_display () +{ + nframes_t sample_rate = input_selector.session()->engine().frame_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); + } +} + bool PortInsertUI::check_latency_measurement () { @@ -304,7 +321,7 @@ PortInsertUI::check_latency_measurement () mtdm->resolve (); } - char buf[64]; + char buf[128]; nframes_t sample_rate = AudioEngine::instance()->frame_rate(); if (sample_rate == 0) { @@ -329,6 +346,7 @@ PortInsertUI::check_latency_measurement () if (solid) { _pi->set_measured_latency ((nframes_t) rint (mtdm->del())); + latency_button.set_active (false); strcat (buf, " (set)"); } diff --git a/gtk2_ardour/io_selector.h b/gtk2_ardour/io_selector.h index 32946fb1b7..653d8834a1 100644 --- a/gtk2_ardour/io_selector.h +++ b/gtk2_ardour/io_selector.h @@ -38,6 +38,8 @@ class IOSelector : public PortMatrix std::string disassociation_verb () const; std::string channel_noun () const; + ARDOUR::Session* session() const { return _session; } + uint32_t n_io_ports () const; boost::shared_ptr<ARDOUR::IO> const io () { return _io; } void setup_ports (int); @@ -109,6 +111,7 @@ class PortInsertUI : public Gtk::HBox bool check_latency_measurement (); void latency_button_toggled (); + void update_latency_display (); }; class PortInsertWindow : public ArdourDialog |