From 10a5b76a65fb7ca7bf8c1f5869aaf763854e05a3 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 7 Jan 2010 01:34:42 +0000 Subject: Merge QueuedEventSource and EventSource. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2352 a436a847-0d15-0410-975c-d299462d15a1 --- src/engine/Engine.cpp | 2 +- src/engine/EventSource.cpp | 127 ++++++++++++++++++++++++++++++++++ src/engine/EventSource.hpp | 46 +++++++++---- src/engine/HTTPEngineReceiver.cpp | 6 +- src/engine/OSCEngineReceiver.cpp | 6 +- src/engine/QueuedEngineInterface.cpp | 6 +- src/engine/QueuedEngineInterface.hpp | 4 +- src/engine/QueuedEvent.hpp | 6 +- src/engine/QueuedEventSource.cpp | 130 ----------------------------------- src/engine/QueuedEventSource.hpp | 78 --------------------- src/engine/events/CreatePort.cpp | 4 +- src/engine/events/CreatePort.hpp | 2 +- src/engine/events/Delete.cpp | 4 +- src/engine/events/Delete.hpp | 2 +- src/engine/events/LoadPlugins.cpp | 4 +- src/engine/events/LoadPlugins.hpp | 2 +- src/engine/events/SetMetadata.cpp | 4 +- src/engine/events/SetMetadata.hpp | 2 +- src/engine/wscript | 6 +- 19 files changed, 189 insertions(+), 252 deletions(-) create mode 100644 src/engine/EventSource.cpp delete mode 100644 src/engine/QueuedEventSource.cpp delete mode 100644 src/engine/QueuedEventSource.hpp (limited to 'src') diff --git a/src/engine/Engine.cpp b/src/engine/Engine.cpp index bee2cec7..292a4e70 100644 --- a/src/engine/Engine.cpp +++ b/src/engine/Engine.cpp @@ -43,7 +43,7 @@ #include "ProcessContext.hpp" #include "ProcessSlave.hpp" #include "QueuedEngineInterface.hpp" -#include "QueuedEventSource.hpp" +#include "EventSource.hpp" #include "ThreadManager.hpp" #include "tuning.hpp" diff --git a/src/engine/EventSource.cpp b/src/engine/EventSource.cpp new file mode 100644 index 00000000..0b8cb9dd --- /dev/null +++ b/src/engine/EventSource.cpp @@ -0,0 +1,127 @@ +/* This file is part of Ingen. + * Copyright (C) 2008-2009 Dave Robillard + * + * 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 +#include "EventSource.hpp" +#include "QueuedEvent.hpp" +#include "PostProcessor.hpp" +#include "ThreadManager.hpp" +#include "ProcessContext.hpp" + +using namespace std; + +namespace Ingen { + + +EventSource::EventSource(size_t queue_size) + : _blocking_semaphore(0) +{ + Thread::set_context(THREAD_PRE_PROCESS); + assert(context() == THREAD_PRE_PROCESS); + set_name("EventSource"); +} + + +EventSource::~EventSource() +{ + Thread::stop(); +} + + +/** Push an unprepared event onto the queue. + */ +void +EventSource::push_queued(QueuedEvent* const ev) +{ + assert(!ev->is_prepared()); + Raul::List::Node* node = new Raul::List::Node(ev); + _events.push_back(node); + if (_prepared_back.get() == NULL) + _prepared_back = node; + + whip(); +} + + +/** Process all events for a cycle. + * + * Executed events will be pushed to @a dest. + */ +void +EventSource::process(PostProcessor& dest, ProcessContext& context) +{ + assert(ThreadManager::current_thread_id() == THREAD_PROCESS); + + if (_events.empty()) + return; + + /* Limit the maximum number of queued events to process per cycle. This + * makes the process callback (more) realtime-safe by preventing being + * choked by events coming in faster than they can be processed. + * FIXME: test this and figure out a good value */ + const size_t MAX_QUEUED_EVENTS = context.nframes() / 32; + + size_t num_events_processed = 0; + + QueuedEvent* ev = (QueuedEvent*)_events.front(); + Raul::List::Node* new_head = _events.head(); + + while (ev && ev->is_prepared() && ev->time() < context.end()) { + ev->execute(context); + new_head = new_head->next(); + if (++num_events_processed > MAX_QUEUED_EVENTS) + break; + ev = (new_head ? (QueuedEvent*)new_head->elem() : NULL); + } + + if (num_events_processed > 0) { + Raul::List front; + _events.chop_front(front, num_events_processed, new_head); + dest.append(&front); + } +} + + +/** Pre-process a single event */ +void +EventSource::_whipped() +{ + Raul::List::Node* pb = _prepared_back.get(); + if (!pb) + return; + + QueuedEvent* const ev = (QueuedEvent*)pb->elem(); + assert(ev); + if (!ev) + return; + + assert(!ev->is_prepared()); + ev->pre_process(); + assert(ev->is_prepared()); + + assert(_prepared_back.get() == pb); + _prepared_back = pb->next(); + + // If event was blocking, wait for event to being run through the + // process thread before preparing the next event + if (ev->is_blocking()) + _blocking_semaphore.wait(); +} + + +} // namespace Ingen + diff --git a/src/engine/EventSource.hpp b/src/engine/EventSource.hpp index 0db5c879..58d26ea8 100644 --- a/src/engine/EventSource.hpp +++ b/src/engine/EventSource.hpp @@ -15,8 +15,12 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef EVENTSOURCE_H -#define EVENTSOURCE_H +#ifndef INGEN_EVENT_SOURCE_HPP +#define INGEN_EVENT_SOURCE_HPP + +#include "raul/Semaphore.hpp" +#include "raul/Slave.hpp" +#include "raul/List.hpp" namespace Ingen { @@ -31,26 +35,40 @@ class ProcessContext; * The Driver gets events from an EventSource in the process callback * (realtime audio thread) and executes them, then they are sent to the * PostProcessor and finalised (post-processing thread). - * - * There are two distinct classes of events - "queued" and "stamped". Queued - * events are events that require non-realtime pre-processing before being - * executed in the process thread. Stamped events are timestamped realtime - * events that require no pre-processing and can be executed immediately - * (with sample accuracy). */ -class EventSource +class EventSource : protected Raul::Slave { public: - virtual ~EventSource() {} + EventSource(size_t queue_size); + ~EventSource(); + + void activate_source() { Slave::start(); } + void deactivate_source() { Slave::stop(); } + + void process(PostProcessor& dest, ProcessContext& context); + + /** Signal that a blocking event is finished. + * + * This MUST be called by blocking events in their post_process() method + * to resume pre-processing of events. + */ + inline void unblock() { _blocking_semaphore.post(); } + +protected: + void push_queued(QueuedEvent* const ev); + + inline bool unprepared_events() { return (_prepared_back.get() != NULL); } - virtual void activate_source() = 0; - virtual void deactivate_source() = 0; + virtual void _whipped(); ///< Prepare 1 event - virtual void process(PostProcessor& dest, ProcessContext& context) = 0; +private: + Raul::List _events; + Raul::AtomicPtr::Node> _prepared_back; + Raul::Semaphore _blocking_semaphore; }; } // namespace Ingen -#endif // EVENTSOURCE_H +#endif // INGEN_EVENT_SOURCE_HPP diff --git a/src/engine/HTTPEngineReceiver.cpp b/src/engine/HTTPEngineReceiver.cpp index 8cc39ddb..d28e1a24 100644 --- a/src/engine/HTTPEngineReceiver.cpp +++ b/src/engine/HTTPEngineReceiver.cpp @@ -31,7 +31,7 @@ #include "EngineStore.hpp" #include "HTTPClientSender.hpp" #include "HTTPEngineReceiver.hpp" -#include "QueuedEventSource.hpp" +#include "EventSource.hpp" #include "ThreadManager.hpp" using namespace std; @@ -78,7 +78,7 @@ HTTPEngineReceiver::~HTTPEngineReceiver() void HTTPEngineReceiver::activate_source() { - QueuedEventSource::activate_source(); + EventSource::activate_source(); _receive_thread->set_name("HTTP Receiver"); _receive_thread->start(); } @@ -88,7 +88,7 @@ void HTTPEngineReceiver::deactivate_source() { _receive_thread->stop(); - QueuedEventSource::deactivate_source(); + EventSource::deactivate_source(); } diff --git a/src/engine/OSCEngineReceiver.cpp b/src/engine/OSCEngineReceiver.cpp index d4b6e43e..e0b176bc 100644 --- a/src/engine/OSCEngineReceiver.cpp +++ b/src/engine/OSCEngineReceiver.cpp @@ -29,7 +29,7 @@ #include "Engine.hpp" #include "OSCClientSender.hpp" #include "OSCEngineReceiver.hpp" -#include "QueuedEventSource.hpp" +#include "EventSource.hpp" #include "ThreadManager.hpp" #define LOG(s) s << "[OSCEngineReceiver] " @@ -138,7 +138,7 @@ OSCEngineReceiver::~OSCEngineReceiver() void OSCEngineReceiver::activate_source() { - QueuedEventSource::activate_source(); + EventSource::activate_source(); _receive_thread->set_name("OSC Receiver"); _receive_thread->start(); _receive_thread->set_scheduling(SCHED_FIFO, 5); // Jack default appears to be 10 @@ -149,7 +149,7 @@ void OSCEngineReceiver::deactivate_source() { _receive_thread->stop(); - QueuedEventSource::deactivate_source(); + EventSource::deactivate_source(); } diff --git a/src/engine/QueuedEngineInterface.cpp b/src/engine/QueuedEngineInterface.cpp index ded0b5cf..8f5fdade 100644 --- a/src/engine/QueuedEngineInterface.cpp +++ b/src/engine/QueuedEngineInterface.cpp @@ -18,7 +18,7 @@ #include "raul/log.hpp" #include "QueuedEngineInterface.hpp" #include "tuning.hpp" -#include "QueuedEventSource.hpp" +#include "EventSource.hpp" #include "events.hpp" #include "Engine.hpp" #include "Driver.hpp" @@ -33,7 +33,7 @@ namespace Ingen { using namespace Shared; QueuedEngineInterface::QueuedEngineInterface(Engine& engine, size_t queue_size) - : QueuedEventSource(queue_size) + : EventSource(queue_size) , _responder(new Responder(NULL, 0)) , _engine(engine) , _in_bundle(false) @@ -113,7 +113,7 @@ QueuedEngineInterface::activate() in_activate = true; _engine.activate(); } - QueuedEventSource::activate_source(); + EventSource::activate_source(); push_queued(new Events::Ping(_engine, _responder, now())); in_activate = false; } diff --git a/src/engine/QueuedEngineInterface.hpp b/src/engine/QueuedEngineInterface.hpp index ef470e3e..04314c35 100644 --- a/src/engine/QueuedEngineInterface.hpp +++ b/src/engine/QueuedEngineInterface.hpp @@ -25,7 +25,7 @@ #include "interface/ClientInterface.hpp" #include "interface/EngineInterface.hpp" #include "interface/Resource.hpp" -#include "QueuedEventSource.hpp" +#include "EventSource.hpp" #include "Responder.hpp" #include "tuning.hpp" #include "types.hpp" @@ -45,7 +45,7 @@ class Engine; * If you do not register a responder, you have no way of knowing if your calls * are successful. */ -class QueuedEngineInterface : public QueuedEventSource, public Shared::EngineInterface +class QueuedEngineInterface : public EventSource, public Shared::EngineInterface { public: QueuedEngineInterface(Engine& engine, size_t queue_size); diff --git a/src/engine/QueuedEvent.hpp b/src/engine/QueuedEvent.hpp index 64a82304..f19c7b95 100644 --- a/src/engine/QueuedEvent.hpp +++ b/src/engine/QueuedEvent.hpp @@ -22,7 +22,7 @@ namespace Ingen { -class QueuedEventSource; +class EventSource; /** An Event with a not-time-critical preprocessing stage. @@ -57,7 +57,7 @@ protected: SharedPtr responder, FrameTime time, bool blocking = false, - QueuedEventSource* source = NULL) + EventSource* source = NULL) : Event(engine, responder, time) , _source(source) , _pre_processed(false) @@ -75,7 +75,7 @@ protected: , _blocking(false) {} - QueuedEventSource* _source; + EventSource* _source; bool _pre_processed; bool _blocking; }; diff --git a/src/engine/QueuedEventSource.cpp b/src/engine/QueuedEventSource.cpp deleted file mode 100644 index 9fcd5711..00000000 --- a/src/engine/QueuedEventSource.cpp +++ /dev/null @@ -1,130 +0,0 @@ -/* This file is part of Ingen. - * Copyright (C) 2008-2009 Dave Robillard - * - * 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 -#include "QueuedEventSource.hpp" -#include "QueuedEvent.hpp" -#include "PostProcessor.hpp" -#include "ThreadManager.hpp" -#include "ProcessContext.hpp" - -using namespace std; - -namespace Ingen { - - -QueuedEventSource::QueuedEventSource(size_t queue_size) - : _blocking_semaphore(0) -{ - Thread::set_context(THREAD_PRE_PROCESS); - assert(context() == THREAD_PRE_PROCESS); - set_name("QueuedEventSource"); -} - - -QueuedEventSource::~QueuedEventSource() -{ - Thread::stop(); -} - - -/** Push an unprepared event onto the queue. - */ -void -QueuedEventSource::push_queued(QueuedEvent* const ev) -{ - assert(!ev->is_prepared()); - Raul::List::Node* node = new Raul::List::Node(ev); - _events.push_back(node); - if (_prepared_back.get() == NULL) - _prepared_back = node; - - whip(); -} - - -/** Process all events for a cycle. - * - * Executed events will be pushed to @a dest. - */ -void -QueuedEventSource::process(PostProcessor& dest, ProcessContext& context) -{ - assert(ThreadManager::current_thread_id() == THREAD_PROCESS); - - if (_events.empty()) - return; - - /* Limit the maximum number of queued events to process per cycle. This - * makes the process callback (more) realtime-safe by preventing being - * choked by events coming in faster than they can be processed. - * FIXME: test this and figure out a good value */ - const size_t MAX_QUEUED_EVENTS = context.nframes() / 32; - - size_t num_events_processed = 0; - - QueuedEvent* ev = (QueuedEvent*)_events.front(); - Raul::List::Node* new_head = _events.head(); - - while (ev && ev->is_prepared() && ev->time() < context.end()) { - ev->execute(context); - new_head = new_head->next(); - if (++num_events_processed > MAX_QUEUED_EVENTS) - break; - ev = (new_head ? (QueuedEvent*)new_head->elem() : NULL); - } - - if (num_events_processed > 0) { - Raul::List front; - _events.chop_front(front, num_events_processed, new_head); - dest.append(&front); - } -} - - -// Private // - - -/** Pre-process a single event */ -void -QueuedEventSource::_whipped() -{ - Raul::List::Node* pb = _prepared_back.get(); - if (!pb) - return; - - QueuedEvent* const ev = (QueuedEvent*)pb->elem(); - assert(ev); - if (!ev) - return; - - assert(!ev->is_prepared()); - ev->pre_process(); - assert(ev->is_prepared()); - - assert(_prepared_back.get() == pb); - _prepared_back = pb->next(); - - // If event was blocking, wait for event to being run through the - // process thread before preparing the next event - if (ev->is_blocking()) - _blocking_semaphore.wait(); -} - - -} // namespace Ingen - diff --git a/src/engine/QueuedEventSource.hpp b/src/engine/QueuedEventSource.hpp deleted file mode 100644 index 12b2300c..00000000 --- a/src/engine/QueuedEventSource.hpp +++ /dev/null @@ -1,78 +0,0 @@ -/* This file is part of Ingen. - * Copyright (C) 2008-2009 Dave Robillard - * - * 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 INGEN_QUEUED_EVENT_SOURCE_HPP -#define INGEN_QUEUED_EVENT_SOURCE_HPP - -#include -#include -#include "raul/Semaphore.hpp" -#include "raul/Slave.hpp" -#include "raul/List.hpp" -#include "EventSource.hpp" - -namespace Ingen { - -class Event; -class QueuedEvent; -class PostProcessor; - - -/** Queue of events that need processing before reaching the audio thread. - * - * Implemented as a deque (ringbuffer) in a circular array. Pushing and - * popping are threadsafe, as long as a single thread pushes and a single - * thread pops (ie this data structure is threadsafe, but the push and pop - * methods themselves are not). Creating an instance of this class spawns - * a pre-processing thread to prepare queued events. - * - * This class is it's own slave. :) - */ -class QueuedEventSource : public EventSource, protected Raul::Slave -{ -public: - QueuedEventSource(size_t queue_size); - ~QueuedEventSource(); - - void activate_source() { Slave::start(); } - void deactivate_source() { Slave::stop(); } - - void process(PostProcessor& dest, ProcessContext& context); - - /** Signal that the blocking event is finished. - * When this is called preparing will resume. This MUST be called by - * blocking events in their post_process() method. */ - inline void unblock() { _blocking_semaphore.post(); } - -protected: - void push_queued(QueuedEvent* const ev); - - inline bool unprepared_events() { return (_prepared_back.get() != NULL); } - - virtual void _whipped(); ///< Prepare 1 event - -private: - Raul::List _events; - Raul::AtomicPtr::Node> _prepared_back; - Raul::Semaphore _blocking_semaphore; -}; - - -} // namespace Ingen - -#endif // INGEN_QUEUED_EVENT_SOURCE_HPP - diff --git a/src/engine/events/CreatePort.cpp b/src/engine/events/CreatePort.cpp index 299e60e9..7845994a 100644 --- a/src/engine/events/CreatePort.cpp +++ b/src/engine/events/CreatePort.cpp @@ -26,7 +26,7 @@ #include "PluginImpl.hpp" #include "Engine.hpp" #include "PatchImpl.hpp" -#include "QueuedEventSource.hpp" +#include "EventSource.hpp" #include "EngineStore.hpp" #include "ClientBroadcaster.hpp" #include "PortImpl.hpp" @@ -49,7 +49,7 @@ CreatePort::CreatePort( const Raul::Path& path, const Raul::URI& type, bool is_output, - QueuedEventSource* source, + EventSource* source, const Resource::Properties& properties) : QueuedEvent(engine, responder, timestamp, true, source) , _error(NO_ERROR) diff --git a/src/engine/events/CreatePort.hpp b/src/engine/events/CreatePort.hpp index af58fcfe..c7ddb56a 100644 --- a/src/engine/events/CreatePort.hpp +++ b/src/engine/events/CreatePort.hpp @@ -47,7 +47,7 @@ public: const Raul::Path& path, const Raul::URI& type, bool is_output, - QueuedEventSource* source, + EventSource* source, const Shared::Resource::Properties& properties); void pre_process(); diff --git a/src/engine/events/Delete.cpp b/src/engine/events/Delete.cpp index 62ddedf1..91e18dd0 100644 --- a/src/engine/events/Delete.cpp +++ b/src/engine/events/Delete.cpp @@ -27,7 +27,7 @@ #include "DisconnectAll.hpp" #include "ClientBroadcaster.hpp" #include "EngineStore.hpp" -#include "QueuedEventSource.hpp" +#include "EventSource.hpp" #include "PortImpl.hpp" using namespace std; @@ -38,7 +38,7 @@ namespace Events { using namespace Shared; -Delete::Delete(Engine& engine, SharedPtr responder, FrameTime time, QueuedEventSource* source, const Raul::Path& path) +Delete::Delete(Engine& engine, SharedPtr responder, FrameTime time, EventSource* source, const Raul::Path& path) : QueuedEvent(engine, responder, time, true, source) , _path(path) , _store_iterator(engine.engine_store()->end()) diff --git a/src/engine/events/Delete.hpp b/src/engine/events/Delete.hpp index a72dcc12..ac46030f 100644 --- a/src/engine/events/Delete.hpp +++ b/src/engine/events/Delete.hpp @@ -61,7 +61,7 @@ public: Engine& engine, SharedPtr responder, FrameTime timestamp, - QueuedEventSource* source, + EventSource* source, const Raul::Path& path); ~Delete(); diff --git a/src/engine/events/LoadPlugins.cpp b/src/engine/events/LoadPlugins.cpp index e8ae8ce2..65043757 100644 --- a/src/engine/events/LoadPlugins.cpp +++ b/src/engine/events/LoadPlugins.cpp @@ -20,13 +20,13 @@ #include "Engine.hpp" #include "NodeFactory.hpp" #include "ClientBroadcaster.hpp" -#include "QueuedEventSource.hpp" +#include "EventSource.hpp" namespace Ingen { namespace Events { -LoadPlugins::LoadPlugins(Engine& engine, SharedPtr responder, SampleCount timestamp, QueuedEventSource* source) +LoadPlugins::LoadPlugins(Engine& engine, SharedPtr responder, SampleCount timestamp, EventSource* source) : QueuedEvent(engine, responder, timestamp, true, source) { } diff --git a/src/engine/events/LoadPlugins.hpp b/src/engine/events/LoadPlugins.hpp index 8dce2a27..3549fdfd 100644 --- a/src/engine/events/LoadPlugins.hpp +++ b/src/engine/events/LoadPlugins.hpp @@ -34,7 +34,7 @@ public: LoadPlugins(Engine& engine, SharedPtr responder, SampleCount timestamp, - QueuedEventSource* source); + EventSource* source); void pre_process(); void post_process(); diff --git a/src/engine/events/SetMetadata.cpp b/src/engine/events/SetMetadata.cpp index 53e79977..6c8c25f3 100644 --- a/src/engine/events/SetMetadata.cpp +++ b/src/engine/events/SetMetadata.cpp @@ -29,7 +29,7 @@ #include "PatchImpl.hpp" #include "PluginImpl.hpp" #include "PortImpl.hpp" -#include "QueuedEventSource.hpp" +#include "EventSource.hpp" #include "Responder.hpp" #include "SetMetadata.hpp" #include "SetPortValue.hpp" @@ -48,7 +48,7 @@ SetMetadata::SetMetadata( Engine& engine, SharedPtr responder, SampleCount timestamp, - QueuedEventSource* source, + EventSource* source, bool replace, bool meta, const URI& subject, diff --git a/src/engine/events/SetMetadata.hpp b/src/engine/events/SetMetadata.hpp index dc67d162..1417e02c 100644 --- a/src/engine/events/SetMetadata.hpp +++ b/src/engine/events/SetMetadata.hpp @@ -69,7 +69,7 @@ public: Engine& engine, SharedPtr responder, SampleCount timestamp, - QueuedEventSource* source, + EventSource* source, bool replace, bool meta, const Raul::URI& subject, diff --git a/src/engine/wscript b/src/engine/wscript index 6e146d3c..2b98df26 100644 --- a/src/engine/wscript +++ b/src/engine/wscript @@ -16,6 +16,7 @@ def build(bld): Event.cpp EventBuffer.cpp EventSink.cpp + EventSource.cpp GraphObjectImpl.cpp InputPort.cpp InternalPlugin.cpp @@ -32,7 +33,6 @@ def build(bld): ProcessSlave.cpp QueuedEngineInterface.cpp QueuedEvent.cpp - QueuedEventSource.cpp events/AllNotesOff.cpp events/Connect.cpp events/CreateNode.cpp @@ -79,7 +79,7 @@ def build(bld): if bld.env['HAVE_SOUP'] == 1: obj = bld.new_task_gen('cxx', 'shlib') obj.source = ''' - QueuedEventSource.cpp + EventSource.cpp QueuedEngineInterface.cpp HTTPClientSender.cpp HTTPEngineReceiver.cpp @@ -94,7 +94,7 @@ def build(bld): if bld.env['HAVE_LIBLO'] == 1: obj = bld.new_task_gen('cxx', 'shlib') obj.source = ''' - QueuedEventSource.cpp + EventSource.cpp QueuedEngineInterface.cpp OSCClientSender.cpp OSCEngineReceiver.cpp -- cgit v1.2.1