private static bool SetMute(MidiConfiguration midiConfig, MidiControlChangeMessage msg, bool oldMute) { var newMute = oldMute; if (midiConfig.ControllerType == ControllerTypes.LinearPotentiometer) { var calcVolume = Current.CalculateVolume(msg.ControlValue, midiConfig.MinValue, midiConfig.MaxValue, midiConfig.ScalingValue); newMute = calcVolume < 50; } else if (midiConfig.ControllerType == ControllerTypes.Button) { if (msg.ControlValue == midiConfig.MaxValue) { newMute = !newMute; } } else if (midiConfig.ControllerType == ControllerTypes.RotaryEncoder) { if (msg.ControlValue == midiConfig.MaxValue) { newMute = false; } else { newMute = true; } } return(newMute); }
private static int SetVolume(MidiConfiguration midiConfig, MidiControlChangeMessage msg, int oldVolume) { var newVolume = oldVolume; switch (midiConfig.ControllerType) { case ControllerTypes.LinearPotentiometer: newVolume = Current.CalculateVolume(msg.ControlValue, midiConfig.MinValue, midiConfig.MaxValue, midiConfig.ScalingValue); break; case ControllerTypes.Button: { if (msg.ControlValue == midiConfig.MaxValue) { newVolume = oldVolume > 0 ? 0 : 100; } break; } case ControllerTypes.RotaryEncoder when msg.ControlValue == midiConfig.MinValue: { newVolume -= (int)midiConfig.ScalingValue; if (newVolume < 0) { newVolume = 0; } break; } case ControllerTypes.RotaryEncoder: { if (msg.ControlValue == midiConfig.MaxValue) { newVolume += (int)midiConfig.ScalingValue; if (newVolume > 100) { newVolume = 100; } } break; } } return(newVolume); }
private static bool MidiEquals(MidiConfiguration midiConfig, MidiControlChangeMessage msg) { return(midiConfig.Channel == msg.Channel && midiConfig.Controller == msg.Controller); }