summaryrefslogtreecommitdiffstats
path: root/src/engine/BufferFactory.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2010-03-06 10:23:19 +0000
committerDavid Robillard <d@drobilla.net>2010-03-06 10:23:19 +0000
commit059f20c9666234f2be01498ee04f1e7ee795ba8f (patch)
treeef0d53073d53012aeaa7d084fccf477b166c0684 /src/engine/BufferFactory.hpp
parent085a451dfec54126be1b9346899c81d82e6eb58e (diff)
downloadingen-059f20c9666234f2be01498ee04f1e7ee795ba8f.tar.gz
ingen-059f20c9666234f2be01498ee04f1e7ee795ba8f.tar.bz2
ingen-059f20c9666234f2be01498ee04f1e7ee795ba8f.zip
Save Ingen patches as working standard LV2 plugin bundles.
This allows you to create an Ingen patch in Ingen running as a Jack client, save it, then load that patch as an LV2 plugin in any LV2 compliant host. Eliminate (hopefully) all static data in the engine (for multiple instantiations in a single process). More API/ABI stable interface for Ingen::Shared::World. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2533 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/BufferFactory.hpp')
-rw-r--r--src/engine/BufferFactory.hpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/engine/BufferFactory.hpp b/src/engine/BufferFactory.hpp
index 44213c52..344b946d 100644
--- a/src/engine/BufferFactory.hpp
+++ b/src/engine/BufferFactory.hpp
@@ -37,7 +37,8 @@ namespace Shared { class LV2URIMap; }
class BufferFactory {
public:
- BufferFactory(Engine& engine, SharedPtr<Shared::LV2URIMap> map);
+ BufferFactory(Engine& engine, SharedPtr<Shared::LV2URIMap> uris);
+ ~BufferFactory();
typedef boost::intrusive_ptr<Buffer> Ref;
@@ -50,6 +51,8 @@ public:
void set_block_length(SampleCount block_length);
+ Shared::LV2URIMap& uris() { assert(_uris); return *_uris.get(); }
+
private:
friend class Buffer;
void recycle(Buffer* buf);
@@ -67,6 +70,8 @@ private:
}
}
+ void free_list(Buffer* head);
+
Raul::AtomicPtr<Buffer> _free_audio;
Raul::AtomicPtr<Buffer> _free_control;
Raul::AtomicPtr<Buffer> _free_event;
@@ -74,7 +79,7 @@ private:
Glib::Mutex _mutex;
Engine& _engine;
- SharedPtr<Shared::LV2URIMap> _map;
+ SharedPtr<Shared::LV2URIMap> _uris;
Ref _silent_buffer;
};