#include "ardour/runtime_functions.h"
#include "ardour/session_event.h"
#include "ardour/source_factory.h"
+#include "ardour/transport_master_manager.h"
#ifdef LV2_SUPPORT
#include "ardour/uri_map.h"
#endif
apply_gain_to_buffer_t ARDOUR::apply_gain_to_buffer = 0;
mix_buffers_with_gain_t ARDOUR::mix_buffers_with_gain = 0;
mix_buffers_no_gain_t ARDOUR::mix_buffers_no_gain = 0;
-copy_vector_t ARDOUR::copy_vector = 0;
+copy_vector_t ARDOUR::copy_vector = 0;
PBD::Signal1<void,std::string> ARDOUR::BootMessage;
PBD::Signal3<void,std::string,std::string,bool> ARDOUR::PluginScanMessage;
*/
PBD::PropertyChange ARDOUR::bounds_change;
+static PBD::ScopedConnection engine_startup_connection;
+
void
setup_hardware_optimization (bool try_optimization)
{
}
} else {
if (rl.rlim_cur != RLIM_INFINITY) {
- info << string_compose (_("Your system is configured to limit %1 to only %2 open files"), PROGRAM_NAME, rl.rlim_cur) << endmsg;
+ info << string_compose (_("Your system is configured to limit %1 to %2 open files"), PROGRAM_NAME, rl.rlim_cur) << endmsg;
}
}
} else {
*/
int newmax = _setmaxstdio (2048);
if (newmax > 0) {
- info << string_compose (_("Your system is configured to limit %1 to only %2 open files"), PROGRAM_NAME, newmax) << endmsg;
+ info << string_compose (_("Your system is configured to limit %1 to %2 open files"), PROGRAM_NAME, newmax) << endmsg;
} else {
error << string_compose (_("Could not set system open files limit. Current limit is %1 open files"), _getmaxstdio()) << endmsg;
}
copy_recurse (old_name, new_name);
- /* presets */
+ /* plugin status */
+ g_mkdir_with_parents (Glib::build_filename (new_dir, plugin_metadata_dir_name).c_str(), 0755);
+
+ old_name = Glib::build_filename (old_dir, X_("plugin_statuses")); /* until 6.0 */
+ new_name = Glib::build_filename (new_dir, plugin_metadata_dir_name, X_("plugin_statuses"));
+ copy_file (old_name, new_name); /* can fail silently */
+
+ old_name = Glib::build_filename (old_dir, plugin_metadata_dir_name, X_("plugin_statuses"));
+ copy_file (old_name, new_name);
+
+ /* plugin tags */
- old_name = Glib::build_filename (old_dir, X_("plugin_statuses"));
- new_name = Glib::build_filename (new_dir, X_("plugin_statuses"));
+ old_name = Glib::build_filename (old_dir, plugin_metadata_dir_name, X_("plugin_tags"));
+ new_name = Glib::build_filename (new_dir, plugin_metadata_dir_name, X_("plugin_tags"));
copy_file (old_name, new_name);
if (!PBD::init()) return false;
-#ifdef ENABLE_NLS
+#if ENABLE_NLS
(void) bindtextdomain(PACKAGE, localedir);
(void) bind_textdomain_codeset (PACKAGE, "UTF-8");
#endif
Playlist::make_property_quarks ();
AudioPlaylist::make_property_quarks ();
PresentationInfo::make_property_quarks ();
+ TransportMaster::make_property_quarks ();
/* this is a useful ready to use PropertyChange that many
things need to check. This avoids having to compose
reserved_io_names[_("Monitor")] = true;
reserved_io_names[_("Master")] = true;
+ reserved_io_names["auditioner"] = true; // auditioner.cc Track (s, "auditioner",...)
+
+ /* pure I/O */
+ reserved_io_names[X_("Click")] = false; // session.cc ClickIO (*this, X_("Click")
reserved_io_names[_("Control")] = false;
- reserved_io_names[_("Click")] = false;
reserved_io_names[_("Mackie")] = false;
+ reserved_io_names[_("FaderPort Recv")] = false;
+ reserved_io_names[_("FaderPort Send")] = false;
+ reserved_io_names[_("FaderPort2 Recv")] = false;
+ reserved_io_names[_("FaderPort2 Send")] = false;
+ reserved_io_names[_("FaderPort8 Recv")] = false;
+ reserved_io_names[_("FaderPort8 Send")] = false;
+ reserved_io_names[_("FaderPort16 Recv")] = false;
+ reserved_io_names[_("FaderPort16 Send")] = false;
libardour_initialized = true;
}
void
-ARDOUR::init_post_engine ()
+ARDOUR::init_post_engine (uint32_t start_cnt)
{
XMLNode* node;
- if ((node = Config->control_protocol_state()) != 0) {
- ControlProtocolManager::instance().set_state (*node, Stateful::loading_state_version);
+
+ if (start_cnt == 0) {
+
+ /* find plugins */
+
+ ARDOUR::PluginManager::instance().refresh (!Config->get_discover_vst_on_start());
}
- /* find plugins */
+ if (start_cnt == 0) {
+
+ if ((node = Config->control_protocol_state()) != 0) {
+ ControlProtocolManager::instance().set_state (*node, 0 /* here: global-config state */);
+ }
- ARDOUR::PluginManager::instance().refresh (!Config->get_discover_vst_on_start());
+ TransportMasterManager::instance().restart ();
+ }
}
void
return;
}
+ engine_startup_connection.disconnect ();
+
+ delete &ControlProtocolManager::instance();
ARDOUR::AudioEngine::destroy ();
delete Library;
#ifdef HAVE_LRDF
lrdf_cleanup ();
#endif
- delete &ControlProtocolManager::instance();
#ifdef WINDOWS_VST_SUPPORT
fst_exit ();
#endif