diff options
author | Be <be@mixxx.org> | 2020-10-29 17:39:55 -0500 |
---|---|---|
committer | Be <be@mixxx.org> | 2020-10-29 17:39:55 -0500 |
commit | 4e744e027ea7982077ef23be33e9fa359d762f5a (patch) | |
tree | f939877efff56f959ba309114cb99ae6520a365d /src/control | |
parent | 98d9e377f7e133a1674e9c0865f3ca124adbd7a2 (diff) | |
parent | 26d27fb116f06d6d19b1d4e158ab4a8cbd85351a (diff) |
Merge remote-tracking branch 'upstream/main' into controllerengine_refactoring
Diffstat (limited to 'src/control')
-rw-r--r-- | src/control/controlbehavior.cpp | 12 | ||||
-rw-r--r-- | src/control/controllinpotmeter.cpp | 4 | ||||
-rw-r--r-- | src/control/controlobject.h | 5 |
3 files changed, 13 insertions, 8 deletions
diff --git a/src/control/controlbehavior.cpp b/src/control/controlbehavior.cpp index 720fa7399e..f6de005a90 100644 --- a/src/control/controlbehavior.cpp +++ b/src/control/controlbehavior.cpp @@ -187,7 +187,7 @@ double ControlAudioTaperPotBehavior::valueToParameter(double dValue) { // m_minDB = 0 // 0 dB = m_neutralParameter double overlay = m_offset * (1 - dValue); - if (m_minDB) { + if (m_minDB != 0) { dParam = (ratio2db(dValue + overlay) - m_minDB) / m_minDB * m_neutralParameter * -1; } else { dParam = dValue * m_neutralParameter; @@ -211,7 +211,7 @@ double ControlAudioTaperPotBehavior::parameterToValue(double dParam) { // db + linear overlay to reach // m_minDB = 0 // 0 dB = m_neutralParameter; - if (m_minDB) { + if (m_minDB != 0) { double db = (dParam * m_minDB / (m_neutralParameter * -1)) + m_minDB; dValue = (db2ratio(db) - m_offset) / (1 - m_offset) ; } else { @@ -232,7 +232,7 @@ double ControlAudioTaperPotBehavior::parameterToValue(double dParam) { double ControlAudioTaperPotBehavior::midiToParameter(double midiValue) { double dParam; - if (m_neutralParameter && m_neutralParameter != 1.0) { + if (m_neutralParameter != 0 && m_neutralParameter != 1.0) { double neutralTest = (midiValue - m_midiCorrection) / 127.0; if (neutralTest < m_neutralParameter) { dParam = midiValue / @@ -255,7 +255,7 @@ double ControlAudioTaperPotBehavior::valueToMidiParameter(double dValue) { // always on a full Midi integer double dParam = valueToParameter(dValue); double dMidiParam = dParam * 127.0; - if (m_neutralParameter && m_neutralParameter != 1.0) { + if (m_neutralParameter != 0 && m_neutralParameter != 1.0) { if (dParam < m_neutralParameter) { dMidiParam += m_midiCorrection * dParam / m_neutralParameter; } else { @@ -316,8 +316,8 @@ void ControlPushButtonBehavior::setValueFromMidi( auto* timer = getTimer(); if (pressed) { // Toggle on press - double value = pControl->get(); - pControl->set(!value, NULL); + bool value = (pControl->get() != 0); + pControl->set(!value, nullptr); timer->setSingleShot(true); timer->start(kPowerWindowTimeMillis); } else if (!timer->isActive()) { diff --git a/src/control/controllinpotmeter.cpp b/src/control/controllinpotmeter.cpp index e3f16d44b4..c3ab24cca5 100644 --- a/src/control/controllinpotmeter.cpp +++ b/src/control/controllinpotmeter.cpp @@ -9,10 +9,10 @@ ControlLinPotmeter::ControlLinPotmeter(ConfigKey key, m_pControl->setBehavior( new ControlLinPotmeterBehavior(dMinValue, dMaxValue, allowOutOfBounds)); } - if (dStep) { + if (dStep != 0) { setStepCount(static_cast<int>((dMaxValue - dMinValue) / dStep)); } - if (dSmallStep) { + if (dSmallStep != 0) { setSmallStepCount(static_cast<int>((dMaxValue - dMinValue) / dSmallStep)); } } diff --git a/src/control/controlobject.h b/src/control/controlobject.h index a3e247f846..22a6d49b93 100644 --- a/src/control/controlobject.h +++ b/src/control/controlobject.h @@ -87,6 +87,11 @@ class ControlObject : public QObject { // Instantly returns the value of the ControlObject static double get(const ConfigKey& key); + /// Returns the boolean interpretation of the ControlObject's value. + static bool toBool(const ConfigKey& key) { + return ControlObject::get(key) > 0; + } + // Sets the ControlObject value. May require confirmation by owner. inline void set(double value) { if (m_pControl) { |