diff options
author | David Robillard <d@drobilla.net> | 2008-11-24 02:07:30 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-11-24 02:07:30 +0000 |
commit | d3c7142837dc6d1d460477115fa81dc51b92a1ce (patch) | |
tree | c05cd2ca469e2be715e681454a4a6020d8ca1124 /src/engine/PostProcessor.hpp | |
parent | d038cc80aeab835344708b0a136198dab9a28fab (diff) | |
download | ingen-d3c7142837dc6d1d460477115fa81dc51b92a1ce.tar.gz ingen-d3c7142837dc6d1d460477115fa81dc51b92a1ce.tar.bz2 ingen-d3c7142837dc6d1d460477115fa81dc51b92a1ce.zip |
Use lists instead of ringbuffers for event queue - remove upper limit on event queue size and related warnings on big patch load.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@1776 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/PostProcessor.hpp')
-rw-r--r-- | src/engine/PostProcessor.hpp | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/src/engine/PostProcessor.hpp b/src/engine/PostProcessor.hpp index fe767b60..8f04a75c 100644 --- a/src/engine/PostProcessor.hpp +++ b/src/engine/PostProcessor.hpp @@ -21,9 +21,7 @@ #include <pthread.h> #include "types.hpp" #include "raul/SRSWQueue.hpp" -//#include "raul/Slave.hpp" - -//namespace Raul { class Maid; } +#include "raul/List.hpp" namespace Ingen { @@ -42,13 +40,13 @@ class Engine; * * \ingroup engine */ -class PostProcessor //: public Raul::Slave +class PostProcessor { public: - PostProcessor(Engine& engine, /*Raul::Maid& maid, */size_t queue_size); + PostProcessor(Engine& engine, size_t queue_size); - /** Push an event on to the process queue, realtime-safe, not thread-safe. */ - inline void push(Event* const ev) { _events.push(ev); } + /** Push a list of events on to the process queue, realtime-safe, not thread-safe. */ + inline void append(Raul::List<Event*>* l) { _events.append(*l); } /** Post-process and delete all pending events */ void process(); @@ -57,14 +55,11 @@ public: void set_end_time(FrameTime time) { _max_time = time; } private: - Engine& _engine; - Raul::AtomicInt _max_time; - //Raul::Maid& _maid; - Raul::SRSWQueue<Event*> _events; - uint32_t _event_buffer_size; - uint8_t* _event_buffer; - - //virtual void _whipped(); + Engine& _engine; + Raul::AtomicInt _max_time; + Raul::List<Event*> _events; + uint32_t _event_buffer_size; + uint8_t* _event_buffer; }; |