diff --git a/src/main/java/com/bitwig/extensions/controllers/embodme/Erae2ExtensionDefinition.java b/src/main/java/com/bitwig/extensions/controllers/embodme/Erae2ExtensionDefinition.java index d0aac386..66f55dff 100644 --- a/src/main/java/com/bitwig/extensions/controllers/embodme/Erae2ExtensionDefinition.java +++ b/src/main/java/com/bitwig/extensions/controllers/embodme/Erae2ExtensionDefinition.java @@ -66,7 +66,11 @@ public String getHelpFilePath() { @Override public void listAutoDetectionMidiPortNames(final AutoDetectionMidiPortNamesList list, final PlatformType platformType) { - list.add(new String[] {"Erae 2", "MIDIIN2 (Erae 2)"}, new String[] {"Erae 2"}); + if (platformType == PlatformType.WINDOWS) { + list.add(new String[] {"Erae 2", "MIDIIN2 (Erae 2)"}, new String[] {"Erae 2"}); + } else { + list.add(new String[] {"Erae 2 MIDI", "Erae 2 MIDI (MPE)"}, new String[] {"Erae 2 MIDI"}); + } } @Override diff --git a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/DisableBinding.java b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/DisableBinding.java index 0cc2ba8d..d2dbcef0 100644 --- a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/DisableBinding.java +++ b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/DisableBinding.java @@ -2,4 +2,5 @@ public interface DisableBinding { void setDisabled(boolean disabled); + } diff --git a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/ParameterDisplayBinding.java b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/ParameterDisplayBinding.java index 8d26185c..a0aa0912 100644 --- a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/ParameterDisplayBinding.java +++ b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/ParameterDisplayBinding.java @@ -51,18 +51,23 @@ private void handleDisplayValue(final String value) { public void setDisabled(final boolean disabled) { this.disabled = disabled; + if (disabled) { + clearText(); + } if (isActive()) { if (disabled) { deactivate(); - display.setText(targetId, 0, titleName); - display.setText(targetId, 1, ""); - display.setText(targetId, 2, ""); } else { activate(); } } } + private void clearText() { + display.setText(targetId, 0, titleName); + display.setText(targetId, 1, ""); + display.setText(targetId, 2, ""); + } @Override protected void deactivate() { diff --git a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/RelativeEncoderBinding.java b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/RelativeEncoderBinding.java index 4bcb8c30..74d31bc1 100644 --- a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/RelativeEncoderBinding.java +++ b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/bindings/RelativeEncoderBinding.java @@ -5,22 +5,16 @@ import com.bitwig.extension.controller.api.RelativeHardwareKnob; import com.bitwig.extensions.controllers.novation.launchcontrolxlmk3.control.LaunchRelativeEncoder; -public class RelativeEncoderBinding extends LauncherBinding { +public class RelativeEncoderBinding extends LauncherBinding implements DisableBinding { private final LaunchRelativeEncoder encoder; + private boolean disabled = false; public RelativeEncoderBinding(final Parameter parameter, final LaunchRelativeEncoder encoder) { super(encoder.getId(), encoder.getEncoder(), parameter); - parameter.discreteValueCount().addValueObserver(this::handleSteps); this.encoder = encoder; } - private void handleSteps(final int discreteSteps) { - if (isActive()) { - - } - } - @Override protected HardwareBinding getHardwareBinding() { return getTarget().addBinding(getSource()); @@ -32,7 +26,20 @@ protected void updateValue() { @Override protected void activate() { + if (disabled) { + return; + } super.activate(); encoder.setEncoderBehavior(LaunchRelativeEncoder.EncoderMode.ACCELERATED, 64); } + + @Override + public void setDisabled(final boolean disabled) { + this.disabled = disabled; + if (disabled) { + deactivate(); + } else { + activate(); + } + } } diff --git a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/layer/Remotes.java b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/layer/Remotes.java index 56389f01..1a4fbb54 100644 --- a/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/layer/Remotes.java +++ b/src/main/java/com/bitwig/extensions/controllers/novation/launchcontrolxlmk3/layer/Remotes.java @@ -64,15 +64,18 @@ public void bind(final Layer layer, final LaunchControlXlHwElements hwElements, layer.addBinding(new LightValueBindings(parameter, row1Encoder.getLight(), DEVICE_COLORS.get(i))); final Parameter parameter2 = getParameter2(i); + final RelativeEncoderBinding row2EncoderBinding = new RelativeEncoderBinding(parameter2, row2Encoder); final ParameterDisplayBinding parameterRow2DisplayBinding = new ParameterDisplayBinding( new DisplayId(row2Encoder.getTargetId(), displayControl), deviceName, parameter2); - layer.addBinding(parameterRow2DisplayBinding); - final RelativeEncoderBinding row2Binding = new RelativeEncoderBinding(parameter2, row2Encoder); - layer.addBinding(row2Binding); final LightValueBindings row2LightBinding = new LightValueBindings(parameter2, row2Encoder.getLight(), DEVICE_COLORS.get(i)); + + layer.addBinding(row2EncoderBinding); + layer.addBinding(parameterRow2DisplayBinding); layer.addBinding(row2LightBinding); + + disableBindings.add(row2EncoderBinding); disableBindings.add(parameterRow2DisplayBinding); disableBindings.add(row2LightBinding); } @@ -128,6 +131,9 @@ private void updateDevicePageName(final boolean handleEmpty) { public void setActive(final boolean active) { this.active = active; + if (active) { + updateRow2Layer(); + } } public Parameter getParameter(final int index) {