+ ChanMapping input_map (uint32_t num) const {
+ if (num < _in_map.size()) {
+ return _in_map.find (num)->second;
+ } else {
+ return ChanMapping ();
+ }
+ }
+
+ ChanMapping output_map (uint32_t num) const {
+ if (num < _out_map.size()) {
+ return _out_map.find (num)->second;
+ } else {
+ return ChanMapping ();
+ }
+ }
+
+ ChanMapping thru_map () const {
+ return _thru_map;
+ }
+
+ bool pre_seed (const ChanCount&, const ChanCount&, const ChanMapping&, const ChanMapping&, const ChanMapping&);
+
+ ChanMapping input_map () const; ///< combined (all instances) input map
+ ChanMapping no_sc_input_map () const; ///< combined (all instances) input map w/o sidechain sinks
+ ChanMapping output_map () const; ///< combined (all instances) output map
+ bool has_midi_bypass () const;
+ bool has_midi_thru () const;
+ bool inplace () const { return ! _no_inplace; }
+
+#ifdef MIXBUS
+ bool is_channelstrip () const;
+ bool is_nonbypassable () const;
+#else
+ bool is_channelstrip () const { return false; }
+ bool is_nonbypassable () const { return false; }
+#endif
+
+ void set_input_map (uint32_t, ChanMapping);
+ void set_output_map (uint32_t, ChanMapping);
+ void set_thru_map (ChanMapping);
+ bool reset_map (bool emit = true);
+ bool sanitize_maps ();
+ bool check_inplace ();
+ bool configured () const { return _configured; }
+
+ // these are ports visible on the outside