Allow create Sessions with a specific sample-rate (2/2)

This commit is contained in:
Robin Gareus 2024-02-15 00:33:19 +01:00
parent b36323688a
commit a750f251d1
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 5 additions and 4 deletions

View File

@ -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);

View File

@ -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;