Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
72ef93c
DlgPrefControls: remove "(Experimental)" label from skin scaling
Be-ing Sep 17, 2017
be6d495
DlgPrefControls: don't apply changes until Apply button is pressed
Be-ing Sep 17, 2017
04424a3
split Interface preference pane into Interface and Decks
Be-ing Nov 11, 2017
f2354f9
DlgPrefDeck: detangle rate range combobox from CO value
Be-ing Nov 12, 2017
a63769f
DlgPrefDeck: detangle rate inversion checkbox from CO
Be-ing Nov 12, 2017
6a257db
code cleanup (use enum classes instead of magic ints)
Be-ing Nov 12, 2017
29ef9d1
change "rateRange" CO to a ControlPotmeter to set limits on it
Be-ing Nov 12, 2017
f413afa
DlgPrefDeck: detangle playing track protection checkbox from config v…
Be-ing Nov 12, 2017
d05ad94
DlgPrefDeck: detangle load tracks to cue point checkbox from ConfigValue
Be-ing Nov 12, 2017
18ce6d3
DlgPrefDeck: detangle cue mode selection buttons from ConfigValue
Be-ing Nov 12, 2017
042ac2e
DlgPrefDeck: detangle rate adjustment widgets from ConfigValues
Be-ing Nov 12, 2017
dfaa7cf
DlgPrefDeck: detangle track time setting from CO
Be-ing Nov 12, 2017
c8a5a08
fix reverting to default skin when opening Preferences without pressi…
Be-ing Nov 20, 2017
c06a924
move Waveform preferences out to equal tree level as other prefs
Be-ing Nov 20, 2017
7b6c6bf
cleanup variable names in DlgPreferences
Be-ing Nov 20, 2017
d9c3ea0
reorder preferences pages in list
Be-ing Nov 20, 2017
f10f00d
add icon for Decks Preferences
Be-ing Nov 20, 2017
c045be6
use anonymous namespace
Be-ing Nov 25, 2017
2ea945b
restore lines lost when splitting up dlgprefcontrols.cpp
Be-ing Nov 25, 2017
cd9ed62
fix tests that depend on rateRange
Be-ing Nov 25, 2017
befc47f
Merge remote-tracking branch 'upstream/master' into preferences_cleanup
Be-ing Nov 25, 2017
16d46f0
DlgPrefDecks: make Cancel button work
Be-ing Nov 25, 2017
2d6d765
Merge remote-tracking branch 'upstream/master' into preferences_cleanup
Be-ing Nov 30, 2017
92c55aa
Merge remote-tracking branch 'upstream/master' into preferences_cleanup
Be-ing Dec 18, 2017
7e4aa9b
remove unnecesary file heading comments
Be-ing Dec 18, 2017
330473f
break up long lines of code
Be-ing Dec 18, 2017
2ea6e9a
fix updating of track time display in preferences when loading dialog
Be-ing Dec 18, 2017
d89f84c
make DlgPrefInterface Cancel button work
Be-ing Dec 18, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions build/depends.py
Original file line number Diff line number Diff line change
Expand Up @@ -670,11 +670,12 @@ def sources(self, build):

"preferences/configobject.cpp",
"preferences/dialog/dlgprefautodj.cpp",
"preferences/dialog/dlgprefcontrols.cpp",
"preferences/dialog/dlgprefdeck.cpp",
"preferences/dialog/dlgprefcrossfader.cpp",
"preferences/dialog/dlgprefeffects.cpp",
"preferences/dialog/dlgprefeq.cpp",
"preferences/dialog/dlgpreferences.cpp",
"preferences/dialog/dlgprefinterface.cpp",
"preferences/dialog/dlgpreflibrary.cpp",
"preferences/dialog/dlgprefnovinyl.cpp",
"preferences/dialog/dlgprefrecord.cpp",
Expand Down Expand Up @@ -1200,11 +1201,12 @@ def sources(self, build):
'library/recording/dlgrecording.ui',
'preferences/dialog/dlgprefautodjdlg.ui',
'preferences/dialog/dlgprefbeatsdlg.ui',
'preferences/dialog/dlgprefcontrolsdlg.ui',
'preferences/dialog/dlgprefdeckdlg.ui',
'preferences/dialog/dlgprefcrossfaderdlg.ui',
'preferences/dialog/dlgprefeffectsdlg.ui',
'preferences/dialog/dlgprefeqdlg.ui',
'preferences/dialog/dlgpreferencesdlg.ui',
'preferences/dialog/dlgprefinterfacedlg.ui',
'preferences/dialog/dlgprefkeydlg.ui',
'preferences/dialog/dlgpreflibrarydlg.ui',
'preferences/dialog/dlgprefnovinyldlg.ui',
Expand Down
Binary file added res/images/preferences/ic_preferences_decks.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions res/mixxx.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
<file>images/preferences/ic_preferences_broadcast.png</file>
<file>images/preferences/ic_preferences_controllers.png</file>
<file>images/preferences/ic_preferences_crossfader.png</file>
<file>images/preferences/ic_preferences_decks.png</file>
<file>images/preferences/ic_preferences_effects.png</file>
<file>images/preferences/ic_preferences_equalizers.png</file>
<file>images/preferences/ic_preferences_interface.png</file>
Expand Down
112 changes: 66 additions & 46 deletions src/engine/ratecontrol.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,16 @@

#include <QtDebug>

// Static default values for rate buttons (percents). Note that these are not
// actually used -- the preferences code sets the values that are stored in the
// user's configuration. These are just fail safe defaults.
double RateControl::m_dTemp = 4.00; //(eg. 4.00%)
double RateControl::m_dTempSmall = 2.00;
double RateControl::m_dPerm = 0.50;
double RateControl::m_dPermSmall = 0.05;

int RateControl::m_iRateRampSensitivity = 250;
// Static default values for rate buttons (percents)
double RateControl::m_dTemporaryRateChangeCoarse;
double RateControl::m_dTemporaryRateChangeFine;
double RateControl::m_dPermanentRateChangeCoarse;
double RateControl::m_dPermanentRateChangeFine;
int RateControl::m_iRateRampSensitivity;
enum RateControl::RampMode RateControl::m_eRateRampMode;

const double RateControl::kWheelMultiplier = 40.0;
const double RateControl::kPausedJogMultiplier = 18.0;
enum RateControl::RATERAMP_MODE RateControl::m_eRateRampMode = RateControl::RATERAMP_STEP;

RateControl::RateControl(QString group,
UserSettingsPointer pConfig)
Expand All @@ -44,7 +42,7 @@ RateControl::RateControl(QString group,
m_pScratchController = new PositionScratchController(group);

m_pRateDir = new ControlObject(ConfigKey(group, "rate_dir"));
m_pRateRange = new ControlObject(ConfigKey(group, "rateRange"));
m_pRateRange = new ControlPotmeter(ConfigKey(group, "rateRange"), 0.01, 0.90);
// Allow rate slider to go out of bounds so that master sync rate
// adjustments are not capped.
m_pRateSlider = new ControlPotmeter(ConfigKey(group, "rate"),
Expand Down Expand Up @@ -161,14 +159,15 @@ RateControl::RateControl(QString group,
// FIXME: This should be dependent on sample rate/block size or something
m_pJogFilter->setFilterLength(25);

// Update Internal Settings
// Set Pitchbend Mode
m_eRateRampMode = (RateControl::RATERAMP_MODE)
getConfig()->getValueString(ConfigKey("[Controls]","RateRamp")).toInt();
// // Update Internal Settings
// // Set Pitchbend Mode
// m_eRateRampMode = static_cast<RampMode>(
// getConfig()->getValue(ConfigKey("[Controls]","RateRamp"),
// static_cast<int>(RampMode::Stepping)));

// Set the Sensitivity
m_iRateRampSensitivity =
getConfig()->getValueString(ConfigKey("[Controls]","RateRampSensitivity")).toInt();
// // Set the Sensitivity
// m_iRateRampSensitivity =
// getConfig()->getValueString(ConfigKey("[Controls]","RateRampSensitivity")).toInt();

m_pSyncMode = new ControlProxy(group, "sync_mode", this);
}
Expand Down Expand Up @@ -209,15 +208,17 @@ void RateControl::setBpmControl(BpmControl* bpmcontrol) {
}

//static
void RateControl::setRateRamp(bool linearMode)
{
m_eRateRampMode = linearMode ?
RateControl::RATERAMP_LINEAR : RateControl::RATERAMP_STEP;
void RateControl::setRateRampMode(RampMode mode) {
m_eRateRampMode = mode;
}

//static
void RateControl::setRateRampSensitivity(int sense)
{
RateControl::RampMode RateControl::getRateRampMode() {
return m_eRateRampMode;
}

//static
void RateControl::setRateRampSensitivity(int sense) {
// Reverse the actual sensitivity value passed.
// That way the gui works in an intuitive manner.
sense = RATE_SENSITIVITY_MAX - sense + RATE_SENSITIVITY_MIN;
Expand All @@ -231,23 +232,43 @@ void RateControl::setRateRampSensitivity(int sense)
}

//static
void RateControl::setTemp(double v) {
m_dTemp = v;
void RateControl::setTemporaryRateChangeCoarseAmount(double v) {
m_dTemporaryRateChangeCoarse = v;
}

//static
void RateControl::setTempSmall(double v) {
m_dTempSmall = v;
void RateControl::setTemporaryRateChangeFineAmount(double v) {
m_dTemporaryRateChangeFine = v;
}

//static
void RateControl::setPerm(double v) {
m_dPerm = v;
void RateControl::setPermanentRateChangeCoarseAmount(double v) {
m_dPermanentRateChangeCoarse = v;
}

//static
void RateControl::setPermSmall(double v) {
m_dPermSmall = v;
void RateControl::setPermanentRateChangeFineAmount(double v) {
m_dPermanentRateChangeFine = v;
}

//static
double RateControl::getTemporaryRateChangeCoarseAmount() {
return m_dTemporaryRateChangeCoarse;
}

//static
double RateControl::getTemporaryRateChangeFineAmount() {
return m_dTemporaryRateChangeFine;
}

//static
double RateControl::getPermanentRateChangeCoarseAmount() {
return m_dPermanentRateChangeCoarse;
}

//static
double RateControl::getPermanentRateChangeFineAmount() {
return m_dPermanentRateChangeFine;
}

void RateControl::slotReverseRollActivate(double v) {
Expand Down Expand Up @@ -283,7 +304,7 @@ void RateControl::slotControlRatePermDown(double)
// Adjusts temp rate down if button pressed
if (buttonRatePermDown->get()) {
m_pRateSlider->set(m_pRateSlider->get() -
m_pRateDir->get() * m_dPerm / (100 * m_pRateRange->get()));
m_pRateDir->get() * m_dPermanentRateChangeCoarse / (100 * m_pRateRange->get()));
}
}

Expand All @@ -292,15 +313,15 @@ void RateControl::slotControlRatePermDownSmall(double)
// Adjusts temp rate down if button pressed
if (buttonRatePermDownSmall->get())
m_pRateSlider->set(m_pRateSlider->get() -
m_pRateDir->get() * m_dPermSmall / (100. * m_pRateRange->get()));
m_pRateDir->get() * m_dPermanentRateChangeFine / (100. * m_pRateRange->get()));
}

void RateControl::slotControlRatePermUp(double)
{
// Adjusts temp rate up if button pressed
if (buttonRatePermUp->get()) {
m_pRateSlider->set(m_pRateSlider->get() +
m_pRateDir->get() * m_dPerm / (100. * m_pRateRange->get()));
m_pRateDir->get() * m_dPermanentRateChangeCoarse / (100. * m_pRateRange->get()));
}
}

Expand All @@ -309,7 +330,7 @@ void RateControl::slotControlRatePermUpSmall(double)
// Adjusts temp rate up if button pressed
if (buttonRatePermUpSmall->get())
m_pRateSlider->set(m_pRateSlider->get() +
m_pRateDir->get() * m_dPermSmall / (100. * m_pRateRange->get()));
m_pRateDir->get() * m_dPermanentRateChangeFine / (100. * m_pRateRange->get()));
}

void RateControl::slotControlRateTempDown(double)
Expand Down Expand Up @@ -540,7 +561,7 @@ void RateControl::process(const double rate,
if ((m_ePbPressed) && (!m_bTempStarted)) {
m_bTempStarted = true;

if (m_eRateRampMode == RATERAMP_STEP) {
if (m_eRateRampMode == RampMode::Stepping) {
// old temporary pitch shift behavior
double range = m_pRateRange->get();

Expand All @@ -550,9 +571,9 @@ void RateControl::process(const double rate,
return;
}

double change = m_pRateDir->get() * m_dTemp /
double change = m_pRateDir->get() * m_dTemporaryRateChangeCoarse /
(100. * range);
double csmall = m_pRateDir->get() * m_dTempSmall /
double csmall = m_pRateDir->get() * m_dTemporaryRateChangeFine /
(100. * range);

if (buttonRateTempUp->get())
Expand All @@ -563,23 +584,22 @@ void RateControl::process(const double rate,
addRateTemp(csmall);
else if (buttonRateTempDownSmall->get())
subRateTemp(csmall);
} else {
// m_eRateRampMode == RATERAMP_LINEAR
m_dTempRateChange = ((double)latrate / ((double)m_iRateRampSensitivity / 100.));
} else if (m_eRateRampMode == RampMode::Linear) {
m_dTemporaryRateChangeCoarse = ((double)latrate / ((double)m_iRateRampSensitivity / 100.));

if (m_eRampBackMode == RATERAMP_RAMPBACK_PERIOD)
m_dRateTempRampbackChange = 0.0;
}

}

if (m_eRateRampMode == RATERAMP_LINEAR) {
if (m_eRateRampMode == RampMode::Linear) {
if (m_ePbCurrent) {
// apply ramped pitchbending
if (m_ePbCurrent == RateControl::RATERAMP_UP) {
addRateTemp(m_dTempRateChange);
addRateTemp(m_dTemporaryRateChangeCoarse);
} else if (m_ePbCurrent == RateControl::RATERAMP_DOWN) {
subRateTemp(m_dTempRateChange);
subRateTemp(m_dTemporaryRateChangeCoarse);
}
} else if ((m_bTempStarted)
|| ((m_eRampBackMode != RATERAMP_RAMPBACK_NONE)
Expand All @@ -605,7 +625,7 @@ void RateControl::process(const double rate,
resetRateTemp();
}
}
} else if ((m_eRateRampMode == RATERAMP_STEP) && (m_bTempStarted)) {
} else if ((m_eRateRampMode == RampMode::Stepping) && (m_bTempStarted)) {
if (!m_ePbCurrent) {
m_bTempStarted = false;
resetRateTemp();
Expand Down
Loading