diff options
author | David Robillard <d@drobilla.net> | 2010-02-20 21:52:36 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2010-02-20 21:52:36 +0000 |
commit | 46e5de590817756b21a7a5d99bd4963df343f455 (patch) | |
tree | 7d7b3b63297b24d84e5b42cc8aeb22d4212738b5 /src/engine/BufferFactory.hpp | |
parent | b96a4015ae39b5bdd9afbd82898c0168a0a8e613 (diff) | |
download | ingen-46e5de590817756b21a7a5d99bd4963df343f455.tar.gz ingen-46e5de590817756b21a7a5d99bd4963df343f455.tar.bz2 ingen-46e5de590817756b21a7a5d99bd4963df343f455.zip |
Heavy overhaul of buffer management and polyphony.
* Working polyphony when nodes are instantiated at desired polyphony
level (dynamic still doesn't work)
* Use shared silent buffer for disconnected audio inputs (save memory)
* Eliminate redundant patch compiling on delete and disconnect-all
events that have child events
* Fix a ton of crash bugs and other issues I've since forgotten
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2468 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/BufferFactory.hpp')
-rw-r--r-- | src/engine/BufferFactory.hpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/engine/BufferFactory.hpp b/src/engine/BufferFactory.hpp index 1978e895..44213c52 100644 --- a/src/engine/BufferFactory.hpp +++ b/src/engine/BufferFactory.hpp @@ -24,6 +24,7 @@ #include "glibmm/thread.h" #include "raul/RingBuffer.hpp" #include "raul/AtomicPtr.hpp" +#include "types.hpp" namespace Ingen { @@ -40,10 +41,16 @@ public: typedef boost::intrusive_ptr<Buffer> Ref; + static size_t audio_buffer_size(SampleCount nframes); + size_t default_buffer_size(PortType type); + Ref get(Shared::PortType type, size_t size=0, bool force_create=false); + Ref silent_buffer() { return _silent_buffer; } + + void set_block_length(SampleCount block_length); + private: - friend class BufferDeleter; friend class Buffer; void recycle(Buffer* buf); @@ -68,6 +75,8 @@ private: Glib::Mutex _mutex; Engine& _engine; SharedPtr<Shared::LV2URIMap> _map; + + Ref _silent_buffer; }; } // namespace Ingen |