summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-07-15 15:04:01 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-07-15 15:04:01 -0400
commit0c641f684712cfe666ea5524870600cae0cc3af3 (patch)
treec7abc6857a178744ed86f995483bfd34d774a203
parentd80f672e8487f459d76ab291958bffcded08f0fd (diff)
parent08e6dcde7621c309f3abc2779a196b2b86f19060 (diff)
Merge branch 'apple' of https://github.com/mfisher31/ardour
-rw-r--r--gtk2_ardour/startup.cc34
-rw-r--r--libs/ardour/lv2_plugin.cc51
2 files changed, 50 insertions, 35 deletions
diff --git a/gtk2_ardour/startup.cc b/gtk2_ardour/startup.cc
index ca598ba949..e7edf5e995 100644
--- a/gtk2_ardour/startup.cc
+++ b/gtk2_ardour/startup.cc
@@ -189,33 +189,33 @@ ArdourStartup::ready_without_display () const
void
ArdourStartup::setup_prerelease_page ()
{
- VBox* vbox = manage (new VBox);
- Label* label = manage (new Label);
- label->set_markup (_("<b>Welcome to this BETA release of Ardour 3.0</b>\n\n\
-Ardour 3.0 has been released for Linux but because of the lack of testers,\n\
+ VBox* vbox = manage (new VBox);
+ Label* label = manage (new Label);
+ label->set_markup (string_compose (_("<b>Welcome to this BETA release of Ardour %1</b>\n\n\
+Ardour %1 has been released for Linux but because of the lack of testers,\n\
it is still at the beta stage on OS X. So, a few guidelines:\n\
\n\
1) Please do <b>NOT</b> use this software with the expectation that it is stable or reliable\n\
though it may be so, depending on your workflow.\n\
-3) <b>Please do NOT use the forums at ardour.org to report issues</b>.\n\
-4) Please <b>DO</b> use the bugtracker at http://tracker.ardour.org/ to report issues\n\
- making sure to note the product version number as 3.0-beta.\n\
-5) Please <b>DO</b> use the ardour-users mailing list to discuss ideas and pass on comments.\n\
-6) Please <b>DO</b> join us on IRC for real time discussions about ardour3. You\n\
+2) <b>Please do NOT use the forums at ardour.org to report issues</b>.\n\
+3) Please <b>DO</b> use the bugtracker at http://tracker.ardour.org/ to report issues\n\
+ making sure to note the product version number as %1-beta.\n\
+4) Please <b>DO</b> use the ardour-users mailing list to discuss ideas and pass on comments.\n\
+5) Please <b>DO</b> join us on IRC for real time discussions about ardour3. You\n\
can get there directly from Ardour via the Help->Chat menu option.\n\
\n\
Full information on all the above can be found on the support page at\n\
\n\
http://ardour.org/support\n\
-"));
-
- vbox->set_border_width (12);
- vbox->pack_start (*label, false, false, 12);
- vbox->show_all ();
+"), VERSIONSTRING));
- append_page (*vbox);
- set_page_type (*vbox, ASSISTANT_PAGE_CONTENT);
- set_page_title (*vbox, _("This is a BETA RELEASE"));
+ vbox->set_border_width (12);
+ vbox->pack_start (*label, false, false, 12);
+ vbox->show_all ();
+
+ append_page (*vbox);
+ set_page_type (*vbox, ASSISTANT_PAGE_CONTENT);
+ set_page_title (*vbox, _("This is a BETA RELEASE"));
set_page_complete (*vbox, true);
}
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc
index d49f8412b7..df33e6c38d 100644
--- a/libs/ardour/lv2_plugin.cc
+++ b/libs/ardour/lv2_plugin.cc
@@ -112,6 +112,8 @@ public:
LV2World ();
~LV2World ();
+ void load_bundled_plugins();
+
LilvWorld* world;
LilvNode* atom_AtomPort;
@@ -140,6 +142,9 @@ public:
LilvNode* time_Position;
LilvNode* ui_GtkUI;
LilvNode* ui_external;
+
+private:
+ bool _bundle_checked;
};
static LV2World _world;
@@ -1903,27 +1908,10 @@ static bool lv2_filter (const string& str, void *arg)
LV2World::LV2World()
: world(lilv_world_new())
+ , _bundle_checked(false)
{
lilv_world_load_all(world);
- cout << "Scanning folders for bundled LV2s: " << ARDOUR::lv2_bundled_search_path().to_string() << endl;
- PathScanner scanner;
- vector<string *> *plugin_objects = scanner (ARDOUR::lv2_bundled_search_path().to_string(), lv2_filter, 0, true, true);
- if (plugin_objects) {
- for ( vector<string *>::iterator x = plugin_objects->begin(); x != plugin_objects->end (); ++x) {
-#ifdef WINDOWS
- string uri = "file:///" + **x + "/";
-#else
- string uri = "file://" + **x + "/";
-#endif
- LilvNode *node = lilv_new_uri(world, uri.c_str());
- lilv_world_load_bundle(world, node);
- lilv_node_free(node);
- }
- }
- delete (plugin_objects);
-
-
atom_AtomPort = lilv_new_uri(world, LV2_ATOM__AtomPort);
atom_Chunk = lilv_new_uri(world, LV2_ATOM__Chunk);
atom_Sequence = lilv_new_uri(world, LV2_ATOM__Sequence);
@@ -1982,6 +1970,31 @@ LV2World::~LV2World()
lilv_node_free(atom_AtomPort);
}
+void
+LV2World::load_bundled_plugins()
+{
+ if (!_bundle_checked) {
+ cout << "Scanning folders for bundled LV2s: " << ARDOUR::lv2_bundled_search_path().to_string() << endl;
+ PathScanner scanner;
+ vector<string *> *plugin_objects = scanner (ARDOUR::lv2_bundled_search_path().to_string(), lv2_filter, 0, true, true);
+ if (plugin_objects) {
+ for ( vector<string *>::iterator x = plugin_objects->begin(); x != plugin_objects->end (); ++x) {
+#ifdef WINDOWS
+ string uri = "file:///" + **x + "/";
+#else
+ string uri = "file://" + **x + "/";
+#endif
+ LilvNode *node = lilv_new_uri(world, uri.c_str());
+ lilv_world_load_bundle(world, node);
+ lilv_node_free(node);
+ }
+ }
+ delete (plugin_objects);
+
+ _bundle_checked = true;
+ }
+}
+
LV2PluginInfo::LV2PluginInfo (const void* c_plugin)
: _c_plugin(c_plugin)
{
@@ -2013,6 +2026,8 @@ LV2PluginInfo::load(Session& session)
PluginInfoList*
LV2PluginInfo::discover()
{
+ _world.load_bundled_plugins();
+
PluginInfoList* plugs = new PluginInfoList;
const LilvPlugins* plugins = lilv_world_get_all_plugins(_world.world);