diff options
author | David Robillard <d@drobilla.net> | 2009-11-16 00:30:35 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-11-16 00:30:35 +0000 |
commit | 3d89115a67a9c947a28539ffdd2399808a53279b (patch) | |
tree | 826b900de3979eed9c31aae0d3ac560d39b53460 /src/engine/Buffer.cpp | |
parent | 597fa9212f27d2448c0cdd20fbf616928c662cc1 (diff) | |
download | ingen-3d89115a67a9c947a28539ffdd2399808a53279b.tar.gz ingen-3d89115a67a9c947a28539ffdd2399808a53279b.tar.bz2 ingen-3d89115a67a9c947a28539ffdd2399808a53279b.zip |
Rework objects extension to have "value ports" and "message ports".
Make audio and control buffers in ingen actually object buffers (towards interop).
Overhaul the hell out of ingen buffer and mixing stuff.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2266 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/Buffer.cpp')
-rw-r--r-- | src/engine/Buffer.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/engine/Buffer.cpp b/src/engine/Buffer.cpp index 07498b36..b473c194 100644 --- a/src/engine/Buffer.cpp +++ b/src/engine/Buffer.cpp @@ -15,6 +15,7 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include <algorithm> #include "AudioBuffer.hpp" #include "EventBuffer.hpp" #include "ObjectBuffer.hpp" @@ -23,17 +24,20 @@ namespace Ingen { using namespace Shared; +class Engine; + Buffer* -Buffer::create(DataType type, size_t size) +Buffer::create(Engine& engine, Shared::DataType type, size_t size) { if (type.is_control()) - return new AudioBuffer(1); + return new AudioBuffer(type, size); else if (type.is_audio()) - return new AudioBuffer(size); + return new AudioBuffer(type, size); else if (type.is_events()) return new EventBuffer(size); else if (type.is_value()) - return new ObjectBuffer(size); + return new ObjectBuffer(std::max(size, + sizeof(LV2_Object) + sizeof(void*))); else throw; } |