summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/common/interface/Plugin.hpp2
-rw-r--r--src/libs/client/DeprecatedLoader.cpp52
-rw-r--r--src/libs/client/NodeModel.cpp16
-rw-r--r--src/libs/client/NodeModel.hpp3
-rw-r--r--src/libs/client/PluginModel.hpp3
-rw-r--r--src/libs/engine/DSSINode.cpp361
-rw-r--r--src/libs/engine/DSSINode.hpp104
-rw-r--r--src/libs/engine/LADSPANode.cpp1
-rw-r--r--src/libs/engine/Makefile.am14
-rw-r--r--src/libs/engine/NodeFactory.cpp176
-rw-r--r--src/libs/engine/NodeFactory.hpp5
-rw-r--r--src/libs/engine/OSCClientSender.cpp10
-rw-r--r--src/libs/engine/OSCEngineReceiver.cpp44
-rw-r--r--src/libs/engine/OSCEngineReceiver.hpp4
-rw-r--r--src/libs/engine/PluginImpl.hpp12
-rw-r--r--src/libs/engine/QueuedEngineInterface.cpp5
-rw-r--r--src/libs/engine/events.hpp7
-rw-r--r--src/libs/engine/events/DSSIConfigureEvent.cpp76
-rw-r--r--src/libs/engine/events/DSSIConfigureEvent.hpp50
-rw-r--r--src/libs/engine/events/DSSIControlEvent.cpp70
-rw-r--r--src/libs/engine/events/DSSIControlEvent.hpp52
-rw-r--r--src/libs/engine/events/DSSIProgramEvent.cpp79
-rw-r--r--src/libs/engine/events/DSSIProgramEvent.hpp50
-rw-r--r--src/libs/engine/events/DSSIUpdateEvent.cpp80
-rw-r--r--src/libs/engine/events/DSSIUpdateEvent.hpp55
-rw-r--r--src/libs/engine/events/Makefile.am8
-rw-r--r--src/libs/gui/DSSIController.cpp280
-rw-r--r--src/libs/gui/DSSIController.hpp77
-rw-r--r--src/libs/gui/DSSIModule.cpp43
-rw-r--r--src/libs/gui/DSSIModule.hpp46
-rw-r--r--src/libs/gui/LoadPluginWindow.cpp2
-rw-r--r--src/libs/gui/Makefile.am4
-rw-r--r--src/libs/gui/NodeModule.hpp3
-rw-r--r--src/libs/gui/UploadPatchWindow.hpp1
34 files changed, 14 insertions, 1781 deletions
diff --git a/src/common/interface/Plugin.hpp b/src/common/interface/Plugin.hpp
index 7fc7468b..d9665662 100644
--- a/src/common/interface/Plugin.hpp
+++ b/src/common/interface/Plugin.hpp
@@ -27,7 +27,7 @@ namespace Shared {
class Plugin
{
public:
- enum Type { LV2, LADSPA, DSSI, Internal, Patch };
+ enum Type { LV2, LADSPA, Internal, Patch };
virtual Type type() const = 0;
virtual const std::string& uri() const = 0;
diff --git a/src/libs/client/DeprecatedLoader.cpp b/src/libs/client/DeprecatedLoader.cpp
index 96305884..4913b038 100644
--- a/src/libs/client/DeprecatedLoader.cpp
+++ b/src/libs/client/DeprecatedLoader.cpp
@@ -355,58 +355,6 @@ DeprecatedLoader::load_node(const Path& parent, xmlDocPtr doc, const xmlNodePtr
nm->add_port(pm);
#endif
- // DSSI hacks. Stored in the patch files as special elements, but sent to
- // the engine as normal metadata with specially formatted key/values. Not
- // sure if this is the best way to go about this, but it's the least damaging
- // right now
- } else if ((!xmlStrcmp(cur->name, (const xmlChar*)"dssi-program"))) {
- cerr << "FIXME: load dssi program\n";
-#if 0
- xmlNodePtr child = cur->xmlChildrenNode;
-
- string bank;
- string program;
-
- while (child != NULL) {
- key = xmlNodeListGetString(doc, child->xmlChildrenNode, 1);
-
- if ((!xmlStrcmp(child->name, (const xmlChar*)"bank"))) {
- bank = (char*)key;
- } else if ((!xmlStrcmp(child->name, (const xmlChar*)"program"))) {
- program = (char*)key;
- }
-
- xmlFree(key);
- key = NULL; // Avoid a (possible?) double free
- child = child->next;
- }
- nm->set_metadata("dssi-program", Atom(bank.append("/").append(program).c_str()));
-#endif
-
- } else if ((!xmlStrcmp(cur->name, (const xmlChar*)"dssi-configure"))) {
- cerr << "FIXME: load dssi configure\n";
-#if 0
- xmlNodePtr child = cur->xmlChildrenNode;
-
- string dssi_key;
- string dssi_value;
-
- while (child != NULL) {
- key = xmlNodeListGetString(doc, child->xmlChildrenNode, 1);
-
- if ((!xmlStrcmp(child->name, (const xmlChar*)"key"))) {
- dssi_key = (char*)key;
- } else if ((!xmlStrcmp(child->name, (const xmlChar*)"value"))) {
- dssi_value = (char*)key;
- }
-
- xmlFree(key);
- key = NULL; // Avoid a (possible?) double free
-
- child = child->next;
- }
- nm->set_metadata(string("dssi-configure--").append(dssi_key), Atom(dssi_value.c_str()));
-#endif
} else { // Don't know what this tag is, add it as metadata
if (key)
add_metadata(initial_data, (const char*)cur->name, (const char*)key);
diff --git a/src/libs/client/NodeModel.cpp b/src/libs/client/NodeModel.cpp
index 2816c7fa..c3348f89 100644
--- a/src/libs/client/NodeModel.cpp
+++ b/src/libs/client/NodeModel.cpp
@@ -137,22 +137,6 @@ NodeModel::get_port(const string& port_name) const
}
-void
-NodeModel::add_program(int bank, int program, const string& name)
-{
- _banks[bank][program] = name;
-}
-
-
-void
-NodeModel::remove_program(int bank, int program)
-{
- _banks[bank].erase(program);
- if (_banks[bank].size() == 0)
- _banks.erase(bank);
-}
-
-
void
NodeModel::port_value_range(SharedPtr<PortModel> port, float& min, float& max)
{
diff --git a/src/libs/client/NodeModel.hpp b/src/libs/client/NodeModel.hpp
index 080d8f4c..1df7f35e 100644
--- a/src/libs/client/NodeModel.hpp
+++ b/src/libs/client/NodeModel.hpp
@@ -51,8 +51,6 @@ public:
SharedPtr<PortModel> get_port(const string& port_name) const;
- const Table<int,Table<int,string> >& get_programs() const { return _banks; }
-
const string& plugin_uri() const { return _plugin_uri; }
SharedPtr<PluginModel> plugin() const { return _plugin; }
uint32_t num_ports() const { return _ports.size(); }
@@ -84,7 +82,6 @@ protected:
PortModelList _ports; ///< List of ports (not a Table to preserve order)
string _plugin_uri; ///< Plugin URI (if PluginModel is unknown)
SharedPtr<PluginModel> _plugin; ///< The plugin this node is an instance of
- Table<int, Table<int, string> > _banks; ///< DSSI banks
};
diff --git a/src/libs/client/PluginModel.hpp b/src/libs/client/PluginModel.hpp
index f3d0a329..67a0295f 100644
--- a/src/libs/client/PluginModel.hpp
+++ b/src/libs/client/PluginModel.hpp
@@ -65,7 +65,6 @@ public:
/*const char* const type_string() const {
if (_type == LV2) return "LV2";
else if (_type == LADSPA) return "LADSPA";
- else if (_type == DSSI) return "DSSI";
else if (_type == Internal) return "Internal";
else if (_type == Patch) return "Patch";
else return "";
@@ -74,7 +73,6 @@ public:
const char* const type_uri() const {
if (_type == LV2) return "ingen:LV2";
else if (_type == LADSPA) return "ingen:LADSPA";
- else if (_type == DSSI) return "ingen:DSSI";
else if (_type == Internal) return "ingen:Internal";
else if (_type == Patch) return "ingen:Patch";
else return "";
@@ -84,7 +82,6 @@ public:
void set_type(const string& type_string) {
if (type_string == "LV2") _type = LV2;
else if (type_string == "LADSPA") _type = LADSPA;
- else if (type_string == "DSSI") _type = DSSI;
else if (type_string == "Internal") _type = Internal;
else if (type_string == "Patch") _type = Patch;
}
diff --git a/src/libs/engine/DSSINode.cpp b/src/libs/engine/DSSINode.cpp
deleted file mode 100644
index 33f8b86c..00000000
--- a/src/libs/engine/DSSINode.cpp
+++ /dev/null
@@ -1,361 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 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 <map>
-//#include <set>
-#include "DSSINode.hpp"
-#include "ClientBroadcaster.hpp"
-#include "interface/ClientInterface.hpp"
-#include "InputPort.hpp"
-#include "types.hpp"
-#include "AudioBuffer.hpp"
-#include "ProcessContext.hpp"
-
-using namespace std;
-
-namespace Ingen {
-
-
-DSSINode::DSSINode(const PluginImpl* plugin, const string& name, bool polyphonic, Patch* parent, DSSI_Descriptor* descriptor, SampleRate srate, size_t buffer_size)
-: LADSPANode(plugin, name, 1, parent, descriptor->LADSPA_Plugin, srate, buffer_size),
- _dssi_descriptor(descriptor),
- _ui_addr(NULL),
- _bank(-1),
- _program(-1),
- _midi_in_port(NULL),
- _midi_in_buffer(NULL),
- _alsa_events(new snd_seq_event_t[_buffer_size]),
- _alsa_encoder(NULL)
-{
- snd_midi_event_new(3, &_alsa_encoder);
-}
-
-
-DSSINode::~DSSINode()
-{
- if (_ui_addr != NULL)
- lo_address_free(_ui_addr);
-
- snd_midi_event_free(_alsa_encoder);
- delete [] _alsa_events;
-}
-
-
-/** This needs to be overridden here because LADSPANode::instantiate()
- * allocates the port array, and we want to add the MIDI input port to that
- * array.
- */
-bool
-DSSINode::instantiate()
-{
- assert(!_ports);
-
- if (has_midi_input()) {
- _ports = new Raul::Array<Port*>(_descriptor->PortCount + 1);
- _midi_in_port = new InputPort(this, "MIDIIn", _ports->size()-1, 1, DataType::MIDI, _buffer_size);
- _ports->at(_ports->size()-1) = _midi_in_port;
- }
-
- // LADSPANode::instantiate checks if _ports is already allocated
- if (!LADSPANode::instantiate()) {
- delete _ports;
- return false;
- }
-
- return true;
-}
-
-
-void
-DSSINode::activate()
-{
- LADSPANode::activate();
-
- update_programs(false);
- set_default_program();
-
- snd_midi_event_reset_encode(_alsa_encoder);
-}
-
-
-void
-DSSINode::set_ui_url(const string& url)
-{
- if (_ui_addr != NULL)
- lo_address_free(_ui_addr);
-
- _ui_url = url;
- _ui_addr = lo_address_new_from_url(url.c_str());
- char* base_path = lo_url_get_path(url.c_str());
- _ui_base_path = base_path;
- free(base_path);
- cerr << "Set UI base path to " << _ui_base_path << endl;
-}
-
-
-void
-DSSINode::set_control(uint32_t port_num, Sample val)
-{
- assert(port_num < _descriptor->PortCount);
- Port* port = _ports->at(port_num);
- assert(port->type() == DataType::FLOAT);
- ((AudioBuffer*)port->buffer(0))->set(val, 0);
-}
-
-
-void
-DSSINode::configure(const string& key, const string& val)
-{
- _dssi_descriptor->configure(_instances[0], key.c_str(), val.c_str());
- _configures[key] = val;
- update_programs(true);
-}
-
-
-void
-DSSINode::program(int bank, int program)
-{
- if (_dssi_descriptor->select_program)
- _dssi_descriptor->select_program(_instances[0], bank, program);
-
- _bank = bank;
- _program = program;
-}
-
-
-void
-DSSINode::convert_events(SampleCount nframes)
-{
- assert(has_midi_input());
-
- _encoded_events = 0;
- MidiBuffer& buffer = *_midi_in_buffer;
-
- if (_midi_in_buffer == 0)
- return;
-
- buffer.prepare_read(nframes);
- double timestamp;
- uint32_t size;
- unsigned char* data;
- while (buffer.get_event(&timestamp, &size, &data) < nframes &&
- _encoded_events < _buffer_size) {
- snd_midi_event_encode(_alsa_encoder, data, size,
- &_alsa_events[_encoded_events]);
- _alsa_events[_encoded_events].time.tick =
- (snd_seq_tick_time_t)timestamp;
- if (_alsa_events[_encoded_events].type != SND_SEQ_EVENT_NONE)
- ++_encoded_events;
- buffer.increment();
- }
-}
-
-
-bool
-DSSINode::has_midi_input() const
-{
- return (_dssi_descriptor->run_synth || _dssi_descriptor->run_multiple_synths);
-}
-
-
-void
-DSSINode::process(ProcessContext& context)
-{
- NodeBase::pre_process(context);
-
- if (_dssi_descriptor->run_synth) {
- convert_events(context.nframes());
- _dssi_descriptor->run_synth(_instances[0], context.nframes(),
- _alsa_events, _encoded_events);
- } else if (_dssi_descriptor->run_multiple_synths) {
- convert_events(context.nframes());
- // I hate this stupid function
- snd_seq_event_t* events[1] = { _alsa_events };
- long unsigned events_sizes[1] = { _encoded_events };
- _dssi_descriptor->run_multiple_synths(1, _instances, context.nframes(),
- events, events_sizes);
- } else {
- LADSPANode::process(context);
- }
-
- NodeBase::post_process(context);
-}
-
-
-void
-DSSINode::set_port_buffer(uint32_t voice, uint32_t port_num, Buffer* buf)
-{
- assert(voice < _polyphony);
-
- // Could be a MIDI port after this
- if (port_num < _descriptor->PortCount) {
- AudioBuffer* audio_buffer = dynamic_cast<AudioBuffer*>(buf);
- assert(audio_buffer);
- _descriptor->connect_port(_instances[voice], port_num,
- audio_buffer->data());
- }
-
- else if (port_num == _descriptor->PortCount && has_midi_input()) {
- MidiBuffer* midi_buffer = dynamic_cast<MidiBuffer*>(buf);
- assert(midi_buffer);
- _midi_in_buffer = midi_buffer;
- }
-}
-
-
-void
-DSSINode::send_control(int port_num, float value)
-{
- string path = _ui_base_path + "/control";
- lo_send(_ui_addr, path.c_str(), "if", port_num, value);
-}
-
-
-void
-DSSINode::send_program(int bank, int value)
-{
- string path = _ui_base_path + "/program";
- lo_send(_ui_addr, path.c_str(), "ii", bank, value);
-}
-
-
-void
-DSSINode::send_configure(const string& key, const string& val)
-{
- string path = _ui_base_path + "/configure";
- lo_send(_ui_addr, path.c_str(), "ss", key.c_str(), val.c_str());
-}
-
-
-void
-DSSINode::send_show()
-{
- string path = _ui_base_path + "/show";
- lo_send(_ui_addr, path.c_str(), NULL);
-}
-
-
-void
-DSSINode::send_hide()
-{
- string path = _ui_base_path + "/hide";
- lo_send(_ui_addr, path.c_str(), NULL);
-}
-
-
-void
-DSSINode::send_quit()
-{
- string path = _ui_base_path + "/quit";
- lo_send(_ui_addr, path.c_str(), NULL);
-}
-
-
-void
-DSSINode::send_update()
-{
- // send "configure"s
- for (map<string, string>::iterator i = _configures.begin(); i != _configures.end(); ++i)
- send_configure((*i).first, (*i).second);
-
- // send "program"
- send_program(_bank, _program);
-
- // send "control"s
- for (size_t i=0; i < _ports->size(); ++i)
- if (_ports->at(i)->type() == DataType::FLOAT && _ports->at(i)->buffer_size() == 1)
- send_control(_ports->at(i)->num(), ((AudioBuffer*)_ports->at(i)->buffer(0))->value_at(0));
-
- // send "show" FIXME: not to spec
- send_show();
-}
-
-
-bool
-DSSINode::update_programs(bool send_events)
-{
-#if 0
- // remember all old banks and programs
- set<pair<int, int> > to_be_deleted;
- map<int, Bank>::const_iterator iter;
- Bank::const_iterator iter2;
- for (iter = _banks.begin(); iter != _banks.end(); ++iter) {
- for (iter2 = iter->second.begin(); iter2 != iter->second.end(); ++iter2) {
- to_be_deleted.insert(make_pair(iter->first, iter2->first));
- }
- }
-
- // iterate over all programs
- if (_dssi_descriptor->get_program) {
- for (int i = 0; true; ++i) {
- const DSSI_Program_Descriptor* descriptor =
- _dssi_descriptor->get_program(_instances[0], i);
- if (!descriptor)
- break;
-
- iter = _banks.find(descriptor->Bank);
- if (iter == _banks.end() ||
- iter->second.find(descriptor->Program) == iter->second.end() ||
- iter->second.find(descriptor->Program)->second != descriptor->Name) {
- _banks[descriptor->Bank][descriptor->Program] = descriptor->Name;
- if (send_events) {
- _engine.broadcaster()->send_program_add(path(), descriptor->Bank,
- descriptor->Program,
- descriptor->Name);
- }
- to_be_deleted.erase(make_pair(descriptor->Bank, descriptor->Program));
- }
- }
- }
-
- // remove programs that has disappeared from the plugin
- set<pair<int, int> >::const_iterator set_iter;
- for (set_iter = to_be_deleted.begin();
- set_iter != to_be_deleted.end(); ++set_iter) {
- _banks[set_iter->first].erase(set_iter->second);
- if (send_events)
- _engine.broadcaster()->send_program_remove(path(), set_iter->first, set_iter->second);
- if (_banks[set_iter->first].size() == 0)
- _banks.erase(set_iter->first);
- }
-#endif
- cerr << "FIXME: DSSI programs broken!" << endl;
-
- return true;
-}
-
-
-void
-DSSINode::set_default_program()
-{
- map<int, Bank>::const_iterator iter = _banks.begin();
- if (iter != _banks.end()) {
- Bank::const_iterator iter2 = iter->second.begin();
- if (iter2 != iter->second.end())
- program(iter->first, iter2->first);
- }
-}
-
-
-const map<int, DSSINode::Bank>&
-DSSINode::get_programs() const
-{
- return _banks;
-}
-
-
-} // namespace Ingen
diff --git a/src/libs/engine/DSSINode.hpp b/src/libs/engine/DSSINode.hpp
deleted file mode 100644
index 38d7ea3d..00000000
--- a/src/libs/engine/DSSINode.hpp
+++ /dev/null
@@ -1,104 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 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
- */
-
-#ifndef DSSINODE_H
-#define DSSINODE_H
-
-#include <alsa/asoundlib.h>
-#include <dssi.h>
-#include <lo/lo.h>
-#include "LADSPANode.hpp"
-#include "MidiBuffer.hpp"
-
-namespace Ingen {
-
-class InputPort;
-namespace Shared {
- class ClientInterface;
-} using Shared::ClientInterface;
-
-
-/** An instance of a DSSI plugin.
- */
-class DSSINode : public LADSPANode
-{
-public:
-
- typedef std::map<int, string> Bank;
-
- DSSINode(const PluginImpl* plugin, const string& name, bool polyphonic, Patch* parent, DSSI_Descriptor* descriptor, SampleRate srate, size_t buffer_size);
- ~DSSINode();
-
- bool instantiate();
-
- void activate();
-
- void set_ui_url(const string& url);
- void send_update();
-
- void set_control(uint32_t port_num, Sample val);
- void configure(const string& key, const string& val);
- void program(int bank, int program);
-
- void process(ProcessContext& context);
-
- void set_port_buffer(uint32_t voice, uint32_t port_num, Buffer* buf);
-
- bool update_programs(bool send_events);
- void set_default_program();
- const std::map<int, Bank>& get_programs() const;
-
-private:
- bool has_midi_input() const;
-
- // DSSI GUI messages
- void send_control(int port_num, float value);
- void send_program(int bank, int value);
- void send_configure(const std::string& key, const std::string& val);
- void send_show();
- void send_hide();
- void send_quit();
-
- // Conversion to ALSA MIDI events
- void convert_events(SampleCount nframes);
-
-
- DSSI_Descriptor* _dssi_descriptor;
-
- std::string _ui_url;
- std::string _ui_base_path;
- lo_address _ui_addr;
-
- // Current values
- int _bank;
- int _program;
- std::map<std::string, std::string> _configures;
- std::map<int, Bank> _banks;
-
- InputPort* _midi_in_port;
- MidiBuffer* _midi_in_buffer;
- snd_seq_event_t* _alsa_events;
- unsigned long _encoded_events;
- snd_midi_event_t* _alsa_encoder;
-};
-
-
-} // namespace Ingen
-
-
-#endif // DSSINODE_H
-
diff --git a/src/libs/engine/LADSPANode.cpp b/src/libs/engine/LADSPANode.cpp
index 6ddead2b..f7b32072 100644
--- a/src/libs/engine/LADSPANode.cpp
+++ b/src/libs/engine/LADSPANode.cpp
@@ -56,7 +56,6 @@ LADSPANode::LADSPANode(const PluginImpl* plugin, const string& path, bool polyph
bool
LADSPANode::instantiate()
{
- // Note that a DSSI plugin might tack more on to the end of this
if (!_ports)
_ports = new Raul::Array<Port*>(_descriptor->PortCount);
diff --git a/src/libs/engine/Makefile.am b/src/libs/engine/Makefile.am
index 5952a288..91d48fd7 100644
--- a/src/libs/engine/Makefile.am
+++ b/src/libs/engine/Makefile.am
@@ -178,20 +178,6 @@ libingen_engine_la_SOURCES += \
LADSPANode.cpp
endif
-if WITH_DSSI
-libingen_engine_la_SOURCES += \
- DSSINode.hpp \
- DSSINode.cpp \
- events/DSSIConfigureEvent.cpp \
- events/DSSIConfigureEvent.hpp \
- events/DSSIControlEvent.cpp \
- events/DSSIControlEvent.hpp \
- events/DSSIProgramEvent.cpp \
- events/DSSIProgramEvent.hpp \
- events/DSSIUpdateEvent.cpp \
- events/DSSIUpdateEvent.hpp
-endif
-
if WITH_LV2
libingen_engine_la_SOURCES += \
LV2Node.hpp \
diff --git a/src/libs/engine/NodeFactory.cpp b/src/libs/engine/NodeFactory.cpp
index 3bbe87ff..1e05b923 100644
--- a/src/libs/engine/NodeFactory.cpp
+++ b/src/libs/engine/NodeFactory.cpp
@@ -36,9 +36,6 @@
#ifdef HAVE_LADSPA
#include "LADSPANode.hpp"
#endif
-#ifdef HAVE_DSSI
-#include "DSSINode.hpp"
-#endif
using namespace std;
@@ -157,9 +154,6 @@ NodeFactory::load_plugins()
#ifdef HAVE_SLV2
load_lv2_plugins();
#endif
-#ifdef HAVE_DSSI
- load_dssi_plugins();
-#endif
#ifdef HAVE_LADSPA
load_ladspa_plugins();
#endif
@@ -228,11 +222,6 @@ NodeFactory::load_plugin(const PluginImpl* a_plugin,
r = load_lv2_plugin(plugin->uri(), name, polyphonic, parent, srate, buffer_size);
break;
#endif
-#ifdef HAVE_DSSI
- case Plugin::DSSI:
- r = load_dssi_plugin(plugin->uri(), name, polyphonic, parent, srate, buffer_size);
- break;
-#endif
#ifdef HAVE_LADSPA
case Plugin::LADSPA:
r = load_ladspa_plugin(plugin->uri(), name, polyphonic, parent, srate, buffer_size);
@@ -359,171 +348,6 @@ NodeFactory::load_lv2_plugin(const string& plug_uri,
#endif // HAVE_SLV2
-#ifdef HAVE_DSSI
-
-/** Loads information about all DSSI plugins into internal plugin database.
- */
-void
-NodeFactory::load_dssi_plugins()
-{
- // FIXME: too much code duplication with load_ladspa_plugin
-
- char* env_dssi_path = getenv("DSSI_PATH");
- string dssi_path;
- if (!env_dssi_path) {
- cerr << "[NodeFactory] DSSI_PATH is empty. Assuming /usr/lib/dssi:/usr/local/lib/dssi:~/.dssi" << endl;
- dssi_path = string("/usr/lib/dssi:/usr/local/lib/dssi:").append(
- getenv("HOME")).append("/.dssi");
- } else {
- dssi_path = env_dssi_path;
- }
-
- string dir;
- string full_lib_name;
-
- // Yep, this should use an sstream alright..
- while (dssi_path != "") {
- dir = dssi_path.substr(0, dssi_path.find(':'));
- if (dssi_path.find(':') != string::npos)
- dssi_path = dssi_path.substr(dssi_path.find(':')+1);
- else
- dssi_path = "";
-
- DIR* pdir = opendir(dir.c_str());
- if (pdir == NULL) {
- //cerr << "[NodeFactory] Unreadable directory in DSSI_PATH: " << dir.c_str() << endl;
- continue;
- }
-
- struct dirent* pfile;
- while ((pfile = readdir(pdir))) {
-
- DSSI_Descriptor_Function df = NULL;
- DSSI_Descriptor* descriptor = NULL;
-
- if (!strcmp(pfile->d_name, ".") || !strcmp(pfile->d_name, ".."))
- continue;
-
- full_lib_name = dir +"/"+ pfile->d_name;
-
- Glib::Module* plugin_library = library(full_lib_name);
- if (!plugin_library) {
- cerr << "WARNING: Failed to load library " << full_lib_name << endl;
- continue;
- }
-
- bool found = plugin_library->get_symbol("dssi_descriptor", (void*&)df);
- if (!found || !df) {
- // Not a DSSI plugin library
- cerr << "WARNING: Non-DSSI library found in DSSI path: " <<
- full_lib_name << endl;
- _libraries.erase(full_lib_name);
- delete plugin_library;
- continue;
- }
-
- const LADSPA_Descriptor* ld = NULL;
-
- for (unsigned long i=0; (descriptor = (DSSI_Descriptor*)df(i)) != NULL; ++i) {
- ld = descriptor->LADSPA_Plugin;
- assert(ld != NULL);
- string uri = string("dssi:") + pfile->d_name +":"+ ld->Label;
- PluginImpl* plugin = new PluginImpl(Plugin::DSSI, uri);
- assert(plugin_library != NULL);
- plugin->module(plugin_library);
- plugin->lib_path(dir + "/" + pfile->d_name);
- plugin->plug_label(ld->Label);
- plugin->name(ld->Name);
- plugin->type(Plugin::DSSI);
- plugin->id(ld->UniqueID);
-
- bool found = false;
- for (list<PluginImpl*>::const_iterator i = _plugins.begin(); i != _plugins.end(); ++i) {
- if ((*i)->uri() == plugin->uri()) {
- cerr << "Warning: Duplicate DSSI plugin (" << plugin->lib_name() << ":"
- << plugin->plug_label() << ")" << " found.\nUsing " << (*i)->lib_path()
- << " version." << endl;
- found = true;
- break;
- }
- }
- if (!found)
- _plugins.push_back(plugin);
- else
- delete plugin;
- }
- }
- closedir(pdir);
- }
-}
-
-
-/** Creates a Node by instancing a DSSI plugin.
- */
-NodeImpl*
-NodeFactory::load_dssi_plugin(const string& uri,
- const string& name,
- bool polyphonic,
- Patch* parent,
- SampleRate srate,
- size_t buffer_size)
-{
- // FIXME: awful code duplication here
-
- assert(uri != "");
- assert(name != "");
-
- DSSI_Descriptor_Function df = NULL;
- const PluginImpl* plugin = NULL;
- NodeImpl* n = NULL;
-
- // Attempt to find the lib
- list<PluginImpl*>::iterator i;
- for (i = _plugins.begin(); i != _plugins.end(); ++i) {
- plugin = (*i);
- if (plugin->uri() == uri) break;
- }
-
- assert(plugin->id() != 0);
-
- if (i == _plugins.end()) {
- cerr << "Did not find DSSI plugin " << uri << " in database." << endl;
- return NULL;
- } else {
- assert(plugin);
- if (!plugin->module()->get_symbol("dssi_descriptor", (void*&)df)) {
- cerr << "Looks like this isn't a DSSI plugin." << endl;
- return NULL;
- }
- }
-
- // Attempt to find the plugin in lib
- DSSI_Descriptor* descriptor = NULL;
- for (unsigned long i=0; (descriptor = (DSSI_Descriptor*)df(i)) != NULL; ++i) {
- if (descriptor->LADSPA_Plugin != NULL
- && descriptor->LADSPA_Plugin->UniqueID == plugin->id()) {
- break;
- }
- }
-
- if (descriptor == NULL) {
- cerr << "Could not find plugin \"" << plugin->id() << "\" in " << plugin->lib_name() << endl;
- return NULL;
- }
-
- n = new DSSINode(plugin, name, polyphonic, parent, descriptor, srate, buffer_size);
-
- bool success = ((DSSINode*)n)->instantiate();
- if (!success) {
- delete n;
- n = NULL;
- }
-
- return n;
-}
-#endif // HAVE_DSSI
-
-
#ifdef HAVE_LADSPA
/** Loads information about all LADSPA plugins into internal plugin database.
*/
diff --git a/src/libs/engine/NodeFactory.hpp b/src/libs/engine/NodeFactory.hpp
index decf59c0..47bd4993 100644
--- a/src/libs/engine/NodeFactory.hpp
+++ b/src/libs/engine/NodeFactory.hpp
@@ -76,11 +76,6 @@ private:
NodeImpl* load_lv2_plugin(const string& plugin_uri, const string& name, bool polyphonic, Patch* parent, SampleRate srate, size_t buffer_size);
#endif
-#ifdef HAVE_DSSI
- void load_dssi_plugins();
- NodeImpl* load_dssi_plugin(const string& plugin_uri, const string& name, bool polyphonic, Patch* parent, SampleRate srate, size_t buffer_size);
-#endif
-
NodeImpl* load_internal_plugin(const string& plug_label, const string& name, bool polyphonic, Patch* parent, SampleRate srate, size_t buffer_size);
Glib::Module* library(const string& path);
diff --git a/src/libs/engine/OSCClientSender.cpp b/src/libs/engine/OSCClientSender.cpp
index 56971d70..1d1a9323 100644
--- a/src/libs/engine/OSCClientSender.cpp
+++ b/src/libs/engine/OSCClientSender.cpp
@@ -184,7 +184,7 @@ OSCClientSender::num_plugins(uint32_t num)
/** \page client_osc_namespace
* <p> \b /ingen/plugin - Notification of the existance of a plugin
- * \arg \b type (string) - Type if plugin ("LADSPA", "DSSI", or "Internal")
+ * \arg \b type (string) - Type if plugin ("LADSPA", "LV2", or "Internal")
* \arg \b uri (string) - URI of the plugin (see engine namespace documentation) \n
* \arg \b lib-name (string) - Name of shared library plugin resides in (ie "cmt.so")
* \arg \b plug-label (string) - Label of the plugin (ie "dahdsr_iaoa")
@@ -302,7 +302,7 @@ OSCClientSender::new_port(const std::string& path,
* \li This is a notification that the object is <em>externally</em> polyphonic,
* i.e. its parent sees several independent buffers for a single port, one for each voice.
* An object can be internally polyphonic but externally not if the voices are mixed down;
- * this is true of DSSI plugins and subpatches with mismatched polyphony. </p> \n \n
+ * this is true of some instruments and subpatches with mismatched polyphony. </p> \n \n
*/
void
OSCClientSender::polyphonic(const std::string& path,
@@ -472,8 +472,8 @@ OSCClientSender::port_activity(const std::string& port_path)
/** \page client_osc_namespace
* <p> \b /ingen/plugin - Notification of the existance of a plugin
- * \arg \b type (string) - Type of plugin ("LADSPA", "DSSI", or "Internal")
- * \arg \b uri (string) - Type of plugin ("LADSPA", "DSSI", or "Internal")
+ * \arg \b type (string) - Type of plugin ("LADSPA", "LV2", or "Internal")
+ * \arg \b uri (string) - Type of plugin ("LADSPA", "LV2", or "Internal")
* \arg \b name (string) - Descriptive human-readable name of plugin (ie "ADSR Envelope")
*/
void
@@ -547,7 +547,7 @@ OSCClientSender::object_renamed(const std::string& old_path, const std::string&
}
-/** Sends information about a program associated with a DSSI plugin node.
+/** Sends information about a program associated with a node.
*/
void
OSCClientSender::program_add(const std::string& node_path, uint32_t bank, uint32_t program, const std::string& name)
diff --git a/src/libs/engine/OSCEngineReceiver.cpp b/src/libs/engine/OSCEngineReceiver.cpp
index 41437244..cfb3f860 100644
--- a/src/libs/engine/OSCEngineReceiver.cpp
+++ b/src/libs/engine/OSCEngineReceiver.cpp
@@ -116,13 +116,6 @@ OSCEngineReceiver::OSCEngineReceiver(Engine& engine, size_t queue_size, uint16_t
lo_server_add_method(_server, "/ingen/request_plugins", "i", request_plugins_cb, this);
lo_server_add_method(_server, "/ingen/request_all_objects", "i", request_all_objects_cb, this);
-
- // DSSI support
-#ifdef HAVE_DSSI
- // XXX WARNING: notice this is a catch-all
- lo_server_add_method(_server, NULL, NULL, dssi_cb, this);
-#endif
-
lo_server_add_method(_server, NULL, NULL, unknown_cb, NULL);
Thread::set_name("OSC Pre-Processor");
@@ -958,43 +951,6 @@ OSCEngineReceiver::_request_all_objects_cb(const char* path, const char* types,
}
-#ifdef HAVE_DSSI
-int
-OSCEngineReceiver::_dssi_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg)
-{
-#if 0
- string node_path(path);
-
- if (node_path.substr(0, 5) != "/dssi")
- return 1;
-
- string command = node_path.substr(node_path.find_last_of("/")+1);
- node_path = node_path.substr(5); // chop off leading "/dssi/"
- node_path = node_path.substr(0, node_path.find_last_of("/")); // chop off command at end
-
- //cout << "DSSI: Got message " << command << " for node " << node_path << endl;
-
- QueuedEvent* ev = NULL;
-
- if (command == "update" && !strcmp(types, "s"))
- ev = new DSSIUpdateEvent(NULL, node_path, &argv[0]->s);
- else if (command == "control" && !strcmp(types, "if"))
- ev = new DSSIControlEvent(NULL, node_path, argv[0]->i, argv[1]->f);
- else if (command == "configure" && ~strcmp(types, "ss"))
- ev = new DSSIConfigureEvent(NULL, node_path, &argv[0]->s, &argv[1]->s);
- else if (command == "program" && ~strcmp(types, "ii"))
- ev = new DSSIProgramEvent(NULL, node_path, argv[0]->i, argv[1]->i);
-
- if (ev != NULL)
- push(ev);
- else
- cerr << "[OSCEngineReceiver] Unknown DSSI command received: " << path << endl;
-#endif
- return 0;
-}
-#endif
-
-
// Static Callbacks //
diff --git a/src/libs/engine/OSCEngineReceiver.hpp b/src/libs/engine/OSCEngineReceiver.hpp
index c4f86b8c..918c15e2 100644
--- a/src/libs/engine/OSCEngineReceiver.hpp
+++ b/src/libs/engine/OSCEngineReceiver.hpp
@@ -124,10 +124,6 @@ private:
LO_HANDLER(request_plugins);
LO_HANDLER(request_all_objects);
-#ifdef HAVE_DSSI
- LO_HANDLER(dssi);
-#endif
-
lo_server _server;
};
diff --git a/src/libs/engine/PluginImpl.hpp b/src/libs/engine/PluginImpl.hpp
index e2aa4374..13f17ca6 100644
--- a/src/libs/engine/PluginImpl.hpp
+++ b/src/libs/engine/PluginImpl.hpp
@@ -95,7 +95,6 @@ public:
const char* type_string() const {
if (_type == LADSPA) return "LADSPA";
else if (_type == LV2) return "LV2";
- else if (_type == DSSI) return "DSSI";
else if (_type == Internal) return "Internal";
else if (_type == Patch) return "Patch";
else return "";
@@ -108,7 +107,6 @@ public:
void set_type(const string& type_string) {
if (type_string == "LADSPA") _type = LADSPA;
else if (type_string == "LV2") _type = LV2;
- else if (type_string == "DSSI") _type = DSSI;
else if (type_string == "Internal") _type = Internal;
else if (type_string == "Patch") _type = Patch;
}
@@ -124,11 +122,11 @@ public:
private:
Plugin::Type _type;
string _uri; ///< LV2 only
- string _lib_path; ///< LADSPA/DSSI only
- string _lib_name; ///< LADSPA/DSSI only
- string _plug_label; ///< LADSPA/DSSI only
- string _name; ///< LADSPA/DSSI only
- unsigned long _id; ///< LADSPA/DSSI only
+ string _lib_path; ///< LADSPA only
+ string _lib_name; ///< LADSPA only
+ string _plug_label; ///< LADSPA only
+ string _name; ///< LADSPA only
+ unsigned long _id; ///< LADSPA only
Glib::Module* _module;
diff --git a/src/libs/engine/QueuedEngineInterface.cpp b/src/libs/engine/QueuedEngineInterface.cpp
index b7d18bde..9899916c 100644
--- a/src/libs/engine/QueuedEngineInterface.cpp
+++ b/src/libs/engine/QueuedEngineInterface.cpp
@@ -15,6 +15,7 @@
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <iostream>
#include "QueuedEngineInterface.hpp"
#include CONFIG_H_PATH
#include "QueuedEventSource.hpp"
@@ -292,9 +293,7 @@ QueuedEngineInterface::set_program(const string& node_path,
uint32_t bank,
uint32_t program)
{
-#ifdef HAVE_DSSI
- push_queued(new DSSIProgramEvent(_engine, _responder, now(), node_path, bank, program));
-#endif
+ std::cerr << "FIXME: set program" << std::endl;
}
diff --git a/src/libs/engine/events.hpp b/src/libs/engine/events.hpp
index 7f87888d..54b23cce 100644
--- a/src/libs/engine/events.hpp
+++ b/src/libs/engine/events.hpp
@@ -51,12 +51,5 @@
#include "SetPortValueQueuedEvent.hpp"
#include "UnregisterClientEvent.hpp"
-#ifdef HAVE_DSSI
-#include "DSSIConfigureEvent.hpp"
-#include "DSSIControlEvent.hpp"
-#include "DSSIProgramEvent.hpp"
-#include "DSSIUpdateEvent.hpp"
-#endif
-
#endif // EVENTS_H
diff --git a/src/libs/engine/events/DSSIConfigureEvent.cpp b/src/libs/engine/events/DSSIConfigureEvent.cpp
deleted file mode 100644
index 25c9ab31..00000000
--- a/src/libs/engine/events/DSSIConfigureEvent.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 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 "DSSIConfigureEvent.hpp"
-#include "Engine.hpp"
-#include "NodeImpl.hpp"
-#include "ClientBroadcaster.hpp"
-#include "PluginImpl.hpp"
-#include "ObjectStore.hpp"
-
-using namespace std;
-
-namespace Ingen {
-
-
-DSSIConfigureEvent::DSSIConfigureEvent(Engine& engine, SharedPtr<Responder> responder, SampleCount timestamp, const string& node_path, const string& key, const string& val)
-: QueuedEvent(engine, responder, timestamp),
- _node_path(node_path),
- _key(key),
- _val(val),
- _node(NULL)
-{
-}
-
-
-void
-DSSIConfigureEvent::pre_process()
-{
- NodeImpl* node = _engine.object_store()->find_node(_node_path);
-
- if (node != NULL && node->plugin()->type() == Plugin::DSSI) {
- _node = (DSSINode*)node;
- _node->configure(_key, _val);
- }
-
- QueuedEvent::pre_process();
-}
-
-
-void
-DSSIConfigureEvent::execute(ProcessContext& context)
-{
- QueuedEvent::execute(context);
- // Nothing.
-}
-
-
-void
-DSSIConfigureEvent::post_process()
-{
- if (_node == NULL) {
- cerr << "Unable to find DSSI node " << _node_path << endl;
- } else {
- string key = "dssi-configure--";
- key += _key;
- _engine.broadcaster()->send_metadata_update(_node_path, key, Atom(_val.c_str()));
- }
-}
-
-
-} // namespace Ingen
-
diff --git a/src/libs/engine/events/DSSIConfigureEvent.hpp b/src/libs/engine/events/DSSIConfigureEvent.hpp
deleted file mode 100644
index 5960daf9..00000000
--- a/src/libs/engine/events/DSSIConfigureEvent.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 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
- */
-
-#ifndef DSSICONFIGUREEVENT_H
-#define DSSICONFIGUREEVENT_H
-
-#include "QueuedEvent.hpp"
-#include "DSSINode.hpp"
-
-namespace Ingen {
-
-
-/** Change of a 'configure' key/value pair for a DSSI plugin.
- *
- * \ingroup engine
- */
-class DSSIConfigureEvent : public QueuedEvent
-{
-public:
- DSSIConfigureEvent(Engine& engine, SharedPtr<Responder> responder, SampleCount timestamp, const string& node_path, const string& key, const string& val);
-
- void pre_process();
- void execute(ProcessContext& context);
- void post_process();
-
-private:
- string _node_path;
- string _key;
- string _val;
- DSSINode* _node;
-};
-
-
-} // namespace Ingen
-
-#endif // DSSICONFIGUREEVENT_H
diff --git a/src/libs/engine/events/DSSIControlEvent.cpp b/src/libs/engine/events/DSSIControlEvent.cpp
deleted file mode 100644
index 70c7dc99..00000000
--- a/src/libs/engine/events/DSSIControlEvent.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 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 "DSSIControlEvent.hpp"
-#include "Engine.hpp"
-#include "NodeImpl.hpp"
-#include "PluginImpl.hpp"
-#include "ObjectStore.hpp"
-
-namespace Ingen {
-
-
-DSSIControlEvent::DSSIControlEvent(Engine& engine, SharedPtr<Responder> responder, SampleCount timestamp, const string& node_path, int port_num, Sample val)
-: QueuedEvent(engine, responder, timestamp),
- _node_path(node_path),
- _port_num(port_num),
- _val(val),
- _node(NULL)
-{
-}
-
-
-void
-DSSIControlEvent::pre_process()
-{
- NodeImpl* node = _engine.object_store()->find_node(_node_path);
-
- if (node->plugin()->type() != Plugin::DSSI)
- _node = NULL;
- else
- _node = (DSSINode*)node;
-
- QueuedEvent::pre_process();
-}
-
-
-void
-DSSIControlEvent::execute(ProcessContext& context)
-{
- QueuedEvent::execute(context);
-
- if (_node != NULL)
- _node->set_control(_port_num, _val);
-}
-
-
-void
-DSSIControlEvent::post_process()
-{
- if (_node == NULL)
- std::cerr << "Unable to find DSSI node " << _node_path << std::endl;
-}
-
-
-} // namespace Ingen
-
diff --git a/src/libs/engine/events/DSSIControlEvent.hpp b/src/libs/engine/events/DSSIControlEvent.hpp
deleted file mode 100644
index 56fd05cf..00000000
--- a/src/libs/engine/events/DSSIControlEvent.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 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
- */
-
-#ifndef DSSICONTROLEVENT_H
-#define DSSICONTROLEVENT_H
-
-#include "QueuedEvent.hpp"
-#include "DSSINode.hpp"
-
-namespace Ingen {
-
-
-/** A control change event for a DSSI plugin.
- *
- * This does essentially the same thing as a SetPortValueEvent.
- *
- * \ingroup engine
- */
-class DSSIControlEvent : public QueuedEvent
-{
-public:
- DSSIControlEvent(Engine& engine, SharedPtr<Responder> responder, SampleCount timestamp, const string& node_path, int port_num, Sample val);
-
- void pre_process();
- void execute(ProcessContext& context);
- void post_process();
-
-private:
- string _node_path;
- int _port_num;
- float _val;
- DSSINode* _node;
-};
-
-
-} // namespace Ingen
-
-#endif // DSSICONTROLEVENT_H
diff --git a/src/libs/engine/events/DSSIProgramEvent.cpp b/src/libs/engine/events/DSSIProgramEvent.cpp
deleted file mode 100644
index 94cd20dc..00000000
--- a/src/libs/engine/events/DSSIProgramEvent.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 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 "DSSIProgramEvent.hpp"
-#include <cstdio>
-#include <iostream>
-#include "Engine.hpp"
-#include "NodeImpl.hpp"
-#include "ClientBroadcaster.hpp"
-#include "PluginImpl.hpp"
-#include "ObjectStore.hpp"
-using std::cout; using std::cerr; using std::endl;
-
-
-namespace Ingen {
-
-
-DSSIProgramEvent::DSSIProgramEvent(Engine& engine, SharedPtr<Responder> responder, SampleCount timestamp, const string& node_path, int bank, int program)
-: QueuedEvent(engine, responder, timestamp),
- _node_path(node_path),
- _bank(bank),
- _program(program),
- _node(NULL)
-{
-}
-
-
-void
-DSSIProgramEvent::pre_process()
-{
- NodeImpl* node = _engine.object_store()->find_node(_node_path);
-
- if (node != NULL && node->plugin()->type() == Plugin::DSSI)
- _node = (DSSINode*)node;
-
- QueuedEvent::pre_process();
-}
-
-
-void
-DSSIProgramEvent::execute(ProcessContext& context)
-{
- QueuedEvent::execute(context);
-
- if (_node != NULL)
- _node->program(_bank, _program);
-}
-
-
-void
-DSSIProgramEvent::post_process()
-{
- if (_node == NULL) {
- cerr << "Unable to find DSSI node " << _node_path << endl;
- } else {
- // sends program as metadata in the form bank/program
- char* temp_buf = new char[16];
- snprintf(temp_buf, 16, "%d/%d", _bank, _program);
- _engine.broadcaster()->send_metadata_update(_node_path, "dssi-program", temp_buf);
- }
-}
-
-
-} // namespace Ingen
-
diff --git a/src/libs/engine/events/DSSIProgramEvent.hpp b/src/libs/engine/events/DSSIProgramEvent.hpp
deleted file mode 100644
index b66dcb87..00000000
--- a/src/libs/engine/events/DSSIProgramEvent.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 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
- */
-
-#ifndef DSSIPROGRAMEVENT_H
-#define DSSIPROGRAMEVENT_H
-
-#include "QueuedEvent.hpp"
-#include "DSSINode.hpp"
-
-namespace Ingen {
-
-
-/** A program change for a DSSI plugin.
- *
- * \ingroup engine
- */
-class DSSIProgramEvent : public QueuedEvent
-{
-public:
- DSSIProgramEvent(Engine& engine, SharedPtr<Responder> responder, SampleCount timestamp, const string& node_path, int bank, int program);
-
- void pre_process();
- void execute(ProcessContext& context);
- void post_process();
-
-private:
- string _node_path;
- int _bank;
- int _program;
- DSSINode* _node;
-};
-
-
-} // namespace Ingen
-
-#endif // DSSIPROGRAMEVENT_H
diff --git a/src/libs/engine/events/DSSIUpdateEvent.cpp b/src/libs/engine/events/DSSIUpdateEvent.cpp
deleted file mode 100644
index 8f2eea6a..00000000
--- a/src/libs/engine/events/DSSIUpdateEvent.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 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 "DSSIUpdateEvent.hpp"
-#include <iostream>
-#include "NodeImpl.hpp"
-#include "ObjectStore.hpp"
-#include "Engine.hpp"
-#include "DSSINode.hpp"
-#include "PluginImpl.hpp"
-
-using std::cerr; using std::endl;
-
-namespace Ingen {
-
-
-DSSIUpdateEvent::DSSIUpdateEvent(Engine& engine, SharedPtr<Responder> responder, SampleCount timestamp, const string& path, const string& url)
-: QueuedEvent(engine, responder, timestamp),
- _path(path),
- _url(url),
- _node(NULL)
-{
-}
-
-
-void
-DSSIUpdateEvent::pre_process()
-{
- NodeImpl* node = _engine.object_store()->find_node(_path);
-
- if (node == NULL || node->plugin()->type() != Plugin::DSSI) {
- _node = NULL;
- QueuedEvent::pre_process();
- return;
- } else {
- _node = (DSSINode*)node;
- }
-
- QueuedEvent::pre_process();
-}
-
-
-void
-DSSIUpdateEvent::execute(ProcessContext& context)
-{
- QueuedEvent::execute(context);
-
- if (_node != NULL) {
- _node->set_ui_url(_url);
- }
-}
-
-
-void
-DSSIUpdateEvent::post_process()
-{
- cerr << "DSSI update event: " << _url << endl;
-
- if (_node != NULL) {
- _node->send_update();
- }
-}
-
-
-} // namespace Ingen
-
diff --git a/src/libs/engine/events/DSSIUpdateEvent.hpp b/src/libs/engine/events/DSSIUpdateEvent.hpp
deleted file mode 100644
index 16a2b50a..00000000
--- a/src/libs/engine/events/DSSIUpdateEvent.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 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
- */
-
-#ifndef DSSIUPDATEEVENT_H
-#define DSSIUPDATEEVENT_H
-
-#include "QueuedEvent.hpp"
-#include <string>
-
-using std::string;
-
-namespace Ingen {
-
-class DSSINode;
-
-
-/** A DSSI "update" responder for a DSSI plugin/node.
- *
- * This sends all information about the plugin to the UI (over OSC).
- *
- * \ingroup engine
- */
-class DSSIUpdateEvent : public QueuedEvent
-{
-public:
- DSSIUpdateEvent(Engine& engine, SharedPtr<Responder> responder, SampleCount timestamp, const string& path, const string& url);
-
- void pre_process();
- void execute(ProcessContext& context);
- void post_process();
-
-private:
- string _path;
- string _url;
- DSSINode* _node;
-};
-
-
-} // namespace Ingen
-
-#endif // DSSIUPDATEEVENT_H
diff --git a/src/libs/engine/events/Makefile.am b/src/libs/engine/events/Makefile.am
index 67ccf0e5..f437be2c 100644
--- a/src/libs/engine/events/Makefile.am
+++ b/src/libs/engine/events/Makefile.am
@@ -13,14 +13,6 @@ EXTRA_DIST = \
CreatePatchEvent.hpp \
CreatePortEvent.cpp \
CreatePortEvent.hpp \
- DSSIConfigureEvent.cpp \
- DSSIConfigureEvent.hpp \
- DSSIControlEvent.cpp \
- DSSIControlEvent.hpp \
- DSSIProgramEvent.cpp \
- DSSIProgramEvent.hpp \
- DSSIUpdateEvent.cpp \
- DSSIUpdateEvent.hpp \
DeactivateEvent.cpp \
DeactivateEvent.hpp \
DestroyEvent.cpp \
diff --git a/src/libs/gui/DSSIController.cpp b/src/libs/gui/DSSIController.cpp
deleted file mode 100644
index 9bb037ba..00000000
--- a/src/libs/gui/DSSIController.cpp
+++ /dev/null
@@ -1,280 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 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 "DSSIController.hpp"
-#include <iomanip>
-#include <sstream>
-#include <dirent.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#include "interface/EngineInterface.hpp"
-#include "client/NodeModel.hpp"
-#include "App.hpp"
-#include "DSSIModule.hpp"
-
-namespace Ingen {
-namespace GUI {
-
-
-DSSIController::DSSIController(SharedPtr<NodeModel> model)
-: _banks_dirty(true)
-{
-#if 0
- assert(model->plugin()->type() == PluginModel::DSSI);
- Gtk::Menu::MenuList& items = _menu.items();
- items[0].property_sensitive() = true; // "Show Control Window" item
-
- Gtk::Menu_Helpers::MenuElem program_elem("Select Program", _program_menu);
- items.push_front(program_elem);
- _program_menu_item = program_elem.get_child();
- _program_menu_item->set_sensitive(false);
-
- items.push_front(Gtk::Menu_Helpers::MenuElem("Show Plugin GUI",
- sigc::mem_fun(this, &DSSIController::show_gui)));
-#endif
-}
-
-void
-DSSIController::program_add(int bank, int program, const string& name)
-{
- cerr << "FIXME: DSSI add program\n";
- //node_model()->add_program(bank, program, name);
- //m_banks_dirty = true;
-}
-
-
-void
-DSSIController::program_remove(int bank, int program)
-{
- cerr << "FIXME: DSSI add program\n";
- //node_model()->remove_program(bank, program);
- //m_banks_dirty = true;
-}
-
-/** Trivial wrapper of attempt_to_show_gui for libsigc
- */
-void
-DSSIController::show_gui()
-{
- attempt_to_show_gui();
-}
-
-
-void
-DSSIController::update_program_menu()
-{
- cerr << "FIXME: Program menu\n";
-#if 0
- _program_menu.items().clear();
-
- const map<int, map<int, string> >& banks = node_model()->get_programs();
- std::ostringstream oss;
-
- map<int, map<int, string> >::const_iterator i;
- for (i = banks.begin(); i != banks.end(); ++i) {
- Gtk::Menu* bank_menu;
- if (banks.size() > 1)
- bank_menu = manage(new Gtk::Menu());
- else
- bank_menu = &_program_menu;
- map<int, string>::const_iterator j;
- for (j = i->second.begin(); j != i->second.end(); ++j) {
- oss.str("");
- oss << std::setw(3) << std::setfill('0')
- << j->first << ' ' << j->second;
- sigc::slot<void> slt = bind(
- bind(sigc::mem_fun(*this, &DSSIController::send_program_change),
- j->first), i->first);
- bank_menu->items().push_back(
- Gtk::Menu_Helpers::MenuElem(oss.str(), slt));
- }
- if (banks.size() > 1) {
- oss.str("");
- oss << "Bank " << i->first;
- _program_menu.items().push_back(
- Gtk::Menu_Helpers::MenuElem(oss.str(), *bank_menu));
- }
- }
-
- // Disable the program menu if there are no programs
- if (banks.size() == 0)
- _program_menu_item->set_sensitive(false);
- else
- _program_menu_item->set_sensitive(true);
-
- _banks_dirty = false;
-#endif
-}
-
-
-void
-DSSIController::send_program_change(int bank, int program)
-{
- //App::instance().engine()->set_program(node_model()->path(), bank, program);
-}
-
-
-/** Attempt to show the DSSI GUI for this plugin.
- *
- * Returns whether or not GUI was successfully loaded/shown.
- */
-bool
-DSSIController::attempt_to_show_gui()
-{
- cerr << "FIXME: DSSI GUI" << endl;
-#if 0
- // Shamelessley "inspired by" jack-dssi-host
- // Copyright 2004 Chris Cannam, Steve Harris and Sean Bolton.
-
- const bool verbose = false;
-
- string engine_url = App::instance().engine()->engine_url();
- // Hack off last character if it's a /
- if (engine_url[engine_url.length()-1] == '/')
- engine_url = engine_url.substr(0, engine_url.length()-1);
-
- const char* dllName = node_model()->plugin()->lib_name().c_str();
- const char* label = node_model()->plugin()->plug_label().c_str();
- const char* myName = "ingenuity";
- const string& oscUrl = engine_url + "/dssi" + node_model()->path();
-
- struct dirent* entry = NULL;
- char* dllBase = strdup(dllName);
- char* subpath = NULL;
- DIR* subdir = NULL;
- char* filename = NULL;
- struct stat buf;
- int fuzzy = 0;
-
- char* env_dssi_path = getenv("DSSI_PATH");
- string dssi_path;
- if (!env_dssi_path) {
- cerr << "DSSI_PATH is empty. Assuming /usr/lib/dssi:/usr/local/lib/dssi." << endl;
- dssi_path = "/usr/lib/dssi:/usr/local/lib/dssi";
- } else {
- dssi_path = env_dssi_path;
- }
-
- if (strlen(dllBase) > 3 && !strcasecmp(dllBase + strlen(dllBase) - 3, ".so")) {
- dllBase[strlen(dllBase) - 3] = '\0';
- }
-
-
- // This is pretty nasty, it loops through the path, even if the dllBase is absolute
- while (dssi_path != "") {
- string directory = dssi_path.substr(0, dssi_path.find(':'));
- if (dssi_path.find(':') != string::npos)
- dssi_path = dssi_path.substr(dssi_path.find(':')+1);
- else
- dssi_path = "";
-
- if (*dllBase == '/') {
- subpath = strdup(dllBase);
- } else {
- subpath = (char*)malloc(strlen(directory.c_str()) + strlen(dllBase) + 2);
- sprintf(subpath, "%s/%s", directory.c_str(), dllBase);
- }
-
- for (fuzzy = 0; fuzzy <= 1; ++fuzzy) {
-
- if (!(subdir = opendir(subpath))) {
- if (verbose) {
- fprintf(stderr, "%s: can't open plugin GUI directory \"%s\"\n", myName, subpath);
- }
- break;
- }
-
- while ((entry = readdir(subdir))) {
-
- if (entry->d_name[0] == '.')
- continue;
- if (!strchr(entry->d_name, '_'))
- continue;
-
- if (fuzzy) {
- if (verbose) {
- fprintf(stderr, "checking %s against %s\n", entry->d_name, dllBase);
- }
- if (strncmp(entry->d_name, dllBase, strlen(dllBase)))
- continue;
- } else {
- if (verbose) {
- fprintf(stderr, "checking %s against %s\n", entry->d_name, label);
- }
- if (strncmp(entry->d_name, label, strlen(label)))
- continue;
- }
-
- filename = (char*)malloc(strlen(subpath) + strlen(entry->d_name) + 2);
- sprintf(filename, "%s/%s", subpath, entry->d_name);
-
- if (stat(filename, &buf)) {
- perror("stat failed");
- free(filename);
- continue;
- }
-
- if ((S_ISREG(buf.st_mode) || S_ISLNK(buf.st_mode)) &&
- (buf.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) {
-
- if (verbose) {
- fprintf(stderr, "%s: trying to execute GUI at \"%s\"\n",
- myName, filename);
- }
-
- if (fork() == 0) {
- execlp(filename, filename, oscUrl.c_str(), dllName, label,
- node_model()->name().c_str(), 0);
- perror("exec failed");
- exit(1);
- }
-
- free(filename);
- free(subpath);
- free(dllBase);
- return true;
- }
-
- free(filename);
- }
- }
- }
-
- cerr << "Unable to launch DSSI GUI for " << node_model()->path() << endl;
-
- free(subpath);
- free(dllBase);
-#endif
- return false;
-}
-
-
-void
-DSSIController::show_menu(GdkEventButton* event)
-{
-#if 0
- if (_banks_dirty)
- update_program_menu();
-
- NodeController::show_menu(event);
-#endif
-}
-
-
-} // namespace GUI
-} // namespace Ingen
-
diff --git a/src/libs/gui/DSSIController.hpp b/src/libs/gui/DSSIController.hpp
deleted file mode 100644
index 7d6e0c97..00000000
--- a/src/libs/gui/DSSIController.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 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
- */
-
-#ifndef DSSICONTROLLER_H
-#define DSSICONTROLLER_H
-
-#include <string>
-#include <gtkmm.h>
-#include <raul/Path.hpp>
-#include "client/NodeModel.hpp"
-
-using std::string;
-using namespace Ingen::Client;
-
-namespace Ingen { namespace Client {
- class MetadataModel;
- class NodeModel;
- class PortModel;
-} }
-
-namespace Ingen {
-namespace GUI {
-
-class NodeControlWindow;
-
-
-/* Controller for a DSSI node.
- *
- * FIXME: legacy cruft. move this code to the appropriate places and nuke
- * this class.
- *
- * \ingroup GUI
- */
-class DSSIController
-{
-public:
- DSSIController(SharedPtr<NodeModel> model);
-
- virtual ~DSSIController() {}
-
- void show_gui();
- bool attempt_to_show_gui();
- void program_add(int bank, int program, const string& name);
- void program_remove(int bank, int program);
-
- void send_program_change(int bank, int program);
-
- void show_menu(GdkEventButton* event);
-
-private:
- void update_program_menu();
-
- Gtk::Menu _program_menu;
- Glib::RefPtr<Gtk::MenuItem> _program_menu_item;
-
- bool _banks_dirty;
-};
-
-
-} // namespace GUI
-} // namespace Ingen
-
-#endif // DSSICONTROLLER_H
diff --git a/src/libs/gui/DSSIModule.cpp b/src/libs/gui/DSSIModule.cpp
deleted file mode 100644
index 84058100..00000000
--- a/src/libs/gui/DSSIModule.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 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 "DSSIModule.hpp"
-#include "DSSIController.hpp"
-
-namespace Ingen {
-namespace GUI {
-
-
-DSSIModule::DSSIModule(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<NodeModel> node)
-: NodeModule(canvas, node)
-{
-}
-
-
-void
-DSSIModule::on_double_click(GdkEventButton* ev)
-{
- /*
- DSSIController* dc = dynamic_cast<DSSIController*>(_node);
- if (!dc || ! dc->attempt_to_show_gui())
- show_control_window();
- */
-}
-
-
-} // namespace GUI
-} // namespace Ingen
diff --git a/src/libs/gui/DSSIModule.hpp b/src/libs/gui/DSSIModule.hpp
deleted file mode 100644
index 76824bdc..00000000
--- a/src/libs/gui/DSSIModule.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/* This file is part of Ingen.
- * Copyright (C) 2007 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
- */
-
-#ifndef DSSIMODULE_H
-#define DSSIMODULE_H
-
-#include "NodeModule.hpp"
-
-namespace Ingen {
-namespace GUI {
-
-class DSSIController;
-
-/* Module for a DSSI node.
- *
- * \ingroup GUI
- */
-class DSSIModule : public NodeModule
-{
-public:
- DSSIModule(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<NodeModel> node);
- virtual ~DSSIModule() {}
-
- void on_double_click(GdkEventButton* ev);
-};
-
-
-} // namespace GUI
-} // namespace Ingen
-
-#endif // DSSIMODULE_H
-
diff --git a/src/libs/gui/LoadPluginWindow.cpp b/src/libs/gui/LoadPluginWindow.cpp
index 9aaed171..6d698f94 100644
--- a/src/libs/gui/LoadPluginWindow.cpp
+++ b/src/libs/gui/LoadPluginWindow.cpp
@@ -224,8 +224,6 @@ LoadPluginWindow::set_plugins(const Raul::Table<string, SharedPtr<PluginModel> >
row[_plugins_columns._col_type] = "Internal";
else if (!strcmp(plugin->type_uri(), "ingen:LV2"))
row[_plugins_columns._col_type] = "LV2";
- else if (!strcmp(plugin->type_uri(), "ingen:DSSI"))
- row[_plugins_columns._col_type] = "DSSI";
else if (!strcmp(plugin->type_uri(), "ingen:LADSPA"))
row[_plugins_columns._col_type] = "LADSPA";
else
diff --git a/src/libs/gui/Makefile.am b/src/libs/gui/Makefile.am
index a1e070cd..d0d07fd8 100644
--- a/src/libs/gui/Makefile.am
+++ b/src/libs/gui/Makefile.am
@@ -46,10 +46,6 @@ libingen_gui_la_SOURCES = \
ControlGroups.hpp \
ControlPanel.cpp \
ControlPanel.hpp \
- DSSIController.cpp \
- DSSIController.hpp \
- DSSIModule.cpp \
- DSSIModule.hpp \
GladeFactory.cpp \
GladeFactory.hpp \
LoadPatchWindow.cpp \
diff --git a/src/libs/gui/NodeModule.hpp b/src/libs/gui/NodeModule.hpp
index cf4bff9e..32e9220d 100644
--- a/src/libs/gui/NodeModule.hpp
+++ b/src/libs/gui/NodeModule.hpp
@@ -42,8 +42,7 @@ class Port;
/** A module in a patch.
*
- * This base class is extended for various types of modules - SubpatchModule,
- * DSSIModule, etc.
+ * This base class is extended for various types of modules.
*
* \ingroup GUI
*/
diff --git a/src/libs/gui/UploadPatchWindow.hpp b/src/libs/gui/UploadPatchWindow.hpp
index c3de55fa..af064bdb 100644
--- a/src/libs/gui/UploadPatchWindow.hpp
+++ b/src/libs/gui/UploadPatchWindow.hpp
@@ -28,7 +28,6 @@
#include "client/PatchModel.hpp"
#include "client/PluginModel.hpp"
using Ingen::Client::PatchModel;
-using Ingen::Client::MetadataMap;
namespace Ingen {
namespace GUI {