diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 58ec76dfc1..71d8037d5f 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -212,6 +212,7 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir) , add_video_dialog (X_("add-video"), _("Add Tracks/Busses"), boost::bind (&ARDOUR_UI::create_add_video_dialog, this)) , bundle_manager (X_("bundle-manager"), _("Bundle Manager"), boost::bind (&ARDOUR_UI::create_bundle_manager, this)) , big_clock_window (X_("big-clock"), _("Big Clock"), boost::bind (&ARDOUR_UI::create_big_clock_window, this)) + , _audio_engine_reset_info_dialog ("audio_engine_reset_info_dialog.xml") // , audio_port_matrix (X_("audio-connection-manager"), _("Audio Connections"), boost::bind (&ARDOUR_UI::create_global_port_matrix, this, ARDOUR::DataType::AUDIO)) // , midi_port_matrix (X_("midi-connection-manager"), _("MIDI Connections"), boost::bind (&ARDOUR_UI::create_global_port_matrix, this, ARDOUR::DataType::MIDI)) , _feedback_exists (false) @@ -436,6 +437,8 @@ void ARDOUR_UI::attach_to_engine () { AudioEngine::instance()->Running.connect (forever_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::engine_running, this), gui_context()); + AudioEngine::instance()->DeviceResetStarted.connect (forever_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::device_reset_started, this), gui_context()); + AudioEngine::instance()->DeviceResetFinished.connect (forever_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::device_reset_finished, this), gui_context()); ARDOUR::Port::set_connecting_blocked (ARDOUR_COMMAND_LINE::no_connect_ports); } @@ -461,6 +464,19 @@ ARDOUR_UI::engine_running () populate_sample_rate_dropdown (); } +void +ARDOUR_UI::device_reset_started () +{ + _audio_engine_reset_info_dialog.set_keep_above (true); + _audio_engine_reset_info_dialog.show (); +} + +void +ARDOUR_UI::device_reset_finished () +{ + _audio_engine_reset_info_dialog.hide (); +} + void ARDOUR_UI::engine_halted (const char* reason, bool free_reason) { diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index fa8a402f93..7b1ec13539 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -444,6 +444,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void engine_halted (const char* reason, bool free_reason); void engine_stopped (); void engine_running (); + void device_reset_started (); + void device_reset_finished (); void use_config (); @@ -477,6 +479,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr Gtk::HBox _editor_transport_box; Gtk::HBox transport_hbox; Gtk::Fixed transport_base; + WavesDialog _audio_engine_reset_info_dialog; struct TransportControllable : public PBD::Controllable { enum ToggleType { diff --git a/gtk2_ardour/ui/audio_engine_reset_info_dialog.xml b/gtk2_ardour/ui/audio_engine_reset_info_dialog.xml new file mode 100644 index 0000000000..db7e793871 --- /dev/null +++ b/gtk2_ardour/ui/audio_engine_reset_info_dialog.xml @@ -0,0 +1,34 @@ + + +