diff options
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/LV2Plugin.cpp | 32 | ||||
-rw-r--r-- | src/server/LV2Plugin.hpp | 2 | ||||
-rw-r--r-- | src/server/PluginImpl.cpp | 48 | ||||
-rw-r--r-- | src/server/PluginImpl.hpp | 23 | ||||
-rw-r--r-- | src/server/wscript | 1 |
5 files changed, 11 insertions, 95 deletions
diff --git a/src/server/LV2Plugin.cpp b/src/server/LV2Plugin.cpp index 4998e821..d05690b9 100644 --- a/src/server/LV2Plugin.cpp +++ b/src/server/LV2Plugin.cpp @@ -68,18 +68,15 @@ LV2Plugin::instantiate(BufferFactory& bufs, PatchImpl* parent, Engine& engine) { - const SampleCount srate = engine.driver()->sample_rate(); + LV2Node* n = new LV2Node( + this, name, polyphonic, parent, engine.driver()->sample_rate()); - load(); // FIXME: unload at some point - - LV2Node* n = new LV2Node(this, name, polyphonic, parent, srate); - - if ( ! n->instantiate(bufs) ) { + if (!n->instantiate(bufs)) { delete n; - n = NULL; + return NULL; + } else { + return n; } - - return n; } void @@ -88,22 +85,5 @@ LV2Plugin::lilv_plugin(const LilvPlugin* p) _lilv_plugin = p; } -const std::string& -LV2Plugin::library_path() const -{ - static const std::string empty_string; - if (_library_path.empty()) { - const LilvNode* n = lilv_plugin_get_library_uri(_lilv_plugin); - if (n) { - _library_path = lilv_uri_to_path(lilv_node_as_uri(n)); - } else { - Raul::warn << uri() << " has no library path" << std::endl; - return empty_string; - } - } - - return _library_path; -} - } // namespace Server } // namespace Ingen diff --git a/src/server/LV2Plugin.hpp b/src/server/LV2Plugin.hpp index b9f411ad..71f292b7 100644 --- a/src/server/LV2Plugin.hpp +++ b/src/server/LV2Plugin.hpp @@ -52,8 +52,6 @@ public: SharedPtr<LV2Info> lv2_info() const { return _lv2_info; } - const std::string& library_path() const; - const LilvPlugin* lilv_plugin() const { return _lilv_plugin; } void lilv_plugin(const LilvPlugin* p); diff --git a/src/server/PluginImpl.cpp b/src/server/PluginImpl.cpp deleted file mode 100644 index cec70c06..00000000 --- a/src/server/PluginImpl.cpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - This file is part of Ingen. - Copyright 2007-2012 David Robillard <http://drobilla.net/> - - Ingen is free software: you can redistribute it and/or modify it under the - terms of the GNU Affero General Public License as published by the Free - Software Foundation, either version 3 of the License, or any later version. - - Ingen is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU Affero General Public License for details. - - You should have received a copy of the GNU Affero General Public License - along with Ingen. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include "raul/log.hpp" -#include "PluginImpl.hpp" - -using namespace std; - -namespace Ingen { -namespace Server { - -void -PluginImpl::load() -{ - if (!_module) { - Raul::debug << "Loading plugin library " << _library_path << endl; - _module = new Glib::Module(_library_path, Glib::MODULE_BIND_LOCAL); - if (!(*_module)) - delete _module; - } -} - -void -PluginImpl::unload() -{ - if (_module) { - Raul::debug << "Unloading plugin library " << _library_path << endl; - delete _module; - _module = NULL; - } -} - -} // namespace Server -} // namespace Ingen - diff --git a/src/server/PluginImpl.hpp b/src/server/PluginImpl.hpp index a948fe06..7ad7193c 100644 --- a/src/server/PluginImpl.hpp +++ b/src/server/PluginImpl.hpp @@ -21,7 +21,6 @@ #include <string> #include <boost/utility.hpp> -#include <glibmm/module.h> #include "ingen/Plugin.hpp" #include "ingen/shared/ResourceImpl.hpp" @@ -47,13 +46,10 @@ class PluginImpl : public Plugin { public: PluginImpl(Ingen::Shared::URIs& uris, - Type type, - const std::string& uri, - const std::string library_path = "") + Type type, + const std::string& uri) : ResourceImpl(uris, uri) , _type(type) - , _library_path(library_path) - , _module(NULL) {} virtual NodeImpl* instantiate(BufferFactory& bufs, @@ -64,20 +60,11 @@ public: virtual const std::string symbol() const = 0; - virtual const std::string& library_path() const { return _library_path; } - - void load(); - void unload(); - - Plugin::Type type() const { return _type; } - void type(Plugin::Type t) { _type = t; } - Glib::Module* module() const { return _module; } - void module(Glib::Module* module) { _module = module; } + Plugin::Type type() const { return _type; } + void type(Plugin::Type t) { _type = t; } protected: - Plugin::Type _type; - mutable std::string _library_path; - Glib::Module* _module; + Plugin::Type _type; }; } // namespace Server diff --git a/src/server/wscript b/src/server/wscript index 986cc76a..4cb61be5 100644 --- a/src/server/wscript +++ b/src/server/wscript @@ -26,7 +26,6 @@ def build(bld): Notification.cpp OutputPort.cpp PatchImpl.cpp - PluginImpl.cpp PortImpl.cpp PostProcessor.cpp PreProcessor.cpp |