summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2016-09-11 15:21:25 +0200
committerDavid Robillard <d@drobilla.net>2016-09-11 15:21:25 +0200
commitf3546d49dbd2d673138387a87bc523c26dcece68 (patch)
treeede285a773fc565205f82a2b0a62ebba6ea552e0
parentfb2744d4265d26fb98b19689b50d127f32c66eab (diff)
downloadingen-f3546d49dbd2d673138387a87bc523c26dcece68.tar.gz
ingen-f3546d49dbd2d673138387a87bc523c26dcece68.tar.bz2
ingen-f3546d49dbd2d673138387a87bc523c26dcece68.zip
Remove last vestiges of multiple run contexts
-rw-r--r--src/server/ArcImpl.hpp2
-rw-r--r--src/server/BlockImpl.cpp15
-rw-r--r--src/server/BlockImpl.hpp19
-rw-r--r--src/server/Buffer.cpp10
-rw-r--r--src/server/Buffer.hpp14
-rw-r--r--src/server/ControlBindings.cpp40
-rw-r--r--src/server/ControlBindings.hpp24
-rw-r--r--src/server/DirectDriver.hpp6
-rw-r--r--src/server/Driver.hpp6
-rw-r--r--src/server/DuplexPort.cpp8
-rw-r--r--src/server/DuplexPort.hpp8
-rw-r--r--src/server/Engine.cpp26
-rw-r--r--src/server/Engine.hpp12
-rw-r--r--src/server/Event.hpp4
-rw-r--r--src/server/GraphImpl.cpp18
-rw-r--r--src/server/GraphImpl.hpp21
-rw-r--r--src/server/InputPort.cpp16
-rw-r--r--src/server/InputPort.hpp17
-rw-r--r--src/server/InternalBlock.cpp2
-rw-r--r--src/server/InternalBlock.hpp2
-rw-r--r--src/server/JackDriver.cpp20
-rw-r--r--src/server/JackDriver.hpp10
-rw-r--r--src/server/LV2Block.cpp8
-rw-r--r--src/server/LV2Block.hpp6
-rw-r--r--src/server/NodeImpl.hpp5
-rw-r--r--src/server/OutputPort.cpp4
-rw-r--r--src/server/OutputPort.hpp4
-rw-r--r--src/server/PortImpl.cpp24
-rw-r--r--src/server/PortImpl.hpp34
-rw-r--r--src/server/PostProcessor.cpp14
-rw-r--r--src/server/PostProcessor.hpp4
-rw-r--r--src/server/PreProcessor.cpp4
-rw-r--r--src/server/PreProcessor.hpp4
-rw-r--r--src/server/ProcessContext.hpp43
-rw-r--r--src/server/RunContext.cpp (renamed from src/server/Context.cpp)26
-rw-r--r--src/server/RunContext.hpp (renamed from src/server/Context.hpp)28
-rw-r--r--src/server/events/Connect.cpp2
-rw-r--r--src/server/events/Connect.hpp2
-rw-r--r--src/server/events/Copy.cpp2
-rw-r--r--src/server/events/Copy.hpp2
-rw-r--r--src/server/events/CreateBlock.cpp2
-rw-r--r--src/server/events/CreateBlock.hpp2
-rw-r--r--src/server/events/CreateGraph.cpp2
-rw-r--r--src/server/events/CreateGraph.hpp2
-rw-r--r--src/server/events/CreatePort.cpp2
-rw-r--r--src/server/events/CreatePort.hpp2
-rw-r--r--src/server/events/Delete.cpp2
-rw-r--r--src/server/events/Delete.hpp2
-rw-r--r--src/server/events/Delta.cpp2
-rw-r--r--src/server/events/Delta.hpp2
-rw-r--r--src/server/events/Disconnect.cpp6
-rw-r--r--src/server/events/Disconnect.hpp4
-rw-r--r--src/server/events/DisconnectAll.cpp2
-rw-r--r--src/server/events/DisconnectAll.hpp2
-rw-r--r--src/server/events/Get.hpp2
-rw-r--r--src/server/events/Mark.cpp2
-rw-r--r--src/server/events/Mark.hpp2
-rw-r--r--src/server/events/Move.cpp2
-rw-r--r--src/server/events/Move.hpp2
-rw-r--r--src/server/events/SetPortValue.cpp10
-rw-r--r--src/server/events/SetPortValue.hpp4
-rw-r--r--src/server/events/Undo.cpp2
-rw-r--r--src/server/events/Undo.hpp2
-rw-r--r--src/server/ingen_lv2.cpp28
-rw-r--r--src/server/internals/Controller.cpp6
-rw-r--r--src/server/internals/Controller.hpp4
-rw-r--r--src/server/internals/Delay.cpp4
-rw-r--r--src/server/internals/Delay.hpp2
-rw-r--r--src/server/internals/Note.cpp24
-rw-r--r--src/server/internals/Note.hpp22
-rw-r--r--src/server/internals/Time.cpp4
-rw-r--r--src/server/internals/Time.hpp2
-rw-r--r--src/server/internals/Trigger.cpp8
-rw-r--r--src/server/internals/Trigger.hpp6
-rw-r--r--src/server/mix.cpp4
-rw-r--r--src/server/mix.hpp4
-rw-r--r--src/server/wscript2
77 files changed, 315 insertions, 383 deletions
diff --git a/src/server/ArcImpl.hpp b/src/server/ArcImpl.hpp
index 486a5694..01984ba6 100644
--- a/src/server/ArcImpl.hpp
+++ b/src/server/ArcImpl.hpp
@@ -26,7 +26,7 @@
#include "raul/Deletable.hpp"
#include "BufferRef.hpp"
-#include "Context.hpp"
+#include "RunContext.hpp"
namespace Ingen {
namespace Server {
diff --git a/src/server/BlockImpl.cpp b/src/server/BlockImpl.cpp
index bf4ef0f8..02611137 100644
--- a/src/server/BlockImpl.cpp
+++ b/src/server/BlockImpl.cpp
@@ -25,7 +25,7 @@
#include "GraphImpl.hpp"
#include "PluginImpl.hpp"
#include "PortImpl.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
#include "ThreadManager.hpp"
using namespace std;
@@ -41,7 +41,6 @@ BlockImpl::BlockImpl(PluginImpl* plugin,
: NodeImpl(plugin->uris(), parent, symbol)
, _plugin(plugin)
, _ports(NULL)
- , _context(Context::ID::AUDIO)
, _polyphony((polyphonic && parent) ? parent->internal_poly() : 1)
, _polyphonic(polyphonic)
, _activated(false)
@@ -121,7 +120,7 @@ BlockImpl::prepare_poly(BufferFactory& bufs, uint32_t poly)
}
bool
-BlockImpl::apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly)
+BlockImpl::apply_poly(RunContext& context, Raul::Maid& maid, uint32_t poly)
{
if (!_polyphonic)
poly = 1;
@@ -136,7 +135,7 @@ BlockImpl::apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly)
}
void
-BlockImpl::set_buffer_size(Context& context,
+BlockImpl::set_buffer_size(RunContext& context,
BufferFactory& bufs,
LV2_URID type,
uint32_t size)
@@ -178,7 +177,7 @@ BlockImpl::port_by_symbol(const char* symbol)
}
void
-BlockImpl::pre_process(ProcessContext& context)
+BlockImpl::pre_process(RunContext& context)
{
// Mix down input ports
for (uint32_t i = 0; i < num_ports(); ++i) {
@@ -189,7 +188,7 @@ BlockImpl::pre_process(ProcessContext& context)
}
void
-BlockImpl::process(ProcessContext& context)
+BlockImpl::process(RunContext& context)
{
pre_process(context);
@@ -224,7 +223,7 @@ BlockImpl::process(ProcessContext& context)
return;
}
- ProcessContext subcontext(context);
+ RunContext subcontext(context);
for (SampleCount offset = 0; offset < context.nframes();) {
// Find earliest offset of a value change
SampleCount chunk_end = context.nframes();
@@ -259,7 +258,7 @@ BlockImpl::process(ProcessContext& context)
}
void
-BlockImpl::post_process(ProcessContext& context)
+BlockImpl::post_process(RunContext& context)
{
// Write output ports
for (uint32_t i = 0; _ports && i < _ports->size(); ++i) {
diff --git a/src/server/BlockImpl.hpp b/src/server/BlockImpl.hpp
index 1924d5fe..47eaa6eb 100644
--- a/src/server/BlockImpl.hpp
+++ b/src/server/BlockImpl.hpp
@@ -27,10 +27,10 @@
#include "raul/Array.hpp"
#include "BufferRef.hpp"
-#include "Context.hpp"
#include "NodeImpl.hpp"
#include "PluginImpl.hpp"
#include "PortType.hpp"
+#include "RunContext.hpp"
#include "types.hpp"
namespace Raul {
@@ -42,12 +42,11 @@ namespace Server {
class Buffer;
class BufferFactory;
-class Context;
class Engine;
class GraphImpl;
class PluginImpl;
class PortImpl;
-class ProcessContext;
+class RunContext;
class Worker;
/** A Block in a Graph (which is also a Block).
@@ -115,16 +114,16 @@ public:
virtual void learn() {}
/** Do whatever needs doing in the process thread before process() is called */
- virtual void pre_process(ProcessContext& context);
+ virtual void pre_process(RunContext& context);
/** Run block for an entire process cycle (calls run()). */
- virtual void process(ProcessContext& context);
+ virtual void process(RunContext& context);
/** Run block for a portion of process cycle (called from process()). */
- virtual void run(ProcessContext& context) = 0;
+ virtual void run(RunContext& context) = 0;
/** Do whatever needs doing in the process thread after process() is called */
- virtual void post_process(ProcessContext& context);
+ virtual void post_process(RunContext& context);
/** Set the buffer of a port to a given buffer (e.g. connect plugin to buffer) */
virtual void set_port_buffer(uint32_t voice,
@@ -154,7 +153,7 @@ public:
virtual bool prepare_poly(BufferFactory& bufs, uint32_t poly);
virtual bool apply_poly(
- ProcessContext& context, Raul::Maid& maid, uint32_t poly);
+ RunContext& context, Raul::Maid& maid, uint32_t poly);
/** Information about the Plugin this Block is an instance of.
* Not the best name - not all blocks come from plugins (ie Graph)
@@ -168,7 +167,7 @@ public:
virtual void plugin(PluginImpl* pi) { _plugin = pi; }
- virtual void set_buffer_size(Context& context,
+ virtual void set_buffer_size(RunContext& context,
BufferFactory& bufs,
LV2_URID type,
uint32_t size);
@@ -176,7 +175,6 @@ public:
/** The Graph this Block belongs to. */
inline GraphImpl* parent_graph() const { return (GraphImpl*)_parent; }
- Context::ID context() const { return _context; }
uint32_t num_ports() const { return _ports ? _ports->size() : 0; }
virtual uint32_t polyphony() const { return _polyphony; }
@@ -189,7 +187,6 @@ protected:
PluginImpl* _plugin;
Raul::Array<PortImpl*>* _ports; ///< Access in audio thread only
- Context::ID _context; ///< Context this block runs in
uint32_t _polyphony;
std::set<BlockImpl*> _providers; ///< Blocks connected to this one's input ports
std::set<BlockImpl*> _dependants; ///< Blocks this one's output ports are connected to
diff --git a/src/server/Buffer.cpp b/src/server/Buffer.cpp
index 97f1c308..2e977845 100644
--- a/src/server/Buffer.cpp
+++ b/src/server/Buffer.cpp
@@ -136,7 +136,7 @@ Buffer::clear()
}
void
-Buffer::render_sequence(const Context& context, const Buffer* src, bool add)
+Buffer::render_sequence(const RunContext& context, const Buffer* src, bool add)
{
const LV2_URID atom_Float = _factory.uris().atom_Float;
const LV2_Atom_Sequence* seq = src->get<const LV2_Atom_Sequence>();
@@ -154,7 +154,7 @@ Buffer::render_sequence(const Context& context, const Buffer* src, bool add)
}
void
-Buffer::copy(const Context& context, const Buffer* src)
+Buffer::copy(const RunContext& context, const Buffer* src)
{
if (!_buf) {
return;
@@ -233,7 +233,7 @@ mm_abs_ps(__m128 x)
#endif
float
-Buffer::peak(const Context& context) const
+Buffer::peak(const RunContext& context) const
{
#ifdef __SSE__
const __m128* const vbuf = (const __m128* const)samples();
@@ -276,7 +276,7 @@ Buffer::peak(const Context& context) const
}
void
-Buffer::prepare_write(Context& context)
+Buffer::prepare_write(RunContext& context)
{
if (_type == _factory.uris().atom_Sequence) {
LV2_Atom* atom = get<LV2_Atom>();
@@ -288,7 +288,7 @@ Buffer::prepare_write(Context& context)
}
void
-Buffer::prepare_output_write(Context& context)
+Buffer::prepare_output_write(RunContext& context)
{
if (_type == _factory.uris().atom_Sequence) {
LV2_Atom* atom = get<LV2_Atom>();
diff --git a/src/server/Buffer.hpp b/src/server/Buffer.hpp
index aa732781..6944257f 100644
--- a/src/server/Buffer.hpp
+++ b/src/server/Buffer.hpp
@@ -35,9 +35,9 @@
namespace Ingen {
namespace Server {
-class Context;
-class Engine;
class BufferFactory;
+class Engine;
+class RunContext;
class INGEN_API Buffer : public boost::noncopyable
{
@@ -51,8 +51,8 @@ public:
void clear();
void resize(uint32_t size);
- void copy(const Context& context, const Buffer* src);
- void prepare_write(Context& context);
+ void copy(const RunContext& context, const Buffer* src);
+ void prepare_write(RunContext& context);
void* port_data(PortType port_type, SampleCount offset);
const void* port_data(PortType port_type, SampleCount offset) const;
@@ -157,10 +157,10 @@ public:
}
/// Audio buffers only
- float peak(const Context& context) const;
+ float peak(const RunContext& context) const;
/// Sequence buffers only
- void prepare_output_write(Context& context);
+ void prepare_output_write(RunContext& context);
/// Sequence buffers only
bool append_event(int64_t frames,
@@ -182,7 +182,7 @@ public:
void update_value_buffer(SampleCount offset);
/// Set/add to audio buffer from the Sequence of Float in `src`
- void render_sequence(const Context& context, const Buffer* src, bool add);
+ void render_sequence(const RunContext& context, const Buffer* src, bool add);
void set_capacity(uint32_t capacity) { _capacity = capacity; }
diff --git a/src/server/ControlBindings.cpp b/src/server/ControlBindings.cpp
index cdce838c..6e8775e7 100644
--- a/src/server/ControlBindings.cpp
+++ b/src/server/ControlBindings.cpp
@@ -28,7 +28,7 @@
#include "Driver.hpp"
#include "Engine.hpp"
#include "PortImpl.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
#include "ThreadManager.hpp"
using namespace std;
@@ -125,9 +125,9 @@ ControlBindings::midi_event_key(uint16_t size, const uint8_t* buf, uint16_t& val
}
void
-ControlBindings::port_binding_changed(ProcessContext& context,
- PortImpl* port,
- const Atom& binding)
+ControlBindings::port_binding_changed(RunContext& context,
+ PortImpl* port,
+ const Atom& binding)
{
const Key key = binding_key(binding);
if (key) {
@@ -136,10 +136,10 @@ ControlBindings::port_binding_changed(ProcessContext& context,
}
void
-ControlBindings::port_value_changed(ProcessContext& context,
- PortImpl* port,
- Key key,
- const Atom& value_atom)
+ControlBindings::port_value_changed(RunContext& context,
+ PortImpl* port,
+ Key key,
+ const Atom& value_atom)
{
Ingen::World* world = context.engine().world();
const Ingen::URIs& uris = world->uris();
@@ -193,7 +193,7 @@ ControlBindings::learn(PortImpl* port)
}
static void
-get_range(ProcessContext& context, const PortImpl* port, float* min, float* max)
+get_range(RunContext& context, const PortImpl* port, float* min, float* max)
{
*min = port->minimum().get<float>();
*max = port->maximum().get<float>();
@@ -204,7 +204,7 @@ get_range(ProcessContext& context, const PortImpl* port, float* min, float* max)
}
Atom
-ControlBindings::control_to_port_value(ProcessContext& context,
+ControlBindings::control_to_port_value(RunContext& context,
const PortImpl* port,
Type type,
int16_t value) const
@@ -236,9 +236,9 @@ ControlBindings::control_to_port_value(ProcessContext& context,
}
int16_t
-ControlBindings::port_value_to_control(ProcessContext& context,
- PortImpl* port,
- Type type,
+ControlBindings::port_value_to_control(RunContext& context,
+ PortImpl* port,
+ Type type,
const Atom& value_atom) const
{
if (value_atom.type() != port->bufs().forge().Float)
@@ -307,10 +307,10 @@ forge_binding(const URIs& uris,
}
void
-ControlBindings::set_port_value(ProcessContext& context,
- PortImpl* port,
- Type type,
- int16_t value)
+ControlBindings::set_port_value(RunContext& context,
+ PortImpl* port,
+ Type type,
+ int16_t value)
{
float min, max;
get_range(context, port, &min, &max);
@@ -327,7 +327,7 @@ ControlBindings::set_port_value(ProcessContext& context,
}
bool
-ControlBindings::bind(ProcessContext& context, Key key)
+ControlBindings::bind(RunContext& context, Key key)
{
const Ingen::URIs& uris = context.engine().world()->uris();
assert(_learn_port);
@@ -397,7 +397,7 @@ ControlBindings::remove(PortImpl* port)
}
void
-ControlBindings::pre_process(ProcessContext& context, Buffer* buffer)
+ControlBindings::pre_process(RunContext& context, Buffer* buffer)
{
uint16_t value = 0;
SPtr<Bindings> bindings = _bindings;
@@ -429,7 +429,7 @@ ControlBindings::pre_process(ProcessContext& context, Buffer* buffer)
}
void
-ControlBindings::post_process(ProcessContext& context, Buffer* buffer)
+ControlBindings::post_process(RunContext& context, Buffer* buffer)
{
// TODO: merge buffer's existing contents (anything send to it in the graph)
buffer->copy(context, _feedback.get());
diff --git a/src/server/ControlBindings.hpp b/src/server/ControlBindings.hpp
index 9f06c139..7ff4b3dc 100644
--- a/src/server/ControlBindings.hpp
+++ b/src/server/ControlBindings.hpp
@@ -31,7 +31,7 @@ namespace Ingen {
namespace Server {
class Engine;
-class ProcessContext;
+class RunContext;
class PortImpl;
class ControlBindings {
@@ -66,17 +66,17 @@ public:
void learn(PortImpl* port);
- void port_binding_changed(ProcessContext& context,
- PortImpl* port,
+ void port_binding_changed(RunContext& context,
+ PortImpl* port,
const Atom& binding);
- void port_value_changed(ProcessContext& context,
- PortImpl* port,
- Key key,
+ void port_value_changed(RunContext& context,
+ PortImpl* port,
+ Key key,
const Atom& value);
- void pre_process(ProcessContext& context, Buffer* control_in);
- void post_process(ProcessContext& context, Buffer* control_out);
+ void pre_process(RunContext& context, Buffer* control_in);
+ void post_process(RunContext& context, Buffer* control_out);
/** Remove all bindings for `path` or children of `path`.
* The caller must safely drop the returned reference in the
@@ -93,19 +93,19 @@ public:
private:
Key midi_event_key(uint16_t size, const uint8_t* buf, uint16_t& value);
- void set_port_value(ProcessContext& context,
+ void set_port_value(RunContext& context,
PortImpl* port,
Type type,
int16_t value);
- bool bind(ProcessContext& context, Key key);
+ bool bind(RunContext& context, Key key);
- Atom control_to_port_value(ProcessContext& context,
+ Atom control_to_port_value(RunContext& context,
const PortImpl* port,
Type type,
int16_t value) const;
- int16_t port_value_to_control(ProcessContext& context,
+ int16_t port_value_to_control(RunContext& context,
PortImpl* port,
Type type,
const Atom& value) const;
diff --git a/src/server/DirectDriver.hpp b/src/server/DirectDriver.hpp
index 51f40f99..a8c7c803 100644
--- a/src/server/DirectDriver.hpp
+++ b/src/server/DirectDriver.hpp
@@ -55,11 +55,11 @@ public:
return NULL;
}
- virtual void add_port(ProcessContext& context, EnginePort* port) {
+ virtual void add_port(RunContext& context, EnginePort* port) {
_ports.push_back(*port);
}
- virtual void remove_port(ProcessContext& context, EnginePort* port) {
+ virtual void remove_port(RunContext& context, EnginePort* port) {
_ports.erase(_ports.iterator_to(*port));
}
@@ -81,7 +81,7 @@ public:
virtual SampleCount frame_time() const { return 0; }
- virtual void append_time_events(ProcessContext& context,
+ virtual void append_time_events(RunContext& context,
Buffer& buffer) {}
private:
diff --git a/src/server/Driver.hpp b/src/server/Driver.hpp
index 4255f652..9f261494 100644
--- a/src/server/Driver.hpp
+++ b/src/server/Driver.hpp
@@ -56,7 +56,7 @@ public:
virtual EnginePort* get_port(const Raul::Path& path) = 0;
/** Add a system visible port (e.g. a port on the root graph). */
- virtual void add_port(ProcessContext& context, EnginePort* port) = 0;
+ virtual void add_port(RunContext& context, EnginePort* port) = 0;
/** Remove a system visible port.
*
@@ -64,7 +64,7 @@ public:
* destroy the port. To actually remove the system port, unregister_port()
* must be called later in another thread.
*/
- virtual void remove_port(ProcessContext& context, EnginePort* port) = 0;
+ virtual void remove_port(RunContext& context, EnginePort* port) = 0;
/** Register a system visible port. */
virtual void register_port(EnginePort& port) = 0;
@@ -94,7 +94,7 @@ public:
virtual SampleCount frame_time() const = 0;
/** Append time events for this cycle to `buffer`. */
- virtual void append_time_events(ProcessContext& context,
+ virtual void append_time_events(RunContext& context,
Buffer& buffer) = 0;
};
diff --git a/src/server/DuplexPort.cpp b/src/server/DuplexPort.cpp
index f116ae09..7e0e3cce 100644
--- a/src/server/DuplexPort.cpp
+++ b/src/server/DuplexPort.cpp
@@ -153,7 +153,7 @@ DuplexPort::set_driver_buffer(void* buf, uint32_t capacity)
}
uint32_t
-DuplexPort::max_tail_poly(Context& context) const
+DuplexPort::max_tail_poly(RunContext& context) const
{
return std::max(_poly, parent_graph()->internal_poly_process());
}
@@ -170,7 +170,7 @@ DuplexPort::prepare_poly(BufferFactory& bufs, uint32_t poly)
}
bool
-DuplexPort::apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly)
+DuplexPort::apply_poly(RunContext& context, Raul::Maid& maid, uint32_t poly)
{
if (!parent()->parent() ||
poly != parent()->parent_graph()->internal_poly()) {
@@ -181,7 +181,7 @@ DuplexPort::apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly)
}
void
-DuplexPort::pre_process(Context& context)
+DuplexPort::pre_process(RunContext& context)
{
if (_is_output) {
/* This is a graph output, which is an input from the internal
@@ -200,7 +200,7 @@ DuplexPort::pre_process(Context& context)
}
void
-DuplexPort::post_process(Context& context)
+DuplexPort::post_process(RunContext& context)
{
if (_is_output) {
/* This is a graph output, which is an input from the internal
diff --git a/src/server/DuplexPort.hpp b/src/server/DuplexPort.hpp
index 36e37b0b..836faa36 100644
--- a/src/server/DuplexPort.hpp
+++ b/src/server/DuplexPort.hpp
@@ -65,11 +65,11 @@ public:
void on_property(const Raul::URI& uri, const Atom& value);
- uint32_t max_tail_poly(Context& context) const;
+ uint32_t max_tail_poly(RunContext& context) const;
bool prepare_poly(BufferFactory& bufs, uint32_t poly);
- bool apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly);
+ bool apply_poly(RunContext& context, Raul::Maid& maid, uint32_t poly);
bool get_buffers(BufferFactory& bufs,
Raul::Array<Voice>* voices,
@@ -86,8 +86,8 @@ public:
*/
void set_driver_buffer(void* buf, uint32_t capacity);
- void pre_process(Context& context);
- void post_process(Context& context);
+ void pre_process(RunContext& context);
+ void post_process(RunContext& context);
SampleCount next_value_offset(SampleCount offset, SampleCount end) const;
void update_values(SampleCount offset, uint32_t voice);
diff --git a/src/server/Engine.cpp b/src/server/Engine.cpp
index ee56be3c..8fa4d2f5 100644
--- a/src/server/Engine.cpp
+++ b/src/server/Engine.cpp
@@ -46,7 +46,7 @@
#include "LV2Options.hpp"
#include "PostProcessor.hpp"
#include "PreProcessor.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
#include "ThreadManager.hpp"
#include "UndoStack.hpp"
#include "Worker.hpp"
@@ -80,7 +80,7 @@ Engine::Engine(Ingen::World* world)
, _worker(new Worker(world->log(), event_queue_size()))
, _sync_worker(new Worker(world->log(), event_queue_size(), true))
, _listener(NULL)
- , _process_context(*this)
+ , _run_context(*this)
, _rand_engine(0)
, _uniform_dist(0.0f, 1.0f)
, _quit_flag(false)
@@ -115,11 +115,11 @@ Engine::~Engine()
// Process all pending events
const FrameTime end = std::numeric_limits<FrameTime>::max();
- _process_context.locate(_process_context.end(), end - _process_context.end());
+ _run_context.locate(_run_context.end(), end - _run_context.end());
_post_processor->set_end_time(end);
_post_processor->process();
while (!_pre_processor->empty()) {
- _pre_processor->process(_process_context, *_post_processor, 1);
+ _pre_processor->process(_run_context, *_post_processor, 1);
_post_processor->process();
}
@@ -203,7 +203,7 @@ Engine::event_time()
}
const SampleCount start = _direct_driver
- ? _process_context.start()
+ ? _run_context.start()
: _driver->frame_time();
/* Exactly one cycle latency (some could run ASAP if we get lucky, but not
@@ -250,7 +250,7 @@ Engine::activate()
*this, SPtr<Interface>(), -1, 0, Raul::Path("/"), graph_properties);
// Execute in "fake" process context (we are single threaded)
- ProcessContext context(*this);
+ RunContext context(*this);
ev.pre_process();
ev.execute(context);
ev.post_process();
@@ -283,13 +283,13 @@ Engine::deactivate()
unsigned
Engine::run(uint32_t sample_count)
{
- _process_context.locate(_process_context.end(), sample_count);
+ _run_context.locate(_run_context.end(), sample_count);
// Apply control bindings to input
control_bindings()->pre_process(
- _process_context, _root_graph->port_impl(0)->buffer(0).get());
+ _run_context, _root_graph->port_impl(0)->buffer(0).get());
- post_processor()->set_end_time(_process_context.end());
+ post_processor()->set_end_time(_run_context.end());
// Process events that came in during the last cycle
// (Aiming for jitter-free 1 block event latency, ideally)
@@ -297,11 +297,11 @@ Engine::run(uint32_t sample_count)
// Run root graph
if (_root_graph) {
- _root_graph->process(_process_context);
+ _root_graph->process(_run_context);
// Emit control binding feedback
control_bindings()->post_process(
- _process_context, _root_graph->port_impl(1)->buffer(0).get());
+ _run_context, _root_graph->port_impl(1)->buffer(0).get());
}
return n_processed_events;
@@ -322,9 +322,9 @@ Engine::enqueue_event(Event* ev, Event::Mode mode)
unsigned
Engine::process_events()
{
- const size_t MAX_EVENTS_PER_CYCLE = _process_context.nframes() / 8;
+ const size_t MAX_EVENTS_PER_CYCLE = _run_context.nframes() / 8;
return _pre_processor->process(
- _process_context, *_post_processor, MAX_EVENTS_PER_CYCLE);
+ _run_context, *_post_processor, MAX_EVENTS_PER_CYCLE);
}
void
diff --git a/src/server/Engine.hpp b/src/server/Engine.hpp
index 37c3c713..82cbcdfb 100644
--- a/src/server/Engine.hpp
+++ b/src/server/Engine.hpp
@@ -27,7 +27,7 @@
#include "ingen/types.hpp"
#include "Event.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
namespace Raul { class Maid; }
@@ -49,7 +49,7 @@ class GraphImpl;
class LV2Options;
class PostProcessor;
class PreProcessor;
-class ProcessContext;
+class RunContext;
class SocketListener;
class UndoStack;
class Worker;
@@ -96,10 +96,6 @@ public:
/** Process events (process thread only). */
unsigned process_events();
- bool is_process_context(const Context& context) const {
- return &context == &_process_context;
- }
-
Ingen::World* world() const { return _world; }
EventWriter* interface() const { return _event_writer; }
@@ -118,7 +114,7 @@ public:
Worker* worker() const { return _worker; }
Worker* sync_worker() const { return _sync_worker; }
- ProcessContext& process_context() { return _process_context; }
+ RunContext& run_context() { return _run_context; }
SPtr<Store> store() const;
@@ -145,7 +141,7 @@ private:
Worker* _sync_worker;
SocketListener* _listener;
- ProcessContext _process_context;
+ RunContext _run_context;
std::mt19937 _rand_engine;
std::uniform_real_distribution<float> _uniform_dist;
diff --git a/src/server/Event.hpp b/src/server/Event.hpp
index 15ce386b..3cec155e 100644
--- a/src/server/Event.hpp
+++ b/src/server/Event.hpp
@@ -34,7 +34,7 @@ namespace Ingen {
namespace Server {
class Engine;
-class ProcessContext;
+class RunContext;
/** An event (command) to perform some action on Ingen.
*
@@ -60,7 +60,7 @@ public:
virtual bool pre_process() = 0;
/** Execute this event in the audio thread (realtime). */
- virtual void execute(ProcessContext& context) = 0;
+ virtual void execute(RunContext& context) = 0;
/** Post-process event after execution (non-realtime). */
virtual void post_process() = 0;
diff --git a/src/server/GraphImpl.cpp b/src/server/GraphImpl.cpp
index ef7f6a22..86966b7c 100644
--- a/src/server/GraphImpl.cpp
+++ b/src/server/GraphImpl.cpp
@@ -153,7 +153,7 @@ GraphImpl::deactivate()
}
void
-GraphImpl::disable(ProcessContext& context)
+GraphImpl::disable(RunContext& context)
{
_process = false;
for (auto& o : _outputs) {
@@ -177,10 +177,10 @@ GraphImpl::prepare_internal_poly(BufferFactory& bufs, uint32_t poly)
}
bool
-GraphImpl::apply_internal_poly(ProcessContext& context,
- BufferFactory& bufs,
- Raul::Maid& maid,
- uint32_t poly)
+GraphImpl::apply_internal_poly(RunContext& context,
+ BufferFactory& bufs,
+ Raul::Maid& maid,
+ uint32_t poly)
{
// TODO: Subgraph dynamic polyphony (i.e. changing port polyphony)
@@ -206,7 +206,7 @@ GraphImpl::apply_internal_poly(ProcessContext& context,
}
void
-GraphImpl::pre_process(ProcessContext& context)
+GraphImpl::pre_process(RunContext& context)
{
// Mix down input ports and connect buffers
for (uint32_t i = 0; i < num_ports(); ++i) {
@@ -220,7 +220,7 @@ GraphImpl::pre_process(ProcessContext& context)
}
void
-GraphImpl::process(ProcessContext& context)
+GraphImpl::process(RunContext& context)
{
if (!_process)
return;
@@ -231,7 +231,7 @@ GraphImpl::process(ProcessContext& context)
}
void
-GraphImpl::run(ProcessContext& context)
+GraphImpl::run(RunContext& context)
{
if (_compiled_graph && _compiled_graph->size() > 0) {
// Run all blocks
@@ -242,7 +242,7 @@ GraphImpl::run(ProcessContext& context)
}
void
-GraphImpl::set_buffer_size(Context& context,
+GraphImpl::set_buffer_size(RunContext& context,
BufferFactory& bufs,
LV2_URID type,
uint32_t size)
diff --git a/src/server/GraphImpl.hpp b/src/server/GraphImpl.hpp
index bedf902c..7352da39 100644
--- a/src/server/GraphImpl.hpp
+++ b/src/server/GraphImpl.hpp
@@ -34,9 +34,8 @@ namespace Server {
class ArcImpl;
class CompiledGraph;
-class Context;
class Engine;
-class ProcessContext;
+class RunContext;
/** A group of blocks in a graph, possibly polyphonic.
*
@@ -67,11 +66,11 @@ public:
void activate(BufferFactory& bufs);
void deactivate();
- void pre_process(ProcessContext& context);
- void process(ProcessContext& context);
- void run(ProcessContext& context);
+ void pre_process(RunContext& context);
+ void process(RunContext& context);
+ void run(RunContext& context);
- void set_buffer_size(Context& context,
+ void set_buffer_size(RunContext& context,
BufferFactory& bufs,
LV2_URID type,
uint32_t size);
@@ -92,10 +91,10 @@ public:
* \param poly Must be < the most recent value passed to prepare_internal_poly.
* \param maid Any objects no longer needed will be pushed to this
*/
- bool apply_internal_poly(ProcessContext& context,
- BufferFactory& bufs,
- Raul::Maid& maid,
- uint32_t poly);
+ bool apply_internal_poly(RunContext& context,
+ BufferFactory& bufs,
+ Raul::Maid& maid,
+ uint32_t poly);
// Graph specific stuff not inherited from Block
@@ -181,7 +180,7 @@ public:
/** Whether to run this graph's DSP bits in the audio thread */
bool enabled() const { return _process; }
void enable() { _process = true; }
- void disable(ProcessContext& context);
+ void disable(RunContext& context);
uint32_t internal_poly() const { return _poly_pre; }
uint32_t internal_poly_process() const { return _poly_process; }
diff --git a/src/server/InputPort.cpp b/src/server/InputPort.cpp
index abaf5b62..8ee0f56a 100644
--- a/src/server/InputPort.cpp
+++ b/src/server/InputPort.cpp
@@ -28,7 +28,7 @@
#include "GraphImpl.hpp"
#include "InputPort.hpp"
#include "OutputPort.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
#include "mix.hpp"
using namespace std;
@@ -56,7 +56,7 @@ InputPort::InputPort(BufferFactory& bufs,
}
bool
-InputPort::apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly)
+InputPort::apply_poly(RunContext& context, Raul::Maid& maid, uint32_t poly)
{
bool ret = PortImpl::apply_poly(context, maid, poly);
if (!ret)
@@ -109,13 +109,13 @@ InputPort::get_buffers(BufferFactory& bufs,
}
void
-InputPort::add_arc(ProcessContext& context, ArcImpl* c)
+InputPort::add_arc(RunContext& context, ArcImpl* c)
{
_arcs.push_front(*c);
}
ArcImpl*
-InputPort::remove_arc(ProcessContext& context, const OutputPort* tail)
+InputPort::remove_arc(RunContext& context, const OutputPort* tail)
{
ArcImpl* arc = NULL;
for (Arcs::iterator i = _arcs.begin(); i != _arcs.end(); ++i) {
@@ -135,13 +135,13 @@ InputPort::remove_arc(ProcessContext& context, const OutputPort* tail)
}
uint32_t
-InputPort::max_tail_poly(Context& context) const
+InputPort::max_tail_poly(RunContext& context) const
{
return parent_block()->parent_graph()->internal_poly_process();
}
void
-InputPort::pre_process(Context& context)
+InputPort::pre_process(RunContext& context)
{
if (_set_by_user) {
// Value has been set (e.g. events pushed) by the user, don't smash it
@@ -167,7 +167,7 @@ InputPort::pre_process(Context& context)
}
void
-InputPort::pre_run(Context& context)
+InputPort::pre_run(RunContext& context)
{
if (!_set_by_user && !_arcs.empty() && !direct_connect()) {
const uint32_t src_poly = max_tail_poly(context);
@@ -220,7 +220,7 @@ InputPort::update_values(SampleCount offset, uint32_t voice)
}
void
-InputPort::post_process(Context& context)
+InputPort::post_process(RunContext& context)
{
if (!_arcs.empty() || _force_monitor_update) {
monitor(context, _force_monitor_update);
diff --git a/src/server/InputPort.hpp b/src/server/InputPort.hpp
index 7394c19a..304185cc 100644
--- a/src/server/InputPort.hpp
+++ b/src/server/InputPort.hpp
@@ -31,10 +31,9 @@ namespace Ingen {
namespace Server {
class ArcImpl;
-class Context;
class BlockImpl;
class OutputPort;
-class ProcessContext;
+class RunContext;
/** An input port on a Block or Graph.
*
@@ -67,9 +66,9 @@ public:
> Arcs;
/** Return the maximum polyphony of an output connected to this input. */
- virtual uint32_t max_tail_poly(Context& context) const;
+ virtual uint32_t max_tail_poly(RunContext& context) const;
- bool apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly);
+ bool apply_poly(RunContext& context, Raul::Maid& maid, uint32_t poly);
/** Add an arc. Realtime safe.
*
@@ -78,13 +77,13 @@ public:
*
* setup_buffers() must be called later for the change to take effect.
*/
- void add_arc(ProcessContext& context, ArcImpl* c);
+ void add_arc(RunContext& context, ArcImpl* c);
/** Remove an arc. Realtime safe.
*
* setup_buffers() must be called later for the change to take effect.
*/
- ArcImpl* remove_arc(ProcessContext& context,
+ ArcImpl* remove_arc(RunContext& context,
const OutputPort* tail);
/** Set `voices` as the buffers to be used for this port.
@@ -97,13 +96,13 @@ public:
bool real_time) const;
/** Set up buffer pointers. */
- void pre_process(Context& context);
+ void pre_process(RunContext& context);
/** Prepare buffer for access, mixing if necessary. */
- void pre_run(Context& context);
+ void pre_run(RunContext& context);
/** Prepare buffer for next process cycle. */
- void post_process(Context& context);
+ void post_process(RunContext& context);
SampleCount next_value_offset(SampleCount offset, SampleCount end) const;
void update_values(SampleCount offset, uint32_t voice);
diff --git a/src/server/InternalBlock.cpp b/src/server/InternalBlock.cpp
index 308cb640..ef9af87e 100644
--- a/src/server/InternalBlock.cpp
+++ b/src/server/InternalBlock.cpp
@@ -31,7 +31,7 @@ InternalBlock::InternalBlock(PluginImpl* plugin,
void
-InternalBlock::pre_process(ProcessContext& context)
+InternalBlock::pre_process(RunContext& context)
{
for (uint32_t i = 0; i < num_ports(); ++i) {
PortImpl* const port = _ports->at(i);
diff --git a/src/server/InternalBlock.hpp b/src/server/InternalBlock.hpp
index c88e87d1..6ba25311 100644
--- a/src/server/InternalBlock.hpp
+++ b/src/server/InternalBlock.hpp
@@ -35,7 +35,7 @@ public:
GraphImpl* parent,
SampleRate rate);
- virtual void pre_process(ProcessContext& context);
+ virtual void pre_process(RunContext& context);
};
} // namespace Server
diff --git a/src/server/JackDriver.cpp b/src/server/JackDriver.cpp
index 531fb93e..13f05ed5 100644
--- a/src/server/JackDriver.cpp
+++ b/src/server/JackDriver.cpp
@@ -209,7 +209,7 @@ JackDriver::get_port(const Raul::Path& path)
}
void
-JackDriver::add_port(ProcessContext& context, EnginePort* port)
+JackDriver::add_port(RunContext& context, EnginePort* port)
{
_ports.push_back(*port);
@@ -223,7 +223,7 @@ JackDriver::add_port(ProcessContext& context, EnginePort* port)
}
void
-JackDriver::remove_port(ProcessContext& context, EnginePort* port)
+JackDriver::remove_port(RunContext& context, EnginePort* port)
{
_ports.erase(_ports.iterator_to(*port));
}
@@ -336,7 +336,7 @@ JackDriver::create_port(DuplexPort* graph_port)
}
void
-JackDriver::pre_process_port(ProcessContext& context, EnginePort* port)
+JackDriver::pre_process_port(RunContext& context, EnginePort* port)
{
const URIs& uris = context.engine().world()->uris();
const SampleCount nframes = context.nframes();
@@ -371,7 +371,7 @@ JackDriver::pre_process_port(ProcessContext& context, EnginePort* port)
}
void
-JackDriver::post_process_port(ProcessContext& context, EnginePort* port)
+JackDriver::post_process_port(RunContext& context, EnginePort* port)
{
const URIs& uris = context.engine().world()->uris();
const SampleCount nframes = context.nframes();
@@ -409,7 +409,7 @@ JackDriver::post_process_port(ProcessContext& context, EnginePort* port)
}
void
-JackDriver::append_time_events(ProcessContext& context,
+JackDriver::append_time_events(RunContext& context,
Buffer& buffer)
{
const URIs& uris = context.engine().world()->uris();
@@ -479,18 +479,18 @@ JackDriver::_process_cb(jack_nframes_t nframes)
_transport_state = jack_transport_query(_client, &_position);
- _engine.process_context().locate(start_of_current_cycle, nframes);
+ _engine.run_context().locate(start_of_current_cycle, nframes);
// Read input
for (auto& p : _ports) {
- pre_process_port(_engine.process_context(), &p);
+ pre_process_port(_engine.run_context(), &p);
}
_engine.run(nframes);
// Write output
for (auto& p : _ports) {
- post_process_port(_engine.process_context(), &p);
+ post_process_port(_engine.run_context(), &p);
}
// Update expected transport frame for next cycle to detect changes
@@ -523,10 +523,10 @@ JackDriver::_block_length_cb(jack_nframes_t nframes)
_block_length = nframes;
_seq_size = jack_port_type_get_buffer_size(_client, JACK_DEFAULT_MIDI_TYPE);
_engine.root_graph()->set_buffer_size(
- _engine.process_context(), *_engine.buffer_factory(), PortType::AUDIO,
+ _engine.run_context(), *_engine.buffer_factory(), PortType::AUDIO,
_engine.buffer_factory()->audio_buffer_size(nframes));
_engine.root_graph()->set_buffer_size(
- _engine.process_context(), *_engine.buffer_factory(), PortType::ATOM,
+ _engine.run_context(), *_engine.buffer_factory(), PortType::ATOM,
_seq_size);
}
return 0;
diff --git a/src/server/JackDriver.hpp b/src/server/JackDriver.hpp
index bf424623..a5422f6a 100644
--- a/src/server/JackDriver.hpp
+++ b/src/server/JackDriver.hpp
@@ -74,8 +74,8 @@ public:
void rename_port(const Raul::Path& old_path, const Raul::Path& new_path);
void port_property(const Raul::Path& path, const Raul::URI& uri, const Atom& value);
- void add_port(ProcessContext& context, EnginePort* port);
- void remove_port(ProcessContext& context, EnginePort* port);
+ void add_port(RunContext& context, EnginePort* port);
+ void remove_port(RunContext& context, EnginePort* port);
void register_port(EnginePort& port);
void unregister_port(EnginePort& port);
@@ -84,7 +84,7 @@ public:
inline const jack_position_t* position() { return &_position; }
inline jack_transport_state_t transport_state() { return _transport_state; }
- void append_time_events(ProcessContext& context,
+ void append_time_events(RunContext& context,
Buffer& buffer);
jack_client_t* jack_client() const { return _client; }
@@ -118,8 +118,8 @@ private:
}
#endif
- void pre_process_port(ProcessContext& context, EnginePort* port);
- void post_process_port(ProcessContext& context, EnginePort* port);
+ void pre_process_port(RunContext& context, EnginePort* port);
+ void post_process_port(RunContext& context, EnginePort* port);
void port_property_internal(const jack_port_t* jport,
const Raul::URI& uri,
diff --git a/src/server/LV2Block.cpp b/src/server/LV2Block.cpp
index de91699b..7dcfb362 100644
--- a/src/server/LV2Block.cpp
+++ b/src/server/LV2Block.cpp
@@ -43,7 +43,7 @@
#include "LV2Block.hpp"
#include "LV2Plugin.hpp"
#include "OutputPort.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
#include "Worker.hpp"
using namespace std;
@@ -205,7 +205,7 @@ LV2Block::prepare_poly(BufferFactory& bufs, uint32_t poly)
}
bool
-LV2Block::apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly)
+LV2Block::apply_poly(RunContext& context, Raul::Maid& maid, uint32_t poly)
{
if (!_polyphonic)
poly = 1;
@@ -545,14 +545,14 @@ LV2Block::work(uint32_t size, const void* data)
}
void
-LV2Block::run(ProcessContext& context)
+LV2Block::run(RunContext& context)
{
for (uint32_t i = 0; i < _polyphony; ++i)
lilv_instance_run(instance(i), context.nframes());
}
void
-LV2Block::post_process(ProcessContext& context)
+LV2Block::post_process(RunContext& context)
{
BlockImpl::post_process(context);
diff --git a/src/server/LV2Block.hpp b/src/server/LV2Block.hpp
index 6e78ad83..b8438d9e 100644
--- a/src/server/LV2Block.hpp
+++ b/src/server/LV2Block.hpp
@@ -57,15 +57,15 @@ public:
GraphImpl* parent);
bool prepare_poly(BufferFactory& bufs, uint32_t poly);
- bool apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly);
+ bool apply_poly(RunContext& context, Raul::Maid& maid, uint32_t poly);
void activate(BufferFactory& bufs);
void deactivate();
LV2_Worker_Status work(uint32_t size, const void* data);
- void run(ProcessContext& context);
- void post_process(ProcessContext& context);
+ void run(RunContext& context);
+ void post_process(RunContext& context);
LilvState* load_preset(const Raul::URI& uri);
diff --git a/src/server/NodeImpl.hpp b/src/server/NodeImpl.hpp
index 3d87b2f2..dc85a757 100644
--- a/src/server/NodeImpl.hpp
+++ b/src/server/NodeImpl.hpp
@@ -35,9 +35,8 @@ namespace Shared { class URIs; }
namespace Server {
class BufferFactory;
-class Context;
class GraphImpl;
-class ProcessContext;
+class RunContext;
/** An object on the audio graph (a Graph, Block, or Port).
*
@@ -88,7 +87,7 @@ public:
* \param maid Any objects no longer needed will be pushed to this
*/
virtual bool apply_poly(
- ProcessContext& context, Raul::Maid& maid, uint32_t poly) = 0;
+ RunContext& context, Raul::Maid& maid, uint32_t poly) = 0;
protected:
NodeImpl(const Ingen::URIs& uris,
diff --git a/src/server/OutputPort.cpp b/src/server/OutputPort.cpp
index 70acfd63..4121c6a9 100644
--- a/src/server/OutputPort.cpp
+++ b/src/server/OutputPort.cpp
@@ -59,7 +59,7 @@ OutputPort::get_buffers(BufferFactory& bufs,
}
void
-OutputPort::pre_process(Context& context)
+OutputPort::pre_process(RunContext& context)
{
for (uint32_t v = 0; v < _poly; ++v)
_voices->at(v).buffer->prepare_output_write(context);
@@ -85,7 +85,7 @@ OutputPort::update_values(SampleCount offset, uint32_t voice)
}
void
-OutputPort::post_process(Context& context)
+OutputPort::post_process(RunContext& context)
{
for (uint32_t v = 0; v < _poly; ++v) {
update_set_state(context, v);
diff --git a/src/server/OutputPort.hpp b/src/server/OutputPort.hpp
index b76d6d88..68c79768 100644
--- a/src/server/OutputPort.hpp
+++ b/src/server/OutputPort.hpp
@@ -51,8 +51,8 @@ public:
uint32_t poly,
bool real_time) const;
- void pre_process(Context& context);
- void post_process(Context& context);
+ void pre_process(RunContext& context);
+ void post_process(RunContext& context);
SampleCount next_value_offset(SampleCount offset, SampleCount end) const;
void update_values(SampleCount offset, uint32_t voice);
diff --git a/src/server/PortImpl.cpp b/src/server/PortImpl.cpp
index 87edd1f5..26fdd6cb 100644
--- a/src/server/PortImpl.cpp
+++ b/src/server/PortImpl.cpp
@@ -179,7 +179,7 @@ PortImpl::deactivate()
}
Raul::Array<PortImpl::Voice>*
-PortImpl::set_voices(ProcessContext& context, Raul::Array<Voice>* voices)
+PortImpl::set_voices(RunContext& context, Raul::Array<Voice>* voices)
{
Raul::Array<Voice>* ret = NULL;
if (voices != _voices) {
@@ -204,9 +204,9 @@ PortImpl::cache_properties()
}
void
-PortImpl::set_control_value(const Context& context,
- FrameTime time,
- Sample value)
+PortImpl::set_control_value(const RunContext& context,
+ FrameTime time,
+ Sample value)
{
for (uint32_t v = 0; v < _poly; ++v) {
set_voice_value(context, v, time, value);
@@ -214,10 +214,10 @@ PortImpl::set_control_value(const Context& context,
}
void
-PortImpl::set_voice_value(const Context& context,
- uint32_t voice,
- FrameTime time,
- Sample value)
+PortImpl::set_voice_value(const RunContext& context,
+ uint32_t voice,
+ FrameTime time,
+ Sample value)
{
switch (_type.id()) {
case PortType::CONTROL:
@@ -262,7 +262,7 @@ PortImpl::set_voice_value(const Context& context,
}
void
-PortImpl::update_set_state(Context& context, uint32_t v)
+PortImpl::update_set_state(RunContext& context, uint32_t v)
{
Voice& voice = _voices->at(v);
SetState& state = voice.set_state;
@@ -327,7 +327,7 @@ PortImpl::prepare_poly(BufferFactory& bufs, uint32_t poly)
}
bool
-PortImpl::apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly)
+PortImpl::apply_poly(RunContext& context, Raul::Maid& maid, uint32_t poly)
{
if (_parent->path().is_root() ||
(_type == PortType::ATOM && !_value.is_valid())) {
@@ -359,7 +359,7 @@ PortImpl::apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly)
}
void
-PortImpl::set_buffer_size(Context& context, BufferFactory& bufs, size_t size)
+PortImpl::set_buffer_size(RunContext& context, BufferFactory& bufs, size_t size)
{
_buffer_size = size;
@@ -413,7 +413,7 @@ PortImpl::clear_buffers()
}
void
-PortImpl::monitor(Context& context, bool send_now)
+PortImpl::monitor(RunContext& context, bool send_now)
{
if (!context.must_notify(this)) {
return;
diff --git a/src/server/PortImpl.hpp b/src/server/PortImpl.hpp
index d16ec10f..41666523 100644
--- a/src/server/PortImpl.hpp
+++ b/src/server/PortImpl.hpp
@@ -25,7 +25,7 @@
#include "BufferRef.hpp"
#include "NodeImpl.hpp"
#include "PortType.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
#include "types.hpp"
namespace Raul { class Maid; }
@@ -60,7 +60,7 @@ public:
SetState() : state(State::SET), value(0), time(0) {}
- void set(const Context& context, FrameTime t, Sample v) {
+ void set(const RunContext& context, FrameTime t, Sample v) {
time = t;
value = v;
state = (time == context.start()
@@ -92,7 +92,7 @@ public:
* Audio thread. Returned value must be freed by caller.
* \a buffers must be poly() long
*/
- Raul::Array<Voice>* set_voices(ProcessContext& context,
+ Raul::Array<Voice>* set_voices(RunContext& context,
Raul::Array<Voice>* voices);
/** Prepare for a new (external) polyphony value.
@@ -107,7 +107,7 @@ public:
* \a poly Must be < the most recent value passed to prepare_poly.
*/
virtual bool apply_poly(
- ProcessContext& context, Raul::Maid& maid, uint32_t poly);
+ RunContext& context, Raul::Maid& maid, uint32_t poly);
const Atom& value() const { return _value; }
void set_value(const Atom& v) { _value = v; }
@@ -129,16 +129,16 @@ public:
return _prepared_voices->at(voice).buffer;
}
- void update_set_state(Context& context, uint32_t voice);
+ void update_set_state(RunContext& context, uint32_t voice);
- void set_voice_value(const Context& context,
- uint32_t voice,
- FrameTime time,
- Sample value);
+ void set_voice_value(const RunContext& context,
+ uint32_t voice,
+ FrameTime time,
+ Sample value);
- void set_control_value(const Context& context,
- FrameTime time,
- Sample value);
+ void set_control_value(const RunContext& context,
+ FrameTime time,
+ Sample value);
/** Prepare this port to use an external driver-provided buffer.
*
@@ -153,9 +153,9 @@ public:
bool is_driver_port() const { return _is_driver_port; }
/** Called once per process cycle */
- virtual void pre_process(Context& context) = 0;
- virtual void pre_run(Context& context) {}
- virtual void post_process(Context& context) = 0;
+ virtual void pre_process(RunContext& context) = 0;
+ virtual void pre_run(RunContext& context) {}
+ virtual void post_process(RunContext& context) = 0;
/** Empty buffer contents completely (ie silence) */
virtual void clear_buffers();
@@ -209,7 +209,7 @@ public:
return (_prepared_voices) ? _prepared_voices->size() : 1;
}
- void set_buffer_size(Context& context, BufferFactory& bufs, size_t size);
+ void set_buffer_size(RunContext& context, BufferFactory& bufs, size_t size);
/** Return true iff this port is explicitly monitored.
*
@@ -223,7 +223,7 @@ public:
void enable_monitoring(bool monitored) { _monitored = monitored; }
/** Monitor port value and broadcast to clients periodically. */
- void monitor(Context& context, bool send_now=false);
+ void monitor(RunContext& context, bool send_now=false);
void raise_set_by_user_flag() { _set_by_user = true; }
diff --git a/src/server/PostProcessor.cpp b/src/server/PostProcessor.cpp
index a0cb060b..d6016105 100644
--- a/src/server/PostProcessor.cpp
+++ b/src/server/PostProcessor.cpp
@@ -19,7 +19,7 @@
#include "Engine.hpp"
#include "Event.hpp"
#include "PostProcessor.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
using namespace std;
@@ -31,7 +31,7 @@ public:
Sentinel(Engine& engine) : Event(engine) {}
bool pre_process() { return false; }
- void execute(ProcessContext& context) {}
+ void execute(RunContext& context) {}
void post_process() {}
};
@@ -56,7 +56,7 @@ PostProcessor::~PostProcessor()
}
void
-PostProcessor::append(ProcessContext& context, Event* first, Event* last)
+PostProcessor::append(RunContext& context, Event* first, Event* last)
{
assert(first);
assert(last);
@@ -70,7 +70,7 @@ PostProcessor::append(ProcessContext& context, Event* first, Event* last)
bool
PostProcessor::pending() const
{
- return _head.load() || _engine.process_context().pending_notifications();
+ return _head.load() || _engine.run_context().pending_notifications();
}
void
@@ -85,7 +85,7 @@ PostProcessor::process()
Event* next = ev->next();
if (!next || next->time() >= end_time) {
// Process audio thread notifications until end
- _engine.process_context().emit_notifications(end_time);
+ _engine.run_context().emit_notifications(end_time);
return;
}
@@ -95,7 +95,7 @@ PostProcessor::process()
ev = next;
// Process audio thread notifications up until this event's time
- _engine.process_context().emit_notifications(ev->time());
+ _engine.run_context().emit_notifications(ev->time());
// Post-process event
ev->post_process();
@@ -109,7 +109,7 @@ PostProcessor::process()
_head = ev;
// Process remaining audio thread notifications until end
- _engine.process_context().emit_notifications(end_time);
+ _engine.run_context().emit_notifications(end_time);
}
} // namespace Server
diff --git a/src/server/PostProcessor.hpp b/src/server/PostProcessor.hpp
index 6203cc53..5a3ffa62 100644
--- a/src/server/PostProcessor.hpp
+++ b/src/server/PostProcessor.hpp
@@ -28,7 +28,7 @@ namespace Server {
class Engine;
class Event;
-class ProcessContext;
+class RunContext;
/** Processor for Events after leaving the audio thread.
*
@@ -50,7 +50,7 @@ public:
/** Push a list of events on to the process queue.
realtime-safe, not thread-safe.
*/
- void append(ProcessContext& context, Event* first, Event* last);
+ void append(RunContext& context, Event* first, Event* last);
/** Post-process and delete all pending events */
void process();
diff --git a/src/server/PreProcessor.cpp b/src/server/PreProcessor.cpp
index d57bb6b9..e3e5475f 100644
--- a/src/server/PreProcessor.cpp
+++ b/src/server/PreProcessor.cpp
@@ -23,7 +23,7 @@
#include "Event.hpp"
#include "PostProcessor.hpp"
#include "PreProcessor.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
#include "ThreadManager.hpp"
#include "UndoStack.hpp"
@@ -81,7 +81,7 @@ PreProcessor::event(Event* const ev, Event::Mode mode)
}
unsigned
-PreProcessor::process(ProcessContext& context, PostProcessor& dest, size_t limit)
+PreProcessor::process(RunContext& context, PostProcessor& dest, size_t limit)
{
Event* const head = _head.load();
size_t n_processed = 0;
diff --git a/src/server/PreProcessor.hpp b/src/server/PreProcessor.hpp
index 9ef75473..f9b85c8f 100644
--- a/src/server/PreProcessor.hpp
+++ b/src/server/PreProcessor.hpp
@@ -29,7 +29,7 @@ namespace Server {
class Engine;
class Event;
class PostProcessor;
-class ProcessContext;
+class RunContext;
class PreProcessor
{
@@ -49,7 +49,7 @@ public:
/** Process events for a cycle.
* @return The number of events processed.
*/
- unsigned process(ProcessContext& context,
+ unsigned process(RunContext& context,
PostProcessor& dest,
size_t limit = 0);
diff --git a/src/server/ProcessContext.hpp b/src/server/ProcessContext.hpp
deleted file mode 100644
index 3ebd6a5f..00000000
--- a/src/server/ProcessContext.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- This file is part of Ingen.
- Copyright 2007-2015 David Robillard <http://drobilla.net/>
-
- Ingen is free software: you can redistribute it and/or modify it under the
- terms of the GNU Affero General Public License as published by the Free
- Software Foundation, either version 3 of the License, or any later version.
-
- Ingen is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU Affero General Public License for details.
-
- You should have received a copy of the GNU Affero General Public License
- along with Ingen. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef INGEN_ENGINE_PROCESSCONTEXT_HPP
-#define INGEN_ENGINE_PROCESSCONTEXT_HPP
-
-#include "Context.hpp"
-
-namespace Ingen {
-namespace Server {
-
-/** Context of a process() call (the audio context).
- *
- * Currently this class has no implementation to speak of, but the type is used
- * as a parameter for audio context methods to make their context clear.
- *
- * \ingroup engine
- */
-class ProcessContext : public Context
-{
-public:
- explicit ProcessContext(Engine& engine) : Context(engine, ID::AUDIO) {}
-
- explicit ProcessContext(const ProcessContext& copy) : Context(copy) {}
-};
-
-} // namespace Server
-} // namespace Ingen
-
-#endif // INGEN_ENGINE_PROCESSCONTEXT_HPP
diff --git a/src/server/Context.cpp b/src/server/RunContext.cpp
index 387bed8e..ee1eaf04 100644
--- a/src/server/Context.cpp
+++ b/src/server/RunContext.cpp
@@ -20,9 +20,9 @@
#include "Broadcaster.hpp"
#include "BufferFactory.hpp"
-#include "Context.hpp"
#include "Engine.hpp"
#include "PortImpl.hpp"
+#include "RunContext.hpp"
namespace Ingen {
namespace Server {
@@ -44,9 +44,8 @@ struct Notification
LV2_URID type;
};
-Context::Context(Engine& engine, ID id)
+RunContext::RunContext(Engine& engine)
: _engine(engine)
- , _id(id)
, _event_sink(
new Raul::RingBuffer(engine.event_queue_size() * sizeof(Notification)))
, _start(0)
@@ -57,9 +56,8 @@ Context::Context(Engine& engine, ID id)
, _copy(false)
{}
-Context::Context(const Context& copy)
+RunContext::RunContext(const RunContext& copy)
: _engine(copy._engine)
- , _id(copy._id)
, _event_sink(copy._event_sink)
, _start(copy._start)
, _end(copy._end)
@@ -69,7 +67,7 @@ Context::Context(const Context& copy)
, _copy(true)
{}
-Context::~Context()
+RunContext::~RunContext()
{
if (!_copy) {
delete _event_sink;
@@ -77,18 +75,18 @@ Context::~Context()
}
bool
-Context::must_notify(const PortImpl* port) const
+RunContext::must_notify(const PortImpl* port) const
{
return (port->is_monitored() || _engine.broadcaster()->must_broadcast());
}
bool
-Context::notify(LV2_URID key,
- FrameTime time,
- PortImpl* port,
- uint32_t size,
- LV2_URID type,
- const void* body)
+RunContext::notify(LV2_URID key,
+ FrameTime time,
+ PortImpl* port,
+ uint32_t size,
+ LV2_URID type,
+ const void* body)
{
const Notification n(port, time, key, size, type);
if (_event_sink->write_space() < sizeof(n) + size) {
@@ -105,7 +103,7 @@ Context::notify(LV2_URID key,
}
void
-Context::emit_notifications(FrameTime end)
+RunContext::emit_notifications(FrameTime end)
{
const URIs& uris = _engine.buffer_factory()->uris();
const uint32_t read_space = _event_sink->read_space();
diff --git a/src/server/Context.hpp b/src/server/RunContext.hpp
index 2f1967da..803d7829 100644
--- a/src/server/Context.hpp
+++ b/src/server/RunContext.hpp
@@ -1,6 +1,6 @@
/*
This file is part of Ingen.
- Copyright 2007-2015 David Robillard <http://drobilla.net/>
+ Copyright 2007-2016 David Robillard <http://drobilla.net/>
Ingen is free software: you can redistribute it and/or modify it under the
terms of the GNU Affero General Public License as published by the Free
@@ -14,8 +14,8 @@
along with Ingen. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef INGEN_ENGINE_CONTEXT_HPP
-#define INGEN_ENGINE_CONTEXT_HPP
+#ifndef INGEN_ENGINE_RUNCONTEXT_HPP
+#define INGEN_ENGINE_RUNCONTEXT_HPP
#include "ingen/Atom.hpp"
#include "ingen/World.hpp"
@@ -41,18 +41,13 @@ class PortImpl;
*
* \ingroup engine
*/
-class Context
+class RunContext
{
public:
- enum class ID {
- AUDIO,
- MESSAGE
- };
+ RunContext(Engine& engine);
+ RunContext(const RunContext& copy);
- Context(Engine& engine, ID id);
- Context(const Context& copy);
-
- virtual ~Context();
+ virtual ~RunContext();
/** Return true iff the given port should broadcast its value.
*
@@ -78,15 +73,13 @@ public:
/** Return true iff any notifications are pending. */
bool pending_notifications() const { return _event_sink->read_space(); }
- inline ID id() const { return _id; }
-
inline void locate(FrameTime s, SampleCount nframes) {
_start = s;
_end = s + nframes;
_nframes = nframes;
}
- inline void locate(const Context& other) {
+ inline void locate(const RunContext& other) {
_start = other._start;
_end = other._end;
_nframes = other._nframes;
@@ -106,10 +99,9 @@ public:
inline bool realtime() const { return _realtime; }
protected:
- const Context& operator=(const Context& copy) = delete;
+ const RunContext& operator=(const RunContext& copy) = delete;
Engine& _engine; ///< Engine we're running in
- ID _id; ///< Fast ID for this context
Raul::RingBuffer* _event_sink; ///< Port updates from process context
@@ -124,4 +116,4 @@ protected:
} // namespace Server
} // namespace Ingen
-#endif // INGEN_ENGINE_CONTEXT_HPP
+#endif // INGEN_ENGINE_RUNCONTEXT_HPP
diff --git a/src/server/events/Connect.cpp b/src/server/events/Connect.cpp
index 09838978..66f726a6 100644
--- a/src/server/events/Connect.cpp
+++ b/src/server/events/Connect.cpp
@@ -140,7 +140,7 @@ Connect::pre_process()
}
void
-Connect::execute(ProcessContext& context)
+Connect::execute(RunContext& context)
{
if (_status == Status::SUCCESS) {
_head->add_arc(context, _arc.get());
diff --git a/src/server/events/Connect.hpp b/src/server/events/Connect.hpp
index bd15d6d3..84b2854b 100644
--- a/src/server/events/Connect.hpp
+++ b/src/server/events/Connect.hpp
@@ -53,7 +53,7 @@ public:
const Raul::Path& head);
bool pre_process();
- void execute(ProcessContext& context);
+ void execute(RunContext& context);
void post_process();
void undo(Interface& target);
diff --git a/src/server/events/Copy.cpp b/src/server/events/Copy.cpp
index 34a63e58..0ff53843 100644
--- a/src/server/events/Copy.cpp
+++ b/src/server/events/Copy.cpp
@@ -194,7 +194,7 @@ Copy::filesystem_to_engine()
}
void
-Copy::execute(ProcessContext& context)
+Copy::execute(RunContext& context)
{
if (_block) {
_parent->set_compiled_graph(_compiled_graph);
diff --git a/src/server/events/Copy.hpp b/src/server/events/Copy.hpp
index a1726cc6..68ee31da 100644
--- a/src/server/events/Copy.hpp
+++ b/src/server/events/Copy.hpp
@@ -47,7 +47,7 @@ public:
const Raul::URI& new_uri);
bool pre_process();
- void execute(ProcessContext& context);
+ void execute(RunContext& context);
void post_process();
void undo(Interface& target);
diff --git a/src/server/events/CreateBlock.cpp b/src/server/events/CreateBlock.cpp
index cde15622..28afe4b2 100644
--- a/src/server/events/CreateBlock.cpp
+++ b/src/server/events/CreateBlock.cpp
@@ -147,7 +147,7 @@ CreateBlock::pre_process()
}
void
-CreateBlock::execute(ProcessContext& context)
+CreateBlock::execute(RunContext& context)
{
if (_block) {
_graph->set_compiled_graph(_compiled_graph);
diff --git a/src/server/events/CreateBlock.hpp b/src/server/events/CreateBlock.hpp
index 1282fe8b..00205c6a 100644
--- a/src/server/events/CreateBlock.hpp
+++ b/src/server/events/CreateBlock.hpp
@@ -48,7 +48,7 @@ public:
~CreateBlock();
bool pre_process();
- void execute(ProcessContext& context);
+ void execute(RunContext& context);
void post_process();
void undo(Interface& target);
diff --git a/src/server/events/CreateGraph.cpp b/src/server/events/CreateGraph.cpp
index b5cffcb0..ca36f258 100644
--- a/src/server/events/CreateGraph.cpp
+++ b/src/server/events/CreateGraph.cpp
@@ -186,7 +186,7 @@ CreateGraph::pre_process()
}
void
-CreateGraph::execute(ProcessContext& context)
+CreateGraph::execute(RunContext& context)
{
if (_graph) {
if (_parent) {
diff --git a/src/server/events/CreateGraph.hpp b/src/server/events/CreateGraph.hpp
index efeabf48..9cae32ba 100644
--- a/src/server/events/CreateGraph.hpp
+++ b/src/server/events/CreateGraph.hpp
@@ -45,7 +45,7 @@ public:
const Resource::Properties& properties);
bool pre_process();
- void execute(ProcessContext& context);
+ void execute(RunContext& context);
void post_process();
void undo(Interface& target);
diff --git a/src/server/events/CreatePort.cpp b/src/server/events/CreatePort.cpp
index 0e512852..9384ce09 100644
--- a/src/server/events/CreatePort.cpp
+++ b/src/server/events/CreatePort.cpp
@@ -167,7 +167,7 @@ CreatePort::pre_process()
}
void
-CreatePort::execute(ProcessContext& context)
+CreatePort::execute(RunContext& context)
{
if (_status == Status::SUCCESS) {
_old_ports_array = _graph->external_ports();
diff --git a/src/server/events/CreatePort.hpp b/src/server/events/CreatePort.hpp
index 754a238f..c002df59 100644
--- a/src/server/events/CreatePort.hpp
+++ b/src/server/events/CreatePort.hpp
@@ -52,7 +52,7 @@ public:
const Resource::Properties& properties);
bool pre_process();
- void execute(ProcessContext& context);
+ void execute(RunContext& context);
void post_process();
void undo(Interface& target);
diff --git a/src/server/events/Delete.cpp b/src/server/events/Delete.cpp
index 915c56fc..5ca70a3a 100644
--- a/src/server/events/Delete.cpp
+++ b/src/server/events/Delete.cpp
@@ -116,7 +116,7 @@ Delete::pre_process()
}
void
-Delete::execute(ProcessContext& context)
+Delete::execute(RunContext& context)
{
if (_status != Status::SUCCESS) {
return;
diff --git a/src/server/events/Delete.hpp b/src/server/events/Delete.hpp
index c6e38839..5cd40b14 100644
--- a/src/server/events/Delete.hpp
+++ b/src/server/events/Delete.hpp
@@ -55,7 +55,7 @@ public:
~Delete();
bool pre_process();
- void execute(ProcessContext& context);
+ void execute(RunContext& context);
void post_process();
void undo(Interface& target);
diff --git a/src/server/events/Delta.cpp b/src/server/events/Delta.cpp
index e41d6a87..d54ec53f 100644
--- a/src/server/events/Delta.cpp
+++ b/src/server/events/Delta.cpp
@@ -479,7 +479,7 @@ Delta::pre_process()
}
void
-Delta::execute(ProcessContext& context)
+Delta::execute(RunContext& context)
{
if (_status != Status::SUCCESS || _preset) {
return;
diff --git a/src/server/events/Delta.hpp b/src/server/events/Delta.hpp
index b1f2d66a..8b00fd3a 100644
--- a/src/server/events/Delta.hpp
+++ b/src/server/events/Delta.hpp
@@ -74,7 +74,7 @@ public:
uint32_t type);
bool pre_process();
- void execute(ProcessContext& context);
+ void execute(RunContext& context);
void post_process();
void undo(Interface& target);
diff --git a/src/server/events/Disconnect.cpp b/src/server/events/Disconnect.cpp
index 43febed5..8d47ac5a 100644
--- a/src/server/events/Disconnect.cpp
+++ b/src/server/events/Disconnect.cpp
@@ -29,7 +29,7 @@
#include "InputPort.hpp"
#include "OutputPort.hpp"
#include "PortImpl.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
#include "ThreadManager.hpp"
#include "events/Disconnect.hpp"
@@ -173,7 +173,7 @@ Disconnect::pre_process()
}
bool
-Disconnect::Impl::execute(ProcessContext& context, bool set_head_buffers)
+Disconnect::Impl::execute(RunContext& context, bool set_head_buffers)
{
ArcImpl* const port_arc = _head->remove_arc(context, _tail);
@@ -200,7 +200,7 @@ Disconnect::Impl::execute(ProcessContext& context, bool set_head_buffers)
}
void
-Disconnect::execute(ProcessContext& context)
+Disconnect::execute(RunContext& context)
{
if (_status == Status::SUCCESS) {
if (_impl->execute(context, true)) {
diff --git a/src/server/events/Disconnect.hpp b/src/server/events/Disconnect.hpp
index 8a69dac4..69d9469c 100644
--- a/src/server/events/Disconnect.hpp
+++ b/src/server/events/Disconnect.hpp
@@ -55,7 +55,7 @@ public:
~Disconnect();
bool pre_process();
- void execute(ProcessContext& context);
+ void execute(RunContext& context);
void post_process();
void undo(Interface& target);
@@ -66,7 +66,7 @@ public:
OutputPort* t,
InputPort* h);
- bool execute(ProcessContext& context, bool set_head_buffers);
+ bool execute(RunContext& context, bool set_head_buffers);
inline OutputPort* tail() { return _tail; }
inline InputPort* head() { return _head; }
diff --git a/src/server/events/DisconnectAll.cpp b/src/server/events/DisconnectAll.cpp
index ee19797e..380aced5 100644
--- a/src/server/events/DisconnectAll.cpp
+++ b/src/server/events/DisconnectAll.cpp
@@ -143,7 +143,7 @@ DisconnectAll::pre_process()
}
void
-DisconnectAll::execute(ProcessContext& context)
+DisconnectAll::execute(RunContext& context)
{
if (_status == Status::SUCCESS) {
for (auto& i : _impls) {
diff --git a/src/server/events/DisconnectAll.hpp b/src/server/events/DisconnectAll.hpp
index f8123a45..1ddfc536 100644
--- a/src/server/events/DisconnectAll.hpp
+++ b/src/server/events/DisconnectAll.hpp
@@ -57,7 +57,7 @@ public:
~DisconnectAll();
bool pre_process();
- void execute(ProcessContext& context);
+ void execute(RunContext& context);
void post_process();
void undo(Interface& target);
diff --git a/src/server/events/Get.hpp b/src/server/events/Get.hpp
index fc5fcb13..f685df21 100644
--- a/src/server/events/Get.hpp
+++ b/src/server/events/Get.hpp
@@ -48,7 +48,7 @@ public:
const Raul::URI& uri);
bool pre_process();
- void execute(ProcessContext& context) {}
+ void execute(RunContext& context) {}
void post_process();
private:
diff --git a/src/server/events/Mark.cpp b/src/server/events/Mark.cpp
index 0e14f008..32648649 100644
--- a/src/server/events/Mark.cpp
+++ b/src/server/events/Mark.cpp
@@ -51,7 +51,7 @@ Mark::pre_process()
}
void
-Mark::execute(ProcessContext& context)
+Mark::execute(RunContext& context)
{}
void
diff --git a/src/server/events/Mark.hpp b/src/server/events/Mark.hpp
index 995df746..895a309c 100644
--- a/src/server/events/Mark.hpp
+++ b/src/server/events/Mark.hpp
@@ -41,7 +41,7 @@ public:
Type type);
bool pre_process();
- void execute(ProcessContext& context);
+ void execute(RunContext& context);
void post_process();
private:
diff --git a/src/server/events/Move.cpp b/src/server/events/Move.cpp
index a51617cb..b30c2ec2 100644
--- a/src/server/events/Move.cpp
+++ b/src/server/events/Move.cpp
@@ -74,7 +74,7 @@ Move::pre_process()
}
void
-Move::execute(ProcessContext& context)
+Move::execute(RunContext& context)
{
}
diff --git a/src/server/events/Move.hpp b/src/server/events/Move.hpp
index 74d32c61..ef308a01 100644
--- a/src/server/events/Move.hpp
+++ b/src/server/events/Move.hpp
@@ -46,7 +46,7 @@ public:
~Move();
bool pre_process();
- void execute(ProcessContext& context);
+ void execute(RunContext& context);
void post_process();
void undo(Interface& target);
diff --git a/src/server/events/SetPortValue.cpp b/src/server/events/SetPortValue.cpp
index fd10c94f..0fac88c2 100644
--- a/src/server/events/SetPortValue.cpp
+++ b/src/server/events/SetPortValue.cpp
@@ -26,7 +26,7 @@
#include "Driver.hpp"
#include "Engine.hpp"
#include "PortImpl.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
#include "SetPortValue.hpp"
namespace Ingen {
@@ -69,19 +69,15 @@ SetPortValue::pre_process()
}
void
-SetPortValue::execute(ProcessContext& context)
+SetPortValue::execute(RunContext& context)
{
assert(_time >= context.start() && _time <= context.end());
-
- if (_port->parent_block()->context() == Context::ID::MESSAGE)
- return;
-
apply(context);
_engine.control_bindings()->port_value_changed(context, _port, _binding, _value);
}
void
-SetPortValue::apply(Context& context)
+SetPortValue::apply(RunContext& context)
{
if (_status != Status::SUCCESS) {
return;
diff --git a/src/server/events/SetPortValue.hpp b/src/server/events/SetPortValue.hpp
index 80d0b84a..7b49096f 100644
--- a/src/server/events/SetPortValue.hpp
+++ b/src/server/events/SetPortValue.hpp
@@ -48,13 +48,13 @@ public:
~SetPortValue();
bool pre_process();
- void execute(ProcessContext& context);
+ void execute(RunContext& context);
void post_process();
bool synthetic() const { return _synthetic; }
private:
- void apply(Context& context);
+ void apply(RunContext& context);
PortImpl* _port;
const Atom _value;
diff --git a/src/server/events/Undo.cpp b/src/server/events/Undo.cpp
index 28b8e188..06289aa1 100644
--- a/src/server/events/Undo.cpp
+++ b/src/server/events/Undo.cpp
@@ -62,7 +62,7 @@ Undo::pre_process()
}
void
-Undo::execute(ProcessContext& context)
+Undo::execute(RunContext& context)
{
}
diff --git a/src/server/events/Undo.hpp b/src/server/events/Undo.hpp
index fff06b8d..c95daea9 100644
--- a/src/server/events/Undo.hpp
+++ b/src/server/events/Undo.hpp
@@ -39,7 +39,7 @@ public:
bool is_redo);
bool pre_process();
- void execute(ProcessContext& context);
+ void execute(RunContext& context);
void post_process();
private:
diff --git a/src/server/ingen_lv2.cpp b/src/server/ingen_lv2.cpp
index dbbc8a55..53d302b1 100644
--- a/src/server/ingen_lv2.cpp
+++ b/src/server/ingen_lv2.cpp
@@ -50,7 +50,7 @@
#include "EventWriter.hpp"
#include "GraphImpl.hpp"
#include "PostProcessor.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
#include "ThreadManager.hpp"
#define NS_RDF "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
@@ -79,7 +79,7 @@ namespace Server {
class LV2Driver;
-void signal_main(ProcessContext& context, LV2Driver* driver);
+void signal_main(RunContext& context, LV2Driver* driver);
inline size_t
ui_ring_size(SampleCount block_length)
@@ -116,7 +116,7 @@ public:
, _to_ui_overflow(false)
{}
- void pre_process_port(ProcessContext& context, EnginePort* port) {
+ void pre_process_port(RunContext& context, EnginePort* port) {
const URIs& uris = _engine.world()->uris();
const SampleCount nframes = context.nframes();
DuplexPort* graph_port = port->graph_port();
@@ -150,7 +150,7 @@ public:
}
}
- void post_process_port(ProcessContext& context, EnginePort* port) {
+ void post_process_port(RunContext& context, EnginePort* port) {
DuplexPort* graph_port = port->graph_port();
// No copying necessary, host buffers are used directly
@@ -161,13 +161,13 @@ public:
}
void run(uint32_t nframes) {
- _engine.process_context().locate(_frame_time, nframes);
+ _engine.run_context().locate(_frame_time, nframes);
// Notify buffer is a Chunk with size set to the available space
_notify_capacity = ((LV2_Atom_Sequence*)_ports[1]->buffer())->atom.size;
for (auto& p : _ports) {
- pre_process_port(_engine.process_context(), p);
+ pre_process_port(_engine.run_context(), p);
}
_engine.run(nframes);
@@ -175,10 +175,10 @@ public:
_main_sem.post();
}
- flush_to_ui(_engine.process_context());
+ flush_to_ui(_engine.run_context());
for (auto& p : _ports) {
- post_process_port(_engine.process_context(), p);
+ post_process_port(_engine.run_context(), p);
}
_frame_time += nframes;
@@ -203,7 +203,7 @@ public:
}
/** Add a port. Called only during init or restore. */
- virtual void add_port(ProcessContext& context, EnginePort* port) {
+ virtual void add_port(RunContext& context, EnginePort* port) {
const uint32_t index = port->graph_port()->index();
if (_ports.size() <= index) {
_ports.resize(index + 1);
@@ -212,7 +212,7 @@ public:
}
/** Remove a port. Called only during init or restore. */
- virtual void remove_port(ProcessContext& context, EnginePort* port) {
+ virtual void remove_port(RunContext& context, EnginePort* port) {
const uint32_t index = port->graph_port()->index();
_ports[index] = NULL;
if (index == _ports.size() - 1) {
@@ -240,8 +240,8 @@ public:
return new EnginePort(graph_port);
}
- virtual void append_time_events(ProcessContext& context,
- Buffer& buffer)
+ virtual void append_time_events(RunContext& context,
+ Buffer& buffer)
{
const URIs& uris = _engine.world()->uris();
LV2_Atom_Sequence* seq = (LV2_Atom_Sequence*)_ports[0]->buffer();
@@ -307,7 +307,7 @@ public:
free(buf);
}
- void flush_to_ui(ProcessContext& context) {
+ void flush_to_ui(RunContext& context) {
if (_ports.size() < 2) {
_engine.log().error("Standard control ports are not present\n");
return;
@@ -558,7 +558,7 @@ ingen_instantiate(const LV2_Descriptor* descriptor,
engine->activate();
Server::ThreadManager::single_threaded = true;
- engine->process_context().locate(0, block_length);
+ engine->run_context().locate(0, block_length);
engine->post_processor()->set_end_time(block_length);
engine->process_events();
diff --git a/src/server/internals/Controller.cpp b/src/server/internals/Controller.cpp
index 62400efa..be015af5 100644
--- a/src/server/internals/Controller.cpp
+++ b/src/server/internals/Controller.cpp
@@ -27,7 +27,7 @@
#include "InternalPlugin.hpp"
#include "OutputPort.hpp"
#include "PostProcessor.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
#include "util.hpp"
using namespace std;
@@ -100,7 +100,7 @@ ControllerNode::ControllerNode(InternalPlugin* plugin,
}
void
-ControllerNode::run(ProcessContext& context)
+ControllerNode::run(RunContext& context)
{
Buffer* const midi_in = _midi_in_port->buffer(0).get();
LV2_Atom_Sequence* seq = midi_in->get<LV2_Atom_Sequence>();
@@ -115,7 +115,7 @@ ControllerNode::run(ProcessContext& context)
}
void
-ControllerNode::control(ProcessContext& context, uint8_t control_num, uint8_t val, FrameTime time)
+ControllerNode::control(RunContext& context, uint8_t control_num, uint8_t val, FrameTime time)
{
Sample scaled_value;
diff --git a/src/server/internals/Controller.hpp b/src/server/internals/Controller.hpp
index 1c3e05f0..31751658 100644
--- a/src/server/internals/Controller.hpp
+++ b/src/server/internals/Controller.hpp
@@ -45,9 +45,9 @@ public:
GraphImpl* parent,
SampleRate srate);
- void run(ProcessContext& context);
+ void run(RunContext& context);
- void control(ProcessContext& context, uint8_t control_num, uint8_t val, FrameTime time);
+ void control(RunContext& context, uint8_t control_num, uint8_t val, FrameTime time);
void learn() { _learning = true; }
diff --git a/src/server/internals/Delay.cpp b/src/server/internals/Delay.cpp
index d0413689..6ac97008 100644
--- a/src/server/internals/Delay.cpp
+++ b/src/server/internals/Delay.cpp
@@ -29,7 +29,7 @@
#include "InputPort.hpp"
#include "InternalPlugin.hpp"
#include "OutputPort.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
#include "internals/Delay.hpp"
#include "util.hpp"
@@ -138,7 +138,7 @@ static inline float cube_interp(const float fr, const float inm1, const float
}
void
-DelayNode::run(ProcessContext& context)
+DelayNode::run(RunContext& context)
{
Buffer* const delay_buf = _delay_port->buffer(0).get();
Buffer* const in_buf = _in_port->buffer(0).get();
diff --git a/src/server/internals/Delay.hpp b/src/server/internals/Delay.hpp
index 24f2854e..0dc5da30 100644
--- a/src/server/internals/Delay.hpp
+++ b/src/server/internals/Delay.hpp
@@ -46,7 +46,7 @@ public:
void activate(BufferFactory& bufs);
- void run(ProcessContext& context);
+ void run(RunContext& context);
static InternalPlugin* internal_plugin(URIs& uris);
diff --git a/src/server/internals/Note.cpp b/src/server/internals/Note.cpp
index c3ebaf71..564ae34c 100644
--- a/src/server/internals/Note.cpp
+++ b/src/server/internals/Note.cpp
@@ -28,7 +28,7 @@
#include "InputPort.hpp"
#include "InternalPlugin.hpp"
#include "OutputPort.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
#include "ingen_config.h"
#include "internals/Note.hpp"
#include "util.hpp"
@@ -151,7 +151,7 @@ NoteNode::prepare_poly(BufferFactory& bufs, uint32_t poly)
}
bool
-NoteNode::apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly)
+NoteNode::apply_poly(RunContext& context, Raul::Maid& maid, uint32_t poly)
{
if (!BlockImpl::apply_poly(context, maid, poly))
return false;
@@ -168,7 +168,7 @@ NoteNode::apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly)
}
void
-NoteNode::run(ProcessContext& context)
+NoteNode::run(RunContext& context)
{
Buffer* const midi_in = _midi_in_port->buffer(0).get();
LV2_Atom_Sequence* seq = midi_in->get<LV2_Atom_Sequence>();
@@ -227,7 +227,7 @@ note_to_freq(uint8_t num)
}
void
-NoteNode::note_on(ProcessContext& context, uint8_t note_num, uint8_t velocity, FrameTime time)
+NoteNode::note_on(RunContext& context, uint8_t note_num, uint8_t velocity, FrameTime time)
{
assert(time >= context.start() && time <= context.end());
assert(note_num <= 127);
@@ -306,7 +306,7 @@ NoteNode::note_on(ProcessContext& context, uint8_t note_num, uint8_t velocity, F
}
void
-NoteNode::note_off(ProcessContext& context, uint8_t note_num, FrameTime time)
+NoteNode::note_off(RunContext& context, uint8_t note_num, FrameTime time)
{
assert(time >= context.start() && time <= context.end());
@@ -328,7 +328,7 @@ NoteNode::note_off(ProcessContext& context, uint8_t note_num, FrameTime time)
}
void
-NoteNode::free_voice(ProcessContext& context, uint32_t voice, FrameTime time)
+NoteNode::free_voice(RunContext& context, uint32_t voice, FrameTime time)
{
assert(time >= context.start() && time <= context.end());
@@ -366,7 +366,7 @@ NoteNode::free_voice(ProcessContext& context, uint32_t voice, FrameTime time)
}
void
-NoteNode::all_notes_off(ProcessContext& context, FrameTime time)
+NoteNode::all_notes_off(RunContext& context, FrameTime time)
{
assert(time >= context.start() && time <= context.end());
@@ -379,13 +379,13 @@ NoteNode::all_notes_off(ProcessContext& context, FrameTime time)
}
void
-NoteNode::sustain_on(ProcessContext& context, FrameTime time)
+NoteNode::sustain_on(RunContext& context, FrameTime time)
{
_sustain = true;
}
void
-NoteNode::sustain_off(ProcessContext& context, FrameTime time)
+NoteNode::sustain_off(RunContext& context, FrameTime time)
{
assert(time >= context.start() && time <= context.end());
@@ -397,13 +397,13 @@ NoteNode::sustain_off(ProcessContext& context, FrameTime time)
}
void
-NoteNode::bend(ProcessContext& context, FrameTime time, float amount)
+NoteNode::bend(RunContext& context, FrameTime time, float amount)
{
_bend_port->set_control_value(context, time, amount);
}
void
-NoteNode::note_pressure(ProcessContext& context, FrameTime time, uint8_t note_num, float amount)
+NoteNode::note_pressure(RunContext& context, FrameTime time, uint8_t note_num, float amount)
{
for (uint32_t i=0; i < _polyphony; ++i) {
if ((*_voices)[i].state != Voice::State::FREE && (*_voices)[i].note == note_num) {
@@ -414,7 +414,7 @@ NoteNode::note_pressure(ProcessContext& context, FrameTime time, uint8_t note_nu
}
void
-NoteNode::channel_pressure(ProcessContext& context, FrameTime time, float amount)
+NoteNode::channel_pressure(RunContext& context, FrameTime time, float amount)
{
_pressure_port->set_control_value(context, time, amount);
}
diff --git a/src/server/internals/Note.hpp b/src/server/internals/Note.hpp
index 6e993f06..08d1b358 100644
--- a/src/server/internals/Note.hpp
+++ b/src/server/internals/Note.hpp
@@ -48,20 +48,20 @@ public:
~NoteNode();
bool prepare_poly(BufferFactory& bufs, uint32_t poly);
- bool apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly);
+ bool apply_poly(RunContext& context, Raul::Maid& maid, uint32_t poly);
- void run(ProcessContext& context);
+ void run(RunContext& context);
- void note_on(ProcessContext& context, uint8_t note_num, uint8_t velocity, FrameTime time);
- void note_off(ProcessContext& context, uint8_t note_num, FrameTime time);
- void all_notes_off(ProcessContext& context, FrameTime time);
+ void note_on(RunContext& context, uint8_t note_num, uint8_t velocity, FrameTime time);
+ void note_off(RunContext& context, uint8_t note_num, FrameTime time);
+ void all_notes_off(RunContext& context, FrameTime time);
- void sustain_on(ProcessContext& context, FrameTime time);
- void sustain_off(ProcessContext& context, FrameTime time);
+ void sustain_on(RunContext& context, FrameTime time);
+ void sustain_off(RunContext& context, FrameTime time);
- void bend(ProcessContext& context, FrameTime time, float amount);
- void note_pressure(ProcessContext& context, FrameTime time, uint8_t note_num, float amount);
- void channel_pressure(ProcessContext& context, FrameTime time, float amount);
+ void bend(RunContext& context, FrameTime time, float amount);
+ void note_pressure(RunContext& context, FrameTime time, uint8_t note_num, float amount);
+ void channel_pressure(RunContext& context, FrameTime time, float amount);
static InternalPlugin* internal_plugin(URIs& uris);
@@ -84,7 +84,7 @@ private:
SampleCount time;
};
- void free_voice(ProcessContext& context, uint32_t voice, FrameTime time);
+ void free_voice(RunContext& context, uint32_t voice, FrameTime time);
Raul::Array<Voice>* _voices;
Raul::Array<Voice>* _prepared_voices;
diff --git a/src/server/internals/Time.cpp b/src/server/internals/Time.cpp
index 13f63538..0f4bdd56 100644
--- a/src/server/internals/Time.cpp
+++ b/src/server/internals/Time.cpp
@@ -23,7 +23,7 @@
#include "Engine.hpp"
#include "InternalPlugin.hpp"
#include "OutputPort.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
#include "internals/Time.hpp"
#include "util.hpp"
@@ -57,7 +57,7 @@ TimeNode::TimeNode(InternalPlugin* plugin,
}
void
-TimeNode::run(ProcessContext& context)
+TimeNode::run(RunContext& context)
{
BufferRef buf = _notify_port->buffer(0);
LV2_Atom_Sequence* seq = buf->get<LV2_Atom_Sequence>();
diff --git a/src/server/internals/Time.hpp b/src/server/internals/Time.hpp
index f8dfbd64..1a063f8d 100644
--- a/src/server/internals/Time.hpp
+++ b/src/server/internals/Time.hpp
@@ -44,7 +44,7 @@ public:
GraphImpl* parent,
SampleRate srate);
- void run(ProcessContext& context);
+ void run(RunContext& context);
static InternalPlugin* internal_plugin(URIs& uris);
diff --git a/src/server/internals/Trigger.cpp b/src/server/internals/Trigger.cpp
index d34b38c1..49a3a2ed 100644
--- a/src/server/internals/Trigger.cpp
+++ b/src/server/internals/Trigger.cpp
@@ -25,7 +25,7 @@
#include "InputPort.hpp"
#include "InternalPlugin.hpp"
#include "OutputPort.hpp"
-#include "ProcessContext.hpp"
+#include "RunContext.hpp"
#include "ingen_config.h"
#include "internals/Trigger.hpp"
#include "util.hpp"
@@ -96,7 +96,7 @@ TriggerNode::TriggerNode(InternalPlugin* plugin,
}
void
-TriggerNode::run(ProcessContext& context)
+TriggerNode::run(RunContext& context)
{
Buffer* const midi_in = _midi_in_port->buffer(0).get();
LV2_Atom_Sequence* seq = midi_in->get<LV2_Atom_Sequence>();
@@ -130,7 +130,7 @@ TriggerNode::run(ProcessContext& context)
}
void
-TriggerNode::note_on(ProcessContext& context, uint8_t note_num, uint8_t velocity, FrameTime time)
+TriggerNode::note_on(RunContext& context, uint8_t note_num, uint8_t velocity, FrameTime time)
{
assert(time >= context.start() && time <= context.end());
@@ -150,7 +150,7 @@ TriggerNode::note_on(ProcessContext& context, uint8_t note_num, uint8_t velocity
}
void
-TriggerNode::note_off(ProcessContext& context, uint8_t note_num, FrameTime time)
+TriggerNode::note_off(RunContext& context, uint8_t note_num, FrameTime time)
{
assert(time >= context.start() && time <= context.end());
diff --git a/src/server/internals/Trigger.hpp b/src/server/internals/Trigger.hpp
index f486ef38..801e97f6 100644
--- a/src/server/internals/Trigger.hpp
+++ b/src/server/internals/Trigger.hpp
@@ -48,10 +48,10 @@ public:
GraphImpl* parent,
SampleRate srate);
- void run(ProcessContext& context);
+ void run(RunContext& context);
- void note_on(ProcessContext& context, uint8_t note_num, uint8_t velocity, FrameTime time);
- void note_off(ProcessContext& context, uint8_t note_num, FrameTime time);
+ void note_on(RunContext& context, uint8_t note_num, uint8_t velocity, FrameTime time);
+ void note_off(RunContext& context, uint8_t note_num, FrameTime time);
void learn() { _learning = true; }
diff --git a/src/server/mix.cpp b/src/server/mix.cpp
index 6fa8626c..897a26e6 100644
--- a/src/server/mix.cpp
+++ b/src/server/mix.cpp
@@ -17,7 +17,7 @@
#include "lv2/lv2plug.in/ns/ext/atom/util.h"
#include "Buffer.hpp"
-#include "Context.hpp"
+#include "RunContext.hpp"
#include "mix.hpp"
namespace Ingen {
@@ -34,7 +34,7 @@ is_end(const Buffer* buf, const LV2_Atom_Event* ev)
}
void
-mix(const Context& context,
+mix(const RunContext& context,
Buffer* dst,
const Buffer*const* srcs,
uint32_t num_srcs)
diff --git a/src/server/mix.hpp b/src/server/mix.hpp
index c10b2de6..58986750 100644
--- a/src/server/mix.hpp
+++ b/src/server/mix.hpp
@@ -25,11 +25,11 @@ class URIs;
namespace Server {
-class Context;
class Buffer;
+class RunContext;
void
-mix(const Context& context,
+mix(const RunContext& context,
Buffer* dst,
const Buffer*const* srcs,
uint32_t num_srcs);
diff --git a/src/server/wscript b/src/server/wscript
index 4bb9b1f3..6f5ffb86 100644
--- a/src/server/wscript
+++ b/src/server/wscript
@@ -10,7 +10,6 @@ def build(bld):
Buffer.cpp
BufferFactory.cpp
ClientUpdate.cpp
- Context.cpp
ControlBindings.cpp
DuplexPort.cpp
Engine.cpp
@@ -26,6 +25,7 @@ def build(bld):
PortImpl.cpp
PostProcessor.cpp
PreProcessor.cpp
+ RunContext.cpp
SocketListener.cpp
UndoStack.cpp
Worker.cpp