From a750f251d19a1debd937380a0c56415d187e17a4 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 15 Feb 2024 00:33:19 +0100 Subject: [PATCH] Allow create Sessions with a specific sample-rate (2/2) --- gtk2_ardour/ardour_ui.h | 3 ++- gtk2_ardour/ardour_ui_session.cc | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index f5edab9390..55af61a5a9 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -228,6 +228,8 @@ public: int load_session (const std::string& path, const std::string& snapshot, std::string mix_template = std::string()); bool session_load_in_progress; int build_session (std::string const& path, std::string const& snapshot, std::string const& session_template, ARDOUR::BusProfile const&, bool from_startup_fsm, bool unnamed, Temporal::TimeDomain domain); + int build_session_stage_two (std::string const& path, std::string const& snapshot, std::string const& session_template, ARDOUR::BusProfile const&, bool unnamed, Temporal::TimeDomain domain, ARDOUR::samplecnt_t samplerate = 0); + bool session_is_new() const { return _session_is_new; } ARDOUR::Session* the_session() { return _session; } @@ -474,7 +476,6 @@ private: void audio_midi_setup_reconfigure_done (int response, std::string path, std::string snapshot, std::string mix_template); int load_session_stage_two (const std::string& path, const std::string& snapshot, std::string mix_template = std::string()); void audio_midi_setup_for_new_session_done (int response, std::string path, std::string snapshot, std::string session_template, ARDOUR::BusProfile const&, bool unnamed, Temporal::TimeDomain domain); - int build_session_stage_two (std::string const& path, std::string const& snapshot, std::string const& session_template, ARDOUR::BusProfile const&, bool unnamed, Temporal::TimeDomain domain); sigc::connection _engine_dialog_connection; void save_session_at_its_request (std::string); diff --git a/gtk2_ardour/ardour_ui_session.cc b/gtk2_ardour/ardour_ui_session.cc index cdb4b4438f..a89faf803d 100644 --- a/gtk2_ardour/ardour_ui_session.cc +++ b/gtk2_ardour/ardour_ui_session.cc @@ -645,7 +645,7 @@ ARDOUR_UI::build_session (const std::string& path, const std::string& snap_name, audio_midi_setup->set_position (WIN_POS_CENTER); audio_midi_setup->set_modal (); audio_midi_setup->present (); - _engine_dialog_connection = audio_midi_setup->signal_response().connect (sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::audio_midi_setup_for_new_session_done), path, snap_name, session_template, bus_profile, unnamed, domain)); + _engine_dialog_connection = audio_midi_setup->signal_response().connect (boost::bind (&ARDOUR_UI::audio_midi_setup_for_new_session_done, this, _1, path, snap_name, session_template, bus_profile, unnamed, domain)); /* not done yet, but we're avoiding modal dialogs */ return 0; @@ -675,14 +675,14 @@ ARDOUR_UI::audio_midi_setup_for_new_session_done (int response, std::string path } int -ARDOUR_UI::build_session_stage_two (std::string const& path, std::string const& snap_name, std::string const& session_template, BusProfile const& bus_profile, bool unnamed, Temporal::TimeDomain domain) +ARDOUR_UI::build_session_stage_two (std::string const& path, std::string const& snap_name, std::string const& session_template, BusProfile const& bus_profile, bool unnamed, Temporal::TimeDomain domain, samplecnt_t samplerate) { Session* new_session; bool meta_session = !session_template.empty() && session_template.substr (0, 11) == "urn:ardour:"; try { - new_session = new Session (*AudioEngine::instance(), path, snap_name, bus_profile.master_out_channels > 0 ? &bus_profile : NULL, meta_session ? "" : session_template, unnamed); + new_session = new Session (*AudioEngine::instance(), path, snap_name, bus_profile.master_out_channels > 0 ? &bus_profile : NULL, meta_session ? "" : session_template, unnamed, samplerate); } catch (SessionException const& e) { gchar* escaped_error_txt = 0;