From 925d25851d30615727b8e4d850bd06432b2ca1d0 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 3 Apr 2019 03:35:13 +0200 Subject: [PATCH 1/2] Fix OSC crash when there's no master bus --- libs/surfaces/osc/osc.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index f5d72a24f3..7f8eba95cb 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -1224,7 +1224,7 @@ OSC::routes_list (lo_message msg) } else if (boost::dynamic_pointer_cast(s) && !boost::dynamic_pointer_cast(s)) { if (!(s->presentation_info().flags() & PresentationInfo::MidiBus)) { // r->feeds (session->master_out()) may make more sense - if (r->direct_feeds_according_to_reality (session->master_out())) { + if (session->master_out() && r->direct_feeds_according_to_reality (session->master_out())) { // this is a bus lo_message_add_string (reply, "B"); } else { @@ -6379,7 +6379,9 @@ OSC::get_sorted_stripables(std::bitset<32> types, bool cue, uint32_t custom, Sor if (!custom) { // Master/Monitor might be anywhere... we put them at the end - Sorry ;) if (types[5]) { - sorted.push_back (session->master_out()); + if (session->master_out()) { + sorted.push_back (session->master_out()); + } } if (types[6]) { if (session->monitor_out()) { From 58babb1e9b3a29c405a54ae44d14e1c299635537 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 3 Apr 2019 03:35:40 +0200 Subject: [PATCH 2/2] Backport a Mixbus special-case for plugin-tags --- libs/ardour/plugin_manager.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc index 181516bf0a..6e57f17220 100644 --- a/libs/ardour/plugin_manager.cc +++ b/libs/ardour/plugin_manager.cc @@ -1536,6 +1536,14 @@ PluginManager::save_tags () XMLNode* root = new XMLNode (X_("PluginTags")); for (PluginTagList::iterator i = ptags.begin(); i != ptags.end(); ++i) { +#ifdef MIXBUS + if ((*i).type == LADSPA) { + uint32_t id = atoi ((*i).unique_id); + if (id >= 9300 && id <= 9399) { + continue; /* do not write mixbus channelstrip ladspa's in the tagfile */ + } + } +#endif if ((*i).tagtype == FromFactoryFile || (*i).tagtype == FromUserFile) { /* user file should contain only plugins that are (a) newly user-tagged or (b) previously unknown */ continue;