summaryrefslogtreecommitdiff
path: root/libs/surfaces/mackie/surface.cc
diff options
context:
space:
mode:
authorBen Loftis <ben@harrisonconsoles.com>2018-02-02 09:26:17 -0600
committerBen Loftis <ben@harrisonconsoles.com>2018-02-02 09:27:37 -0600
commit3aacdd79ae7537f507e6ee86ad6ffb85bc55bdfc (patch)
treeb61e115ac8a124cd8db5bfa1f2b96a34353d3ccb /libs/surfaces/mackie/surface.cc
parent16a5e3ce55be272ec8934996a474e9beb6b8c9f2 (diff)
Fixes for the iCON Qcon mcp device - LED rings. Submitted by Michal Barhon : mbarhon@seznam.cz
Diffstat (limited to 'libs/surfaces/mackie/surface.cc')
-rwxr-xr-xlibs/surfaces/mackie/surface.cc31
1 files changed, 21 insertions, 10 deletions
diff --git a/libs/surfaces/mackie/surface.cc b/libs/surfaces/mackie/surface.cc
index 7ed0c5c26a..f8316e0e5b 100755
--- a/libs/surfaces/mackie/surface.cc
+++ b/libs/surfaces/mackie/surface.cc
@@ -116,6 +116,13 @@ Surface::Surface (MackieControlProtocol& mcp, const std::string& device_name, ui
throw failed_constructor ();
}
+ //Store Qcon flag
+ if( mcp.device_info().is_qcon() ) {
+ is_qcon = true;
+ } else {
+ is_qcon = false;
+ }
+
/* only the first Surface object has global controls */
/* lets use master_position instead */
uint32_t mp = _mcp.device_info().master_position();
@@ -1044,6 +1051,8 @@ Surface::show_two_char_display (unsigned int value, const std::string & /*dots*/
void
Surface::display_timecode (const std::string & timecode, const std::string & last_timecode)
{
+ //TODO: Fix for Qcon to correct timecode value if is over 1000 bars
+
if (!_active || !_mcp.device_info().has_timecode_display()) {
return;
}
@@ -1288,18 +1297,20 @@ Surface::set_touch_sensitivity (int sensitivity)
/* sensitivity already clamped by caller */
- if (_port) {
- MidiByteArray msg;
+ if( !is_qcon ) { // Qcon doesn't support fader sensitivity
+ if (_port) {
+ MidiByteArray msg;
- msg << sysex_hdr ();
- msg << 0x0e;
- msg << 0xff; /* overwritten for each fader below */
- msg << (sensitivity & 0x7f);
- msg << MIDI::eox;
+ msg << sysex_hdr ();
+ msg << 0x0e;
+ msg << 0xff; /* overwritten for each fader below */
+ msg << (sensitivity & 0x7f);
+ msg << MIDI::eox;
- for (int fader = 0; fader < 9; ++fader) {
- msg[6] = fader;
- _port->write (msg);
+ for (int fader = 0; fader < 9; ++fader) {
+ msg[6] = fader;
+ _port->write (msg);
+ }
}
}
}