diff options
author | David Robillard <d@drobilla.net> | 2012-08-08 00:15:43 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-08-08 00:15:43 +0000 |
commit | e8e6c94ebe95d6d7fd48cea1c383d749272e7662 (patch) | |
tree | 9b796623e468078fcfe66a9d1006c36e3ae1587c /src/server/BufferFactory.cpp | |
parent | d51aa827c7411fdf88a7645d80c1fb0c447ab838 (diff) | |
download | ingen-e8e6c94ebe95d6d7fd48cea1c383d749272e7662.tar.gz ingen-e8e6c94ebe95d6d7fd48cea1c383d749272e7662.tar.bz2 ingen-e8e6c94ebe95d6d7fd48cea1c383d749272e7662.zip |
Support latest LV2 buf-size extension.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4623 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/BufferFactory.cpp')
-rw-r--r-- | src/server/BufferFactory.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/server/BufferFactory.cpp b/src/server/BufferFactory.cpp index 720a4639..ccb3170d 100644 --- a/src/server/BufferFactory.cpp +++ b/src/server/BufferFactory.cpp @@ -24,11 +24,10 @@ namespace Ingen { namespace Server { -static const size_t EVENT_BYTES_PER_FRAME = 4; // FIXME - BufferFactory::BufferFactory(Engine& engine, URIs& uris) : _engine(engine) , _uris(uris) + , _seq_size(0) , _silent_buffer(NULL) { } @@ -72,12 +71,17 @@ BufferFactory::audio_buffer_size(SampleCount nframes) uint32_t BufferFactory::default_size(LV2_URID type) const { + static const uint32_t SEQ_BYTES_PER_FRAME = 4; if (type == _uris.atom_Float) { return sizeof(LV2_Atom_Float); } else if (type == _uris.atom_Sound) { return audio_buffer_size(_engine.driver()->block_length()); } else if (type == _uris.atom_Sequence) { - return _engine.driver()->block_length() * EVENT_BYTES_PER_FRAME; + if (_seq_size == 0) { + return _engine.driver()->block_length() * SEQ_BYTES_PER_FRAME; + } else { + return _seq_size; + } } else { return 0; } |