diff options
author | Robin Gareus <robin@gareus.org> | 2016-04-16 21:28:37 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-04-16 21:28:37 +0200 |
commit | 9ad98885cbe231e9866c2e710206d4d67e9328e8 (patch) | |
tree | 4c2b23a0f250c4f4155fd94d004d7d215122a0c0 /gtk2_ardour/processor_box.h | |
parent | 3079a73488aadfa941e085c5b9e101a101f03d49 (diff) |
another take on mixer strip wire drawing
mini modulars are fun.
Diffstat (limited to 'gtk2_ardour/processor_box.h')
-rw-r--r-- | gtk2_ardour/processor_box.h | 40 |
1 files changed, 31 insertions, 9 deletions
diff --git a/gtk2_ardour/processor_box.h b/gtk2_ardour/processor_box.h index de3eaf03ab..6939b6ffc6 100644 --- a/gtk2_ardour/processor_box.h +++ b/gtk2_ardour/processor_box.h @@ -292,12 +292,20 @@ private: const ARDOUR::ChanMapping&, const ARDOUR::ChanMapping&, const ARDOUR::ChanMapping&); - void set_feed ( + void set_fed_by ( const ARDOUR::ChanCount&, const ARDOUR::ChanCount&, const ARDOUR::ChanMapping&, const ARDOUR::ChanMapping&); + void set_feeding ( + const ARDOUR::ChanCount&, + const ARDOUR::ChanCount&, + const ARDOUR::ChanMapping&, + const ARDOUR::ChanMapping&); + + void set_terminal (bool b); + void copy_state (const RoutingIcon& other) { _in = other._in; _out = other._out; @@ -310,23 +318,31 @@ private: _f_out_map = other._f_out_map; _f_thru_map = other._f_thru_map; _f_sources = other._f_sources; - _feed = other._feed; + _i_in = other._i_in; + _i_in_map = other._i_in_map; + _i_thru_map = other._i_thru_map; + _i_sinks = other._i_sinks; + _fed_by = other._fed_by; + _feeding = other._feeding; } - void unset_feed () { _feed = false ; } - bool identity () const; + void unset_fed_by () { _fed_by = false ; } + void unset_feeding () { _feeding = false ; } + bool in_identity () const; bool out_identity () const; + bool can_coalesce () const; static double pin_x_pos (uint32_t, double, uint32_t, uint32_t, bool); static void draw_connection (cairo_t*, double, double, double, double, bool, bool dashed = false); - static void draw_gnd (cairo_t*, double, double, bool); - static void draw_X (cairo_t*, double, double, bool); - static void draw_sidechain (cairo_t*, double, double, bool); - static void draw_thru (cairo_t*, double, double, bool); + static void draw_gnd (cairo_t*, double, double, double, bool); + static void draw_sidechain (cairo_t*, double, double, double, bool); + static void draw_thru_src (cairo_t*, double, double, double, bool); + static void draw_thru_sink (cairo_t*, double, double, double, bool); private: bool on_expose_event (GdkEventExpose *); void expose_input_map (cairo_t*, const double, const double); + void expose_coalesced_input_map (cairo_t*, const double, const double); void expose_output_map (cairo_t*, const double, const double); ARDOUR::ChanCount _in; @@ -340,8 +356,14 @@ private: ARDOUR::ChanMapping _f_out_map; ARDOUR::ChanMapping _f_thru_map; ARDOUR::ChanCount _f_sources; - bool _feed; + ARDOUR::ChanCount _i_in; + ARDOUR::ChanMapping _i_in_map; + ARDOUR::ChanMapping _i_thru_map; + ARDOUR::ChanCount _i_sinks; + bool _fed_by; + bool _feeding; bool _input; + bool _terminal; }; public: |