diff options
author | David Robillard <d@drobilla.net> | 2015-10-24 19:27:39 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2015-10-24 19:27:39 +0000 |
commit | 732bfb33105b4a534bc17caae9a50a1ccfcd7570 (patch) | |
tree | bad9715a99f11d17342adaef372361c3697beee9 /src/server/DuplexPort.hpp | |
parent | ade7143eb2af64fd6743a64ebf1786dd5bbe1092 (diff) | |
download | ingen-732bfb33105b4a534bc17caae9a50a1ccfcd7570.tar.gz ingen-732bfb33105b4a534bc17caae9a50a1ccfcd7570.tar.bz2 ingen-732bfb33105b4a534bc17caae9a50a1ccfcd7570.zip |
Zero-copy to/from driver ports where possible
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5778 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/DuplexPort.hpp')
-rw-r--r-- | src/server/DuplexPort.hpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/server/DuplexPort.hpp b/src/server/DuplexPort.hpp index 1dd1292c..36e37b0b 100644 --- a/src/server/DuplexPort.hpp +++ b/src/server/DuplexPort.hpp @@ -43,15 +43,14 @@ class DuplexPort : public InputPort { public: DuplexPort(BufferFactory& bufs, - BlockImpl* parent, + GraphImpl* parent, const Raul::Symbol& symbol, uint32_t index, bool polyphonic, - uint32_t poly, PortType type, - LV2_URID buffer_type, + LV2_URID buf_type, + size_t buf_size, const Atom& value, - size_t buffer_size, bool is_output); virtual ~DuplexPort(); @@ -77,6 +76,16 @@ public: uint32_t poly, bool real_time) const; + + virtual void set_is_driver_port(BufferFactory& bufs); + + /** Set the external driver-provided buffer. + * + * This may only be called in the process thread, after an earlier call to + * prepare_driver_buffer(). + */ + void set_driver_buffer(void* buf, uint32_t capacity); + void pre_process(Context& context); void post_process(Context& context); |