summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-08-16 19:58:34 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-08-16 19:58:34 +0000
commita4d9d09af5853f769e1143c2353806bfb7d89f58 (patch)
tree05dc35268557395124f130ec8b6d8e32c6e49b7b /gtk2_ardour
parent0b2f156c5850fb1c60aae25df4b9767bd7f92b89 (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.cc2
-rw-r--r--gtk2_ardour/ardour.menus.in6
-rw-r--r--gtk2_ardour/ardour_ui.cc14
-rw-r--r--gtk2_ardour/ardour_ui.h5
-rw-r--r--gtk2_ardour/io_selector.cc22
-rw-r--r--gtk2_ardour/io_selector.h3
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