diff options
author | Robin Gareus <robin@gareus.org> | 2016-04-02 03:20:43 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-04-02 03:20:43 +0200 |
commit | c44fb3e6627bb43eaddcf29ffc3feae3b72c668d (patch) | |
tree | 86af8e63e1d1fef3875bcea2544fc0bf3e6b5190 /gtk2_ardour/plugin_pin_dialog.cc | |
parent | 2f62309d447d9f9426a7624b454aef06a58e6656 (diff) |
fix some thinkos with audio/midi port counting.
(there's more to come w/multiple midi ports grouped left)
Diffstat (limited to 'gtk2_ardour/plugin_pin_dialog.cc')
-rw-r--r-- | gtk2_ardour/plugin_pin_dialog.cc | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/gtk2_ardour/plugin_pin_dialog.cc b/gtk2_ardour/plugin_pin_dialog.cc index 48f09f12ff..b7f9d7f810 100644 --- a/gtk2_ardour/plugin_pin_dialog.cc +++ b/gtk2_ardour/plugin_pin_dialog.cc @@ -179,11 +179,13 @@ PluginPinDialog::update_elements () _selection.reset(); for (uint32_t i = 0; i < _in.n_total (); ++i) { - _elements.push_back (CtrlWidget (Input, (i < _in.n_midi () ? DataType::MIDI : DataType::AUDIO), i)); + int id = (i < _in.n_midi ()) ? i : i - _in.n_midi (); + _elements.push_back (CtrlWidget (Input, (i < _in.n_midi () ? DataType::MIDI : DataType::AUDIO), id)); } for (uint32_t i = 0; i < _out.n_total (); ++i) { - _elements.push_back (CtrlWidget (Output, (i < _out.n_midi () ? DataType::MIDI : DataType::AUDIO), i)); + int id = (i < _out.n_midi ()) ? i : i - _out.n_midi (); + _elements.push_back (CtrlWidget (Output, (i < _out.n_midi () ? DataType::MIDI : DataType::AUDIO), id)); } for (uint32_t n = 0; n < _n_plugins; ++n) { @@ -214,16 +216,24 @@ PluginPinDialog::update_element_pos () for (CtrlElemList::iterator i = _elements.begin(); i != _elements.end(); ++i) { switch (i->e->ct) { case Input: - i->x = rint ((i->e->id + 1) * _width / (1. + _in.n_total ())) - 5.5; - i->y = y_in - 25; - i->w = 10; - i->h = 25; + { + uint32_t idx = i->e->id; + if (i->e->dt == DataType::AUDIO) { idx += _in.n_midi (); } + i->x = rint ((idx + 1) * _width / (1. + _in.n_total ())) - 5.5; + i->y = y_in - 25; + i->w = 10; + i->h = 25; + } break; case Output: - i->x = rint ((i->e->id + 1) * _width / (1. + _out.n_total ())) - 5.5; - i->y = y_out; - i->w = 10; - i->h = 25; + { + uint32_t idx = i->e->id; + if (i->e->dt == DataType::AUDIO) { idx += _out.n_midi (); } + i->x = rint ((idx + 1) * _width / (1. + _out.n_total ())) - 5.5; + i->y = y_out; + i->w = 10; + i->h = 25; + } break; case Sink: { |