update mixer-strip display - indicate sidechain
This commit is contained in:
parent
6739b6a1e3
commit
f827168b67
@ -1080,6 +1080,21 @@ ProcessorEntry::RoutingIcon::draw_gnd (cairo_t* cr, double x0, double height, bo
|
||||
cairo_stroke (cr);
|
||||
}
|
||||
|
||||
void
|
||||
ProcessorEntry::RoutingIcon::draw_sidechain (cairo_t* cr, double x0, double height, bool midi)
|
||||
{
|
||||
const double dx = 1 + rint (max(2., 2. * UIConfiguration::instance().get_ui_scale()));
|
||||
const double y0 = rint (height * .66) + .5;
|
||||
|
||||
cairo_move_to (cr, x0 - dx, height);
|
||||
cairo_line_to (cr, x0, y0);
|
||||
cairo_line_to (cr, x0 + dx, height);
|
||||
|
||||
set_routing_color (cr, midi);
|
||||
cairo_set_line_width (cr, 1.0);
|
||||
cairo_stroke (cr);
|
||||
}
|
||||
|
||||
void
|
||||
ProcessorEntry::RoutingIcon::draw_connection (cairo_t* cr, double x0, double x1, double y0, double y1, bool midi, bool dashed)
|
||||
{
|
||||
@ -1135,24 +1150,31 @@ ProcessorEntry::RoutingIcon::expose_map (cairo_t* cr, const double width, const
|
||||
const uint32_t pc_in_midi = _sinks.n_midi();
|
||||
|
||||
// TODO indicate midi-bypass ??
|
||||
// show "X" for
|
||||
// TODO indicate side-chain
|
||||
|
||||
for (uint32_t i = 0; i < pc_in; ++i) {
|
||||
const bool is_midi = i < pc_in_midi;
|
||||
bool valid_in;
|
||||
uint32_t pn = is_midi ? i : i - pc_in_midi;
|
||||
uint32_t idx = _in_map.get (is_midi ? DataType::MIDI : DataType::AUDIO, pn, &valid_in);
|
||||
DataType dt = is_midi ? DataType::MIDI : DataType::AUDIO;
|
||||
uint32_t idx = _in_map.get (dt, pn, &valid_in);
|
||||
if (!valid_in) {
|
||||
double x = pin_x_pos (i, width, pc_in, pc_in_midi, is_midi);
|
||||
draw_gnd (cr, x, height, is_midi);
|
||||
continue;
|
||||
}
|
||||
if (idx >= _in.get (dt)) {
|
||||
// side-chain, probably
|
||||
double x = pin_x_pos (i, width, pc_in, pc_in_midi, is_midi);
|
||||
draw_sidechain (cr, x, height, is_midi);
|
||||
continue;
|
||||
}
|
||||
double c_x0;
|
||||
double c_x1 = pin_x_pos (i, width, pc_in, 0, false);
|
||||
|
||||
if (_feed) {
|
||||
bool valid_src;
|
||||
uint32_t src = _f_out_map.get_src (is_midi ? DataType::MIDI : DataType::AUDIO, idx, &valid_src);
|
||||
uint32_t src = _f_out_map.get_src (dt, idx, &valid_src);
|
||||
if (!valid_src) {
|
||||
double x = pin_x_pos (i, width, pc_in, 0, false);
|
||||
draw_gnd (cr, x, height, is_midi);
|
||||
|
@ -301,6 +301,7 @@ private:
|
||||
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_sidechain (cairo_t*, double, double, bool);
|
||||
|
||||
private:
|
||||
bool on_expose_event (GdkEventExpose *);
|
||||
|
Loading…
Reference in New Issue
Block a user