summaryrefslogtreecommitdiffstats
path: root/src/libs/module
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-07-31 23:17:02 +0000
committerDavid Robillard <d@drobilla.net>2007-07-31 23:17:02 +0000
commit22395ab7d817dec53e2c2fff07de6d88db70492e (patch)
treee1b4d749e96bfe31f1ba545ad979ca4bbe8807c5 /src/libs/module
parent012890277d8c3124bc8dd1df20b8e016c8d6d811 (diff)
downloadingen-22395ab7d817dec53e2c2fff07de6d88db70492e.tar.gz
ingen-22395ab7d817dec53e2c2fff07de6d88db70492e.tar.bz2
ingen-22395ab7d817dec53e2c2fff07de6d88db70492e.zip
Functional engine Python bindings (e.g. ingen -e -r patchomatic.py).
Rename window nitpick fix from Andrew Greenwood. git-svn-id: http://svn.drobilla.net/lad/ingen@663 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/module')
-rw-r--r--src/libs/module/Module.cpp5
-rw-r--r--src/libs/module/module.cpp18
-rw-r--r--src/libs/module/module.h9
3 files changed, 21 insertions, 11 deletions
diff --git a/src/libs/module/Module.cpp b/src/libs/module/Module.cpp
index 9aacd0cc..e5a137e7 100644
--- a/src/libs/module/Module.cpp
+++ b/src/libs/module/Module.cpp
@@ -56,7 +56,7 @@ load_module(const string& name)
string filename = Glib::Module::build_path(dir, name);
if (Glib::file_test(filename, Glib::FILE_TEST_EXISTS)) {
- module = new Glib::Module(filename, Glib::MODULE_BIND_LAZY);
+ module = new Glib::Module(filename);
if (*module) {
return SharedPtr<Glib::Module>(module);
@@ -70,8 +70,7 @@ load_module(const string& name)
// Try default directory if not found
module = new Glib::Module(
- Glib::Module::build_path(INGEN_MODULE_DIR, name),
- Glib::MODULE_BIND_LAZY);
+ Glib::Module::build_path(INGEN_MODULE_DIR, name));
if (*module) {
return SharedPtr<Glib::Module>(module);
diff --git a/src/libs/module/module.cpp b/src/libs/module/module.cpp
index 68ddc2b5..ab73c09e 100644
--- a/src/libs/module/module.cpp
+++ b/src/libs/module/module.cpp
@@ -15,6 +15,7 @@
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <iostream>
#include "module.h"
#include "World.hpp"
@@ -23,15 +24,25 @@
#include <slv2/slv2.h>
#endif
+using namespace std;
+
namespace Ingen {
namespace Shared {
-World* world = NULL;
+static World* world = NULL;
World*
get_world()
{
+ static World* world = NULL;
+
+ if (!&world) {
+ cerr << "ERROR: Ingen::Shared::world undefined." << endl;
+ return NULL;
+ }
+
if (!world) {
+ cerr << "NEW WORLD\n" << endl;
world = new World();
world->rdf_world = new Raul::RDF::World();
#ifdef HAVE_SLV2
@@ -46,6 +57,11 @@ get_world()
void
destroy_world()
{
+ if (!&world) {
+ cerr << "ERROR: Ingen::Shared::world undefined." << endl;
+ return;
+ }
+
if (world) {
#ifdef HAVE_SLV2
slv2_world_free(world->slv2_world);
diff --git a/src/libs/module/module.h b/src/libs/module/module.h
index 48bdeedf..4fe0d4cc 100644
--- a/src/libs/module/module.h
+++ b/src/libs/module/module.h
@@ -25,13 +25,8 @@
namespace Ingen {
namespace Shared {
-extern "C" {
-
- World* get_world();
- void destroy_world();
-
-}
-
+World* get_world();
+void destroy_world();
} // namesace Shared
} // namespace Ingen