summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/plugin_insert.h
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-03-26 01:03:46 +0100
committerRobin Gareus <robin@gareus.org>2016-03-26 01:03:46 +0100
commit1503db4a28fe01650bb8619f5f38fccb312474ab (patch)
tree932db17b137ebb5cce85b36d4366bbe8c4d7a911 /libs/ardour/ardour/plugin_insert.h
parent0954efffd3a1d642be313aed9b5b7070eb307a9c (diff)
prototype support for arbitrary plugin channel maps
Diffstat (limited to 'libs/ardour/ardour/plugin_insert.h')
-rw-r--r--libs/ardour/ardour/plugin_insert.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h
index 453b9a0f0c..d9db98dee4 100644
--- a/libs/ardour/ardour/plugin_insert.h
+++ b/libs/ardour/ardour/plugin_insert.h
@@ -69,6 +69,35 @@ class LIBARDOUR_API PluginInsert : public Processor
int set_block_size (pframes_t nframes);
+ ChanMapping input_map (uint32_t num=0) const {
+ if (num < _in_map.size()) {
+ return _in_map.find (num)->second;
+ } else {
+ return ChanMapping ();
+ }
+ }
+
+ ChanMapping output_map (uint32_t num=0) const {
+ if (num < _out_map.size()) {
+ return _out_map.find (num)->second;
+ } else {
+ return ChanMapping ();
+ }
+ }
+
+#ifndef NDEBUG // prototyping -- this should be done synchroneously in configure_io()
+ void set_input_map (uint32_t num, ChanMapping m) {
+ if (num < _in_map.size()) {
+ _in_map[num] = m;
+ }
+ }
+ void set_output_map (uint32_t num, ChanMapping m) {
+ if (num < _in_map.size()) {
+ _out_map[num] = m;
+ }
+ }
+#endif
+
ChanCount output_streams() const;
ChanCount input_streams() const;
ChanCount natural_output_streams() const;
@@ -143,6 +172,14 @@ class LIBARDOUR_API PluginInsert : public Processor
void collect_signal_for_analysis (framecnt_t nframes);
+ bool no_inplace () const {
+ return _pending_no_inplace;
+ }
+
+ void set_no_inplace (bool b) {
+ _pending_no_inplace = b;
+ }
+
void set_strict_io (bool b) {
_strict_io = b;
}
@@ -199,6 +236,8 @@ class LIBARDOUR_API PluginInsert : public Processor
ChanCount _configured_in;
ChanCount _configured_out;
+ bool _no_inplace;
+ bool _pending_no_inplace;
bool _strict_io;
bool _strict_io_configured;