X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=libs%2Fardour%2Fglobals.cc;h=eca6d44de2e6bf0ad4681c34b4182a1e31deafed;hb=5fa05b403ca21a6573d07b921dc14f0769dc9fc7;hp=6ff46651e69bd165d82a6f08689cb90a4cc02edd;hpb=27ee53bf8f40831bf8c130aed6be2369c154e13f;p=ardour.git diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc index 6ff46651e6..eca6d44de2 100644 --- a/libs/ardour/globals.cc +++ b/libs/ardour/globals.cc @@ -84,6 +84,8 @@ #include "midi++/port.h" #include "midi++/mmc.h" +#include "LuaBridge/LuaBridge.h" + #include "ardour/analyser.h" #include "ardour/audio_library.h" #include "ardour/audio_backend.h" @@ -111,8 +113,10 @@ #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 #include "audiographer/routines.h" #if defined (__APPLE__) @@ -284,7 +288,7 @@ lotsa_files_please () if (newmax > 0) { info << string_compose (_("Your system is configured to limit %1 to only %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; + error << string_compose (_("Could not set system open files limit. Current limit is %1 open files"), _getmaxstdio()) << endmsg; } #endif } @@ -350,10 +354,20 @@ copy_configuration_files (string const & old_dir, string const & new_dir, int ol 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")); - new_name = Glib::build_filename (new_dir, X_("plugin_statuses")); + 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, 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); @@ -422,9 +436,15 @@ ARDOUR::init (bool use_windows_vst, bool try_optimization, const char* localedir return true; } +#ifndef NDEBUG + if (getenv("LUA_METATABLES")) { + luabridge::Security::setHideMetatables (false); + } +#endif + if (!PBD::init()) return false; -#ifdef ENABLE_NLS +#if ENABLE_NLS (void) bindtextdomain(PACKAGE, localedir); (void) bind_textdomain_codeset (PACKAGE, "UTF-8"); #endif @@ -440,6 +460,7 @@ ARDOUR::init (bool use_windows_vst, bool try_optimization, const char* localedir 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 @@ -552,9 +573,20 @@ ARDOUR::init (bool use_windows_vst, bool try_optimization, const char* localedir 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; @@ -565,8 +597,21 @@ void ARDOUR::init_post_engine () { XMLNode* node; + if ((node = Config->control_protocol_state()) != 0) { - ControlProtocolManager::instance().set_state (*node, Stateful::loading_state_version); + ControlProtocolManager::instance().set_state (*node, 0 /* here: global-config state */); + } + + if ((node = Config->transport_master_state()) != 0) { + if (TransportMasterManager::instance().set_state (*node, Stateful::loading_state_version)) { + error << _("Cannot restore transport master manager") << endmsg; + /* XXX now what? */ + } + } else { + if (TransportMasterManager::instance().set_default_configuration ()) { + error << _("Cannot initialize transport master manager") << endmsg; + /* XXX now what? */ + } } /* find plugins */ @@ -575,19 +620,19 @@ ARDOUR::init_post_engine () } void -ARDOUR::cleanup () + ARDOUR::cleanup () { if (!libardour_initialized) { return; } + delete &ControlProtocolManager::instance(); ARDOUR::AudioEngine::destroy (); delete Library; #ifdef HAVE_LRDF lrdf_cleanup (); #endif - delete &ControlProtocolManager::instance(); #ifdef WINDOWS_VST_SUPPORT fst_exit (); #endif