diff options
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 18 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.h | 1 |
2 files changed, 19 insertions, 0 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index c368572e9c..a3647ab27e 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -368,6 +368,9 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir) ARDOUR::Session::AskAboutSampleRateMismatch.connect_same_thread (forever_connections, boost::bind (&ARDOUR_UI::sr_mismatch_dialog, this, _1, _2)); + /* handle sr mismatch with a dialog - cross-thread from engine */ + ARDOUR::Session::NotifyAboutSampleRateMismatch.connect (forever_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::sr_mismatch_message, this, _1, _2), gui_context ()); + /* handle requests to quit (coming from JACK session) */ ARDOUR::Session::Quit.connect (forever_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::finish, this), gui_context ()); @@ -4809,6 +4812,21 @@ audio may be played at the wrong sample rate.\n"), desired, PROGRAM_NAME, actual } void +ARDOUR_UI::sr_mismatch_message (framecnt_t desired, framecnt_t actual) +{ + MessageDialog msg (string_compose (_("\ +This session was created with a sample rate of %1 Hz, but\n\ +%2 is currently running at %3 Hz.\n\ +Audio will be recorded and played at the wrong sample rate.\n\ +Re-Configure the Audio Engine in\n\ +Menu > Window > Audio/Midi Setup"), + desired, PROGRAM_NAME, actual), + true, + Gtk::MESSAGE_WARNING); + msg.run (); +} + +void ARDOUR_UI::use_config () { XMLNode* node = Config->extra_xml (X_("TransportControllables")); diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 632fe07c85..0b61619eff 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -753,6 +753,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void session_dialog (std::string); int pending_state_dialog (); int sr_mismatch_dialog (ARDOUR::framecnt_t, ARDOUR::framecnt_t); + void sr_mismatch_message (ARDOUR::framecnt_t, ARDOUR::framecnt_t); Gtk::MenuItem* jack_disconnect_item; Gtk::MenuItem* jack_reconnect_item; |