summaryrefslogtreecommitdiffstats
path: root/src/AlsaDriver.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2010-12-15 00:23:38 +0000
committerDavid Robillard <d@drobilla.net>2010-12-15 00:23:38 +0000
commitba2863f012866398efab12b6b3e6a113d5eb60bd (patch)
treed6eeb5c5e009bc3f42bd354afa25cfa684ed212d /src/AlsaDriver.hpp
parentfb6cff045de58c304527efea4e85d53fd80d2758 (diff)
downloadpatchage-ba2863f012866398efab12b6b3e6a113d5eb60bd.tar.gz
patchage-ba2863f012866398efab12b6b3e6a113d5eb60bd.tar.bz2
patchage-ba2863f012866398efab12b6b3e6a113d5eb60bd.zip
Fix removal of ALSA duplex ports (remove both corresponding canvas ports).
Use simpler (and seemingly less lockup prone) blocking ALSA sequencer event API. Only use a ringbuffer for JACK driver. Reduce memory usage. git-svn-id: http://svn.drobilla.net/lad/trunk/patchage@2690 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/AlsaDriver.hpp')
-rw-r--r--src/AlsaDriver.hpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/AlsaDriver.hpp b/src/AlsaDriver.hpp
index ba20d95..23d635f 100644
--- a/src/AlsaDriver.hpp
+++ b/src/AlsaDriver.hpp
@@ -18,9 +18,12 @@
#ifndef PATCHAGE_ALSADRIVER_HPP
#define PATCHAGE_ALSADRIVER_HPP
+#include <string>
+#include <queue>
+
#include <alsa/asoundlib.h>
#include <pthread.h>
-#include <string>
+
#include "Driver.hpp"
class Patchage;
class PatchagePort;
@@ -53,6 +56,8 @@ public:
void print_addr(snd_seq_addr_t addr);
+ void process_events(Patchage* app);
+
private:
void refresh_ports();
void refresh_connections();
@@ -85,6 +90,9 @@ private:
Patchage* _app;
snd_seq_t* _seq;
pthread_t _refresh_thread;
+
+ Glib::Mutex _events_mutex;
+ std::queue<PatchageEvent> _events;
};
#endif // PATCHAGE_ALSADRIVER_HPP