diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 0314e6445e..70daa60cc7 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -3125,6 +3125,7 @@ ARDOUR_UI::load_session (const std::string& path, const std::string& snap_name, session_loaded = true; tracks_control_panel->refresh_session_settings_info(); + _session->config.ParameterChanged.connect_same_thread (connection_with_session_config, boost::bind (&ARDOUR_UI::on_parameter_changed, this, _1)); goto_editor_window (); @@ -3174,6 +3175,8 @@ ARDOUR_UI::build_session (const std::string& path, const std::string& snap_name, return -1; } + _session->config.ParameterChanged.connect_same_thread (connection_with_session_config, boost::bind (&ARDOUR_UI::on_parameter_changed, this, _1)); + new_session->config.set_native_file_header_format(this->_header_format); new_session->config.set_native_file_data_format (this->_sample_format); new_session->config.set_timecode_format(this->_timecode_format); @@ -3198,14 +3201,22 @@ ARDOUR_UI::build_session (const std::string& path, const std::string& snap_name, } set_session (new_session); - - session_loaded = true; - + session_loaded = true; + new_session->save_state(new_session->name()); return 0; } +void +ARDOUR_UI::on_parameter_changed(std::string param) +{ + if (param == "native-file-data-format" || param == "native-file-header-format") + update_format(); + if ( param == "timecode-format") + update_timecode_format(); +} + void ARDOUR_UI::launch_chat () { diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 5166896525..01baa45d7a 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -307,8 +307,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void set_sample_format(ARDOUR::SampleFormat sf) {_sample_format = sf;} void set_header_format(ARDOUR::HeaderFormat hf) {_header_format = hf;} void set_timecode_format(Timecode::TimecodeFormat tc) {_timecode_format = tc;} - void update_format (); - void update_timecode_format (); protected: friend class PublicEditor; @@ -559,6 +557,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void update_sample_rate (ARDOUR::framecnt_t); Gtk::Label format_label; + void update_format (); + + void update_timecode_format (); gint every_second (); gint every_point_one_seconds (); @@ -783,6 +784,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr ARDOUR::HeaderFormat _header_format; Timecode::TimecodeFormat _timecode_format; + void on_parameter_changed(std::string); + PBD::ScopedConnection connection_with_session_config; }; #endif /* __ardour_gui_h__ */ diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index 35dbe3cfc9..7b9fc16e86 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -189,6 +189,7 @@ ARDOUR_UI::set_session (Session *s) point_zero_something_second_connection = Glib::signal_timeout().connect (sigc::mem_fun(*this, &ARDOUR_UI::every_point_zero_something_seconds), 40); update_format (); + update_timecode_format(); if (meter_box.get_parent()) { transport_tearoff_hbox.remove (meter_box); @@ -279,6 +280,7 @@ ARDOUR_UI::unload_session (bool hide_stuff) second_connection.disconnect (); point_one_second_connection.disconnect (); point_zero_something_second_connection.disconnect(); + connection_with_session_config.disconnect(); if (editor_meter) { meter_box.remove(*editor_meter); diff --git a/gtk2_ardour/tracks_control_panel.logic.cc b/gtk2_ardour/tracks_control_panel.logic.cc index ec6f484728..c5c70a694e 100644 --- a/gtk2_ardour/tracks_control_panel.logic.cc +++ b/gtk2_ardour/tracks_control_panel.logic.cc @@ -1265,9 +1265,6 @@ void TracksControlPanel::update_session_config () session->config.set_native_file_header_format( string_to_HeaderFormat(_file_type_combo.get_active_text() ) ); session->config.set_native_file_data_format ( string_to_SampleFormat(_bit_depth_combo.get_active_text() ) ); session->config.set_timecode_format( string_to_TimecodeFormat(_frame_rate_combo.get_active_text() ) ); - - ardour_ui->update_format(); - ardour_ui->update_timecode_format(); } } } diff --git a/libs/backends/wavesaudio/wscript b/libs/backends/wavesaudio/wscript index 3f3a7080b7..2b3684b0fd 100644 --- a/libs/backends/wavesaudio/wscript +++ b/libs/backends/wavesaudio/wscript @@ -32,8 +32,11 @@ def build(bld): obj = bld(features = 'c cxx cxxshlib') if sys.platform == 'darwin': - obj.framework = 'CoreMidi' - + if bld.env['build_target'] not in [ 'lion' ]: + obj.framework = 'CoreMidi' + else: + obj.framework = 'CoreMIDI' + obj.source = [ 'waves_audiobackend.cc', 'waves_audiobackend.latency.cc',