MCP: more clarification of control ID scheme
git-svn-id: svn://localhost/ardour2/branches/3.0@11899 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
7a221363bb
commit
9b6c41c134
@ -41,7 +41,6 @@ class Control
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum base_id_t {
|
enum base_id_t {
|
||||||
fader_base_id = 0xe0,
|
|
||||||
pot_base_id = 0x30,
|
pot_base_id = 0x30,
|
||||||
jog_base_id = 0x3c,
|
jog_base_id = 0x3c,
|
||||||
fader_touch_button_base_id = 0xe0,
|
fader_touch_button_base_id = 0xe0,
|
||||||
|
@ -45,5 +45,5 @@ MidiByteArray
|
|||||||
Fader::update_message ()
|
Fader::update_message ()
|
||||||
{
|
{
|
||||||
int posi = int (0x3fff * position);
|
int posi = int (0x3fff * position);
|
||||||
return MidiByteArray (3, fader_base_id | raw_id(), posi & 0x7f, posi >> 7);
|
return MidiByteArray (3, 0xe0 | raw_id(), posi & 0x7f, posi >> 7);
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ Pot::update_message ()
|
|||||||
msg += (lrintf (value * 10.0) + 1) & 0x0f; // 0b00001111
|
msg += (lrintf (value * 10.0) + 1) & 0x0f; // 0b00001111
|
||||||
}
|
}
|
||||||
|
|
||||||
return MidiByteArray (3, 0xb0, pot_base_id | raw_id(), msg);
|
return MidiByteArray (3, 0xb0, raw_id(), msg);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -230,7 +230,7 @@ Surface::init_controls()
|
|||||||
}
|
}
|
||||||
|
|
||||||
static StripControlDefinition mackie_strip_controls[] = {
|
static StripControlDefinition mackie_strip_controls[] = {
|
||||||
{ "gain", Control::fader_base_id, Fader::factory, },
|
{ "gain", 0, Fader::factory, },
|
||||||
{ "vpot", Control::pot_base_id, Pot::factory, },
|
{ "vpot", Control::pot_base_id, Pot::factory, },
|
||||||
{ "recenable", Control::recenable_button_base_id, Button::factory, },
|
{ "recenable", Control::recenable_button_base_id, Button::factory, },
|
||||||
{ "solo", Control::solo_button_base_id, Button::factory, },
|
{ "solo", Control::solo_button_base_id, Button::factory, },
|
||||||
@ -332,10 +332,18 @@ Surface::connect_to_signals ()
|
|||||||
void
|
void
|
||||||
Surface::handle_midi_pitchbend_message (MIDI::Parser&, MIDI::pitchbend_t pb, uint32_t fader_id)
|
Surface::handle_midi_pitchbend_message (MIDI::Parser&, MIDI::pitchbend_t pb, uint32_t fader_id)
|
||||||
{
|
{
|
||||||
|
/* Pitchbend messages are fader messages. Nothing in the data we get
|
||||||
|
* from the MIDI::Parser conveys the fader ID, which was given by the
|
||||||
|
* channel ID in the status byte.
|
||||||
|
*
|
||||||
|
* Instead, we have used bind() to supply the fader-within-strip ID
|
||||||
|
* when we connected to the per-channel pitchbend events.
|
||||||
|
*/
|
||||||
|
|
||||||
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("handle_midi pitchbend on port %3, fader = %1 value = %2\n",
|
DEBUG_TRACE (DEBUG::MackieControl, string_compose ("handle_midi pitchbend on port %3, fader = %1 value = %2\n",
|
||||||
fader_id, pb, _number));
|
fader_id, pb, _number));
|
||||||
|
|
||||||
Fader* fader = faders[Control::fader_base_id | fader_id];
|
Fader* fader = faders[fader_id];
|
||||||
|
|
||||||
if (fader) {
|
if (fader) {
|
||||||
Strip* strip = dynamic_cast<Strip*> (&fader->group());
|
Strip* strip = dynamic_cast<Strip*> (&fader->group());
|
||||||
|
Loading…
Reference in New Issue
Block a user