summaryrefslogtreecommitdiffstats
path: root/src/server/PortImpl.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2013-02-02 03:51:18 +0000
committerDavid Robillard <d@drobilla.net>2013-02-02 03:51:18 +0000
commit763255ad8fc731f298be99c5ebeb07791b748ed2 (patch)
treeb1d163c3a7e1fb7b6b6a274aae040670485ee1bb /src/server/PortImpl.hpp
parentd049b582e1db60ee0f6fd02a40202145488c7288 (diff)
downloadingen-763255ad8fc731f298be99c5ebeb07791b748ed2.tar.gz
ingen-763255ad8fc731f298be99c5ebeb07791b748ed2.tar.bz2
ingen-763255ad8fc731f298be99c5ebeb07791b748ed2.zip
Divorce monitor rate from block size, send updates at 10Hz.
Also add a simple attempt at staggering notification times to balance the buffer load and avoid massive spikes of all ports sending notifications at the same time. This should be quite a bit more sane when running at low latency. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5017 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/PortImpl.hpp')
-rw-r--r--src/server/PortImpl.hpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/PortImpl.hpp b/src/server/PortImpl.hpp
index 45918964..2789c4f0 100644
--- a/src/server/PortImpl.hpp
+++ b/src/server/PortImpl.hpp
@@ -119,6 +119,9 @@ public:
get_buffers(bufs, _buffers, poly, real_time);
}
+ void activate(BufferFactory& bufs);
+ void deactivate();
+
virtual void connect_buffers();
virtual void recycle_buffers();
@@ -202,12 +205,13 @@ protected:
uint32_t _index;
uint32_t _poly;
uint32_t _buffer_size;
+ uint32_t _frames_since_monitor;
+ float _last_monitor_value;
PortType _type;
LV2_URID _buffer_type;
Raul::Atom _value;
Raul::Atom _min;
Raul::Atom _max;
- Raul::Atom _last_monitor_value;
Raul::Array<SetState>* _set_states;
Raul::Array<SetState>* _prepared_set_states;
Raul::Array<BufferRef>* _buffers;