diff options
author | David Robillard <d@drobilla.net> | 2009-12-19 21:37:50 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-12-19 21:37:50 +0000 |
commit | 19045ab92aa7e996971584a0dc8780d1d58b498b (patch) | |
tree | 619c73deb7fd64ce31c5167490d1ae186dbb2695 /src/module/Module.cpp | |
parent | 4613a2e15f1122ecf6830171de0ab18dc22fefff (diff) | |
download | ingen-19045ab92aa7e996971584a0dc8780d1d58b498b.tar.gz ingen-19045ab92aa7e996971584a0dc8780d1d58b498b.tar.bz2 ingen-19045ab92aa7e996971584a0dc8780d1d58b498b.zip |
New ingen module (library, not e.g. LV2 plugin) design.
Much cleaner interface and general usage of Ingen as a library.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2314 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/module/Module.cpp')
-rw-r--r-- | src/module/Module.cpp | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/src/module/Module.cpp b/src/module/Module.cpp deleted file mode 100644 index 2e2c71a7..00000000 --- a/src/module/Module.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/* This file is part of Ingen. - * Copyright (C) 2007-2009 Dave Robillard <http://drobilla.net> - * - * Ingen is free software; you can redistribute it and/or modify it under the - * terms of the GNU General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) 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 General Public License for details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include <string> -#include <sstream> -#include <iostream> -#include <glibmm/module.h> -#include <glibmm/miscutils.h> -#include <glibmm/fileutils.h> -#include "ingen-config.h" -#include "raul/SharedPtr.hpp" -#include "shared/runtime_paths.hpp" - -using namespace std; - -namespace Ingen { -namespace Shared { - - -/** Load a dynamic module from the default path. - * - * This will check in the directories specified in the environment variable - * INGEN_MODULE_PATH (typical colon delimited format), then the default module - * installation directory (ie /usr/local/lib/ingen), in that order. - * - * \param name The base name of the module, e.g. "ingen_serialisation" - */ -SharedPtr<Glib::Module> -load_module(const string& name) -{ - Glib::Module* module = NULL; - - // Search INGEN_MODULE_PATH first - bool module_path_found; - string module_path = Glib::getenv("INGEN_MODULE_PATH", module_path_found); - if (module_path_found) { - string dir; - istringstream iss(module_path); - while (getline(iss, dir, ':')) { - 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); - if (*module) { - cerr << "[Module] Loaded \"" << name << "\" from " << filename << endl; - return SharedPtr<Glib::Module>(module); - } else { - delete module; - cerr << Glib::Module::get_last_error() << endl; - } - } - } - } - - // Try default directory if not found - module = new Glib::Module( - Shared::module_path(name), - Glib::MODULE_BIND_LAZY); - - if (*module) { - cerr << "[Module] Loaded \"" << name << "\" from " << INGEN_MODULE_DIR << endl; - return SharedPtr<Glib::Module>(module); - } else if (!module_path_found) { - cerr << "[Module] Unable to find " << name - << " (" << Glib::Module::get_last_error() << ")" << endl; - return SharedPtr<Glib::Module>(); - } else { - cerr << "[Module] Unable to load " << name << " from " << module_path - << " (" << Glib::Module::get_last_error() << ")" << endl; - cerr << "Is Ingen installed? Use ./ingen.dev to run from the source tree." << endl; - return SharedPtr<Glib::Module>(); - } -} - - -} // namespace Shared -} // namespace Ingen - |