diff options
author | David Robillard <d@drobilla.net> | 2006-06-10 01:52:02 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2006-06-10 01:52:02 +0000 |
commit | 98fe0e7056e6697396249531785d3899f94d79be (patch) | |
tree | 233319008d4bfb6c8bdc546bdf4a81b87ecf7f3a /src/engine/NodeFactory.h | |
parent | 6c8eaee73b0ea66216744f49b452e22e26fe83e1 (diff) | |
download | ingen-98fe0e7056e6697396249531785d3899f94d79be.tar.gz ingen-98fe0e7056e6697396249531785d3899f94d79be.tar.bz2 ingen-98fe0e7056e6697396249531785d3899f94d79be.zip |
More juggling
git-svn-id: http://svn.drobilla.net/lad/grauph@15 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/NodeFactory.h')
-rw-r--r-- | src/engine/NodeFactory.h | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/src/engine/NodeFactory.h b/src/engine/NodeFactory.h deleted file mode 100644 index ed6a35dc..00000000 --- a/src/engine/NodeFactory.h +++ /dev/null @@ -1,93 +0,0 @@ -/* This file is part of Om. Copyright (C) 2006 Dave Robillard. - * - * Om 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. - * - * Om 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., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - - -#ifndef NODEFACTORY_H -#define NODEFACTORY_H - -#include "config.h" -#include <list> -#include <string> -#include <ladspa.h> -#include <pthread.h> - -using std::string; using std::list; - -namespace Om { - -class Node; -class PortInfo; -class Patch; -class PluginLibrary; -class Plugin; - - -/** Loads plugins and creates Nodes from them. - * - * NodeFactory's responsibility is to get enough information to allow the - * loading of a plugin possible (ie finding/opening shared libraries etc) - * - * The constructor of various Node types (ie LADSPAPlugin) are responsible - * for actually creating a Node instance of the plugin. - * - * \ingroup engine - */ -class NodeFactory -{ -public: - NodeFactory(); - ~NodeFactory(); - - void load_plugins(); - Node* load_plugin(const Plugin* info, const string& name, size_t poly, Patch* parent); - - const list<Plugin*>& plugins() { return m_plugins; } - - void lock_plugin_list() { pthread_mutex_lock(&m_plugin_list_mutex); } - void unlock_plugin_list() { pthread_mutex_unlock(&m_plugin_list_mutex); } - -private: -#ifdef HAVE_LADSPA - void load_ladspa_plugins(); - Node* load_ladspa_plugin(const string& plugin_uri, const string& name, size_t poly, Patch* parent); -#endif - -#ifdef HAVE_SLV2 - void load_lv2_plugins(); - Node* load_lv2_plugin(const string& plugin_uri, const string& name, size_t poly, Patch* parent); -#endif - -#ifdef HAVE_DSSI - void load_dssi_plugins(); - Node* load_dssi_plugin(const string& plugin_uri, const string& name, size_t poly, Patch* parent); -#endif - - Node* load_internal_plugin(const string& plug_label, const string& name, size_t poly, Patch* parent); - - list<PluginLibrary*> m_libraries; - list<Plugin*> m_internal_plugins; - list<Plugin*> m_plugins; - - /** Used to protect the list while load_plugins is building it. */ - pthread_mutex_t m_plugin_list_mutex; - - bool m_has_loaded; -}; - - -} // namespace Om - -#endif // NODEFACTORY_H |