This commit is contained in:
Paul Davis 2013-07-15 15:04:01 -04:00
commit 0c641f6847
2 changed files with 50 additions and 35 deletions

View File

@ -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\
"));
"), VERSIONSTRING));
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"));
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);
}

View File

@ -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);