summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/PluginImpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/engine/PluginImpl.cpp')
-rw-r--r--src/libs/engine/PluginImpl.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/libs/engine/PluginImpl.cpp b/src/libs/engine/PluginImpl.cpp
index e8b090ef..dfff1031 100644
--- a/src/libs/engine/PluginImpl.cpp
+++ b/src/libs/engine/PluginImpl.cpp
@@ -15,14 +15,41 @@
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <iostream>
#include "PluginImpl.hpp"
#include "MidiNoteNode.hpp"
#include "MidiTriggerNode.hpp"
#include "MidiControlNode.hpp"
#include "TransportNode.hpp"
+using namespace std;
+
namespace Ingen {
+
+void
+PluginImpl::load()
+{
+ if (!_module) {
+ cerr << "Loading " << _lib_path << endl;
+ _module = new Glib::Module(_lib_path, Glib::MODULE_BIND_LOCAL);
+ if (!(*_module))
+ delete _module;
+ }
+}
+
+
+void
+PluginImpl::unload()
+{
+ if (_module) {
+ cerr << "Unloading " << _lib_path << endl;
+ delete _module;
+ _module = NULL;
+ }
+}
+
+
NodeImpl*
PluginImpl::instantiate(const string& name, bool polyphonic, Ingen::PatchImpl* parent, SampleRate srate, size_t buffer_size)
{