From d3c7142837dc6d1d460477115fa81dc51b92a1ce Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 24 Nov 2008 02:07:30 +0000 Subject: 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 --- src/engine/PostProcessor.hpp | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) (limited to 'src/engine/PostProcessor.hpp') 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 #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* 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 _events; - uint32_t _event_buffer_size; - uint8_t* _event_buffer; - - //virtual void _whipped(); + Engine& _engine; + Raul::AtomicInt _max_time; + Raul::List _events; + uint32_t _event_buffer_size; + uint8_t* _event_buffer; }; -- cgit v1.2.1