summaryrefslogtreecommitdiffstats
path: root/src/engine/JackMidiDriver.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-12-20 20:28:04 +0000
committerDavid Robillard <d@drobilla.net>2008-12-20 20:28:04 +0000
commit76f6fcfad68d88728bb1a04b193029aa9e46e976 (patch)
tree271ca830393f9b6dc5241b1ff152905902aaeced /src/engine/JackMidiDriver.hpp
parent72c6d069df26396436c653532702a4f96f901fba (diff)
downloadingen-76f6fcfad68d88728bb1a04b193029aa9e46e976.tar.gz
ingen-76f6fcfad68d88728bb1a04b193029aa9e46e976.tar.bz2
ingen-76f6fcfad68d88728bb1a04b193029aa9e46e976.zip
Fix deregistration of Jack ports, associated memory leaks. Hopefully a fix for #294 and #305).
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@1877 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/JackMidiDriver.hpp')
-rw-r--r--src/engine/JackMidiDriver.hpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/engine/JackMidiDriver.hpp b/src/engine/JackMidiDriver.hpp
index 02bcd5c1..af885766 100644
--- a/src/engine/JackMidiDriver.hpp
+++ b/src/engine/JackMidiDriver.hpp
@@ -41,6 +41,8 @@ public:
JackMidiPort(JackMidiDriver* driver, DuplexPort* port);
virtual ~JackMidiPort();
+ void unregister();
+
void pre_process(ProcessContext& context);
void post_process(ProcessContext& context);
@@ -80,18 +82,17 @@ public:
{ return new JackMidiPort(this, patch_port); }
void add_port(DriverPort* port);
- DriverPort* remove_port(const Raul::Path& path);
-
DriverPort* driver_port(const Raul::Path& path);
+
+ Raul::List<DriverPort*>::Node* remove_port(const Raul::Path& path);
- jack_client_t* jack_client() { return _client; }
+ jack_client_t* jack_client() { return _client; }
private:
Engine& _engine;
uint32_t _midi_event_type;
- Raul::List<JackMidiPort*> _in_ports;
- Raul::List<JackMidiPort*> _out_ports;
+ Raul::List<JackMidiPort*> _ports;
friend class JackMidiPort;