diff options
author | David Robillard <d@drobilla.net> | 2008-02-24 17:27:21 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-02-24 17:27:21 +0000 |
commit | 25f833aac2100a9947dbd7ee1de7d8c6a6b41648 (patch) | |
tree | 73402fd5e8b43c06e5cfb548f10402713d1c7fde /src | |
parent | bd34ee943e1041cfff7d4bd896bb4bb2c09a546a (diff) | |
download | patchage-25f833aac2100a9947dbd7ee1de7d8c6a6b41648.tar.gz patchage-25f833aac2100a9947dbd7ee1de7d8c6a6b41648.tar.bz2 patchage-25f833aac2100a9947dbd7ee1de7d8c6a6b41648.zip |
Rework event handling slightly for jack dbus driver.
git-svn-id: http://svn.drobilla.net/lad/patchage@1162 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src')
-rw-r--r-- | src/Driver.hpp | 8 | ||||
-rw-r--r-- | src/LashDriver.hpp | 2 | ||||
-rw-r--r-- | src/Patchage.cpp | 14 |
3 files changed, 12 insertions, 12 deletions
diff --git a/src/Driver.hpp b/src/Driver.hpp index 5c4c35d..0f1255e 100644 --- a/src/Driver.hpp +++ b/src/Driver.hpp @@ -31,6 +31,14 @@ class Driver { public: virtual ~Driver() {} + virtual void process_events(Patchage* app) { + while (!events().empty()) { + PatchageEvent& ev = events().front(); + ev.execute(app); + events().pop(); + } + } + virtual void attach(bool launch_daemon) = 0; virtual void detach() = 0; virtual bool is_attached() const = 0; diff --git a/src/LashDriver.hpp b/src/LashDriver.hpp index c1d648d..7ece98f 100644 --- a/src/LashDriver.hpp +++ b/src/LashDriver.hpp @@ -55,7 +55,7 @@ public: void refresh() {} - void process_events() { _server_interface->process_events(); } + void process_events(Patchage* app) { _server_interface->process_events(); } void restore_project(const std::string& directory); void set_project_directory(const std::string& directory); diff --git a/src/Patchage.cpp b/src/Patchage.cpp index 4519ede..6396526 100644 --- a/src/Patchage.cpp +++ b/src/Patchage.cpp @@ -305,27 +305,19 @@ Patchage::idle_callback() // Process any JACK events if (_jack_driver) { - while (!_jack_driver->events().empty()) { - PatchageEvent& ev = _jack_driver->events().front(); - ev.execute(this); - _jack_driver->events().pop(); - } + _jack_driver->process_events(this); } // Process any ALSA events #ifdef HAVE_ALSA if (_alsa_driver) { - while (!_alsa_driver->events().empty()) { - PatchageEvent& ev = _alsa_driver->events().front(); - ev.execute(this); - _alsa_driver->events().pop(); - } + _alsa_driver->process_events(this); } #endif #ifdef HAVE_LASH if (_lash_driver->is_attached()) - _lash_driver->process_events(); + _lash_driver->process_events(this); #endif // Do a full refresh (ie user clicked refresh) |