adds support for iCon Platform M+ controller
Adds a device profile for iCon Platform M+ controller and new function that flips between editor and mixer window. This function is mapped to "mixer" button on controller.
This commit is contained in:
parent
fc961f1622
commit
d1f4679abc
@ -60,6 +60,7 @@ DeviceInfo::DeviceInfo()
|
|||||||
, _uses_ipmidi (false)
|
, _uses_ipmidi (false)
|
||||||
, _no_handshake (false)
|
, _no_handshake (false)
|
||||||
, _is_qcon(false)
|
, _is_qcon(false)
|
||||||
|
, _is_platformMp(false)
|
||||||
, _has_qcon_second_lcd(false)
|
, _has_qcon_second_lcd(false)
|
||||||
, _has_qcon_master_meters(false)
|
, _has_qcon_master_meters(false)
|
||||||
, _has_meters (true)
|
, _has_meters (true)
|
||||||
@ -339,6 +340,12 @@ DeviceInfo::set_state (const XMLNode& node, int /* version */)
|
|||||||
_is_qcon = false;
|
_is_qcon = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((child = node.child ("IsPlatformMp")) != 0) {
|
||||||
|
child->get_property ("value", _is_platformMp);
|
||||||
|
} else {
|
||||||
|
_is_platformMp = false;
|
||||||
|
}
|
||||||
|
|
||||||
if ((child = node.child ("HasQConSecondLCD")) != 0) {
|
if ((child = node.child ("HasQConSecondLCD")) != 0) {
|
||||||
child->get_property ("value", _has_qcon_second_lcd);
|
child->get_property ("value", _has_qcon_second_lcd);
|
||||||
} else {
|
} else {
|
||||||
@ -499,6 +506,11 @@ DeviceInfo::is_qcon () const
|
|||||||
return _is_qcon;
|
return _is_qcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool DeviceInfo::is_platformMp () const
|
||||||
|
{
|
||||||
|
return _is_platformMp;
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
DeviceInfo::has_qcon_second_lcd () const
|
DeviceInfo::has_qcon_second_lcd () const
|
||||||
{
|
{
|
||||||
|
@ -81,6 +81,7 @@ class DeviceInfo
|
|||||||
bool uses_ipmidi() const;
|
bool uses_ipmidi() const;
|
||||||
bool no_handshake() const;
|
bool no_handshake() const;
|
||||||
bool is_qcon() const;
|
bool is_qcon() const;
|
||||||
|
bool is_platformMp() const;
|
||||||
bool has_qcon_second_lcd() const;
|
bool has_qcon_second_lcd() const;
|
||||||
bool has_qcon_master_meters() const;
|
bool has_qcon_master_meters() const;
|
||||||
bool has_meters() const;
|
bool has_meters() const;
|
||||||
@ -114,6 +115,7 @@ class DeviceInfo
|
|||||||
bool _uses_ipmidi;
|
bool _uses_ipmidi;
|
||||||
bool _no_handshake;
|
bool _no_handshake;
|
||||||
bool _is_qcon;
|
bool _is_qcon;
|
||||||
|
bool _is_platformMp;
|
||||||
bool _has_qcon_second_lcd;
|
bool _has_qcon_second_lcd;
|
||||||
bool _has_qcon_master_meters;
|
bool _has_qcon_master_meters;
|
||||||
bool _has_meters;
|
bool _has_meters;
|
||||||
|
@ -1586,6 +1586,10 @@ MackieControlProtocol::build_device_specific_button_map()
|
|||||||
|
|
||||||
#define DEFINE_BUTTON_HANDLER(b,p,r) button_map.insert (pair<Button::ID,ButtonHandlers> ((b), ButtonHandlers ((p),(r))));
|
#define DEFINE_BUTTON_HANDLER(b,p,r) button_map.insert (pair<Button::ID,ButtonHandlers> ((b), ButtonHandlers ((p),(r))));
|
||||||
|
|
||||||
|
if (_device_info.is_platformMp()) {
|
||||||
|
DEFINE_BUTTON_HANDLER (Button::Marker, &MackieControlProtocol::flip_window_press, &MackieControlProtocol::flip_window_release);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -511,6 +511,8 @@ class MackieControlProtocol
|
|||||||
Mackie::LedState view_release (Mackie::Button&);
|
Mackie::LedState view_release (Mackie::Button&);
|
||||||
|
|
||||||
Mackie::LedState bank_release (Mackie::Button&, uint32_t bank_num);
|
Mackie::LedState bank_release (Mackie::Button&, uint32_t bank_num);
|
||||||
|
Mackie::LedState flip_window_press (Mackie::Button&);
|
||||||
|
Mackie::LedState flip_window_release (Mackie::Button&);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
@ -495,6 +495,19 @@ MackieControlProtocol::marker_release (Button &)
|
|||||||
return off;
|
return off;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LedState
|
||||||
|
MackieControlProtocol::flip_window_press (Button &)
|
||||||
|
{
|
||||||
|
access_action("Common/toggle-editor-and-mixer");
|
||||||
|
return on;
|
||||||
|
}
|
||||||
|
|
||||||
|
LedState
|
||||||
|
MackieControlProtocol::flip_window_release (Button &)
|
||||||
|
{
|
||||||
|
return off;
|
||||||
|
}
|
||||||
|
|
||||||
/////////////////////////////////////
|
/////////////////////////////////////
|
||||||
// Transport Buttons
|
// Transport Buttons
|
||||||
/////////////////////////////////////
|
/////////////////////////////////////
|
||||||
|
16
share/mcp/platform_m+.device
Normal file
16
share/mcp/platform_m+.device
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<MackieProtocolDevice>
|
||||||
|
<Name value="iCON Platform M+"/>
|
||||||
|
<Strips value="8"/>
|
||||||
|
<MasterFader value="yes"/>
|
||||||
|
<TimecodeDisplay value="no"/>
|
||||||
|
<TwoCharacterDisplay value="no"/>
|
||||||
|
<Extenders value="0"/>
|
||||||
|
<MasterPosition value="0"/>
|
||||||
|
<GlobalControls value="yes"/>
|
||||||
|
<JogWheel value="yes"/>
|
||||||
|
<TouchSenseFaders value="yes"/>
|
||||||
|
<NoHandShake value="yes"/>
|
||||||
|
<HasMeters value="no"/>
|
||||||
|
<IsPlatformMp value="yes"/>
|
||||||
|
</MackieProtocolDevice>
|
Loading…
Reference in New Issue
Block a user