mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-08 07:45:00 +01:00
move all responsibility for autostart into StartupFSM and out of engine dialog
This commit is contained in:
parent
88c4158c03
commit
eda27cc3de
3 changed files with 23 additions and 22 deletions
|
|
@ -470,18 +470,6 @@ EngineControl::config_parameter_changed (std::string const & p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
EngineControl::try_autostart ()
|
|
||||||
{
|
|
||||||
if (!start_stop_button.get_sensitive()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (ARDOUR::AudioEngine::instance()->running()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return start_engine ();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
EngineControl::start_engine ()
|
EngineControl::start_engine ()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,6 @@ public:
|
||||||
bool set_state (const XMLNode&);
|
bool set_state (const XMLNode&);
|
||||||
|
|
||||||
void set_desired_sample_rate (uint32_t);
|
void set_desired_sample_rate (uint32_t);
|
||||||
bool try_autostart ();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Gtk::Notebook notebook;
|
Gtk::Notebook notebook;
|
||||||
|
|
|
||||||
|
|
@ -425,21 +425,35 @@ StartupFSM::start_audio_midi_setup ()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (setup_required) {
|
if (setup_required) {
|
||||||
if (!session_is_new && session_existing_sample_rate > 0) {
|
|
||||||
audiomidi_dialog.set_desired_sample_rate (session_existing_sample_rate);
|
/* Note: if autostart is enabled, and starting the engine is
|
||||||
}
|
* successful, but the session SR differs, there will be no
|
||||||
|
* chance to reset it.
|
||||||
|
*
|
||||||
|
* We could change this trivially with a call to
|
||||||
|
* AudioEngine::set_sample_rate(), but that opens a can of
|
||||||
|
* worms about policy, UX, GUI and more, because it isn't clear
|
||||||
|
* whether that's the correct thing to do. So for now (Nov
|
||||||
|
* 2019) we simply try the autostart if the user asked for it,
|
||||||
|
* and if necessary a session SR mismatch dialog will appear
|
||||||
|
* during loading.
|
||||||
|
*/
|
||||||
|
|
||||||
if (!session_is_new && (Config->get_try_autostart_engine () || g_getenv ("ARDOUR_TRY_AUTOSTART_ENGINE"))) {
|
if (!session_is_new && (Config->get_try_autostart_engine () || g_getenv ("ARDOUR_TRY_AUTOSTART_ENGINE"))) {
|
||||||
|
|
||||||
audiomidi_dialog.try_autostart ();
|
if (!AudioEngine::instance()->start ()) {
|
||||||
|
if (ARDOUR::AudioEngine::instance()->running()) {
|
||||||
if (ARDOUR::AudioEngine::instance()->running()) {
|
DEBUG_TRACE (DEBUG::GuiStartup, "autostart successful, audio/MIDI setup dialog not required\n");
|
||||||
DEBUG_TRACE (DEBUG::GuiStartup, "autostart successful, audio/MIDI setup dialog not required\n");
|
engine_running ();
|
||||||
engine_running ();
|
return;
|
||||||
return;
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!session_is_new && session_existing_sample_rate > 0) {
|
||||||
|
audiomidi_dialog.set_desired_sample_rate (session_existing_sample_rate);
|
||||||
|
}
|
||||||
|
|
||||||
show_audiomidi_dialog ();
|
show_audiomidi_dialog ();
|
||||||
DEBUG_TRACE (DEBUG::GuiStartup, "audiomidi shown and waiting\n");
|
DEBUG_TRACE (DEBUG::GuiStartup, "audiomidi shown and waiting\n");
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue