From cd9a45631c3109bde2ba34c364924a1b1f2516b1 Mon Sep 17 00:00:00 2001 From: raulbehl Date: Thu, 27 Nov 2014 23:47:04 +0530 Subject: [PATCH 78/78] Bug - Reset pitch when loading new track Added a checkbox in preferences>interface If Checked resets the speed slider to default --- src/basetrackplayer.cpp | 9 ++++++++- src/basetrackplayer.h | 1 + src/dlgprefcontrols.cpp | 22 +++++++++++++++++++++- src/dlgprefcontrols.h | 4 ++++ src/dlgprefcontrolsdlg.ui | 12 +++++++++++- 5 files changed, 45 insertions(+), 3 deletions(-) diff --git a/src/basetrackplayer.cpp b/src/basetrackplayer.cpp index e3b5207..403492f 100644 --- a/src/basetrackplayer.cpp +++ b/src/basetrackplayer.cpp @@ -33,6 +33,7 @@ BaseTrackPlayer::BaseTrackPlayer(QObject* pParent, m_pLowFilterKill(NULL), m_pMidFilterKill(NULL), m_pHighFilterKill(NULL), + m_pPitch(NULL), m_replaygainPending(false) { m_pChannel = new EngineDeck(getGroup(), pConfig, pMixingEngine, pEffectsManager, defaultOrientation); @@ -116,6 +117,7 @@ BaseTrackPlayer::~BaseTrackPlayer() delete m_pMidFilterKill; delete m_pHighFilterKill; delete m_pPreGain; + delete m_pPitch; } void BaseTrackPlayer::slotLoadTrack(TrackPointer track, bool bPlay) { @@ -280,7 +282,11 @@ void BaseTrackPlayer::slotFinishLoading(TrackPointer pTrackInfoObject) } m_pPreGain->set(1.0); } - + if(m_pConfig->getValueString(ConfigKey("[Mixer Profile]", "PitchAutoReset"), 0).toInt()) { + if (m_pPitch != NULL) { + m_pPitch->set(0.0); + } + } emit(newTrackLoaded(m_pLoadedTrack)); } @@ -317,4 +323,5 @@ void BaseTrackPlayer::setupEqControls() { m_pLowFilterKill = new ControlObjectSlave(group,"filterLowKill"); m_pMidFilterKill = new ControlObjectSlave(group,"filterMidKill"); m_pHighFilterKill = new ControlObjectSlave(group,"filterHighKill"); + m_pPitch = new ControlObjectSlave(group,"rate"); } diff --git a/src/basetrackplayer.h b/src/basetrackplayer.h index 63231d5..f7dcdd7 100644 --- a/src/basetrackplayer.h +++ b/src/basetrackplayer.h @@ -72,6 +72,7 @@ class BaseTrackPlayer : public BasePlayer { ControlObjectSlave* m_pMidFilterKill; ControlObjectSlave* m_pHighFilterKill; ControlObjectSlave* m_pPreGain; + ControlObjectSlave* m_pPitch; EngineDeck* m_pChannel; bool m_replaygainPending; diff --git a/src/dlgprefcontrols.cpp b/src/dlgprefcontrols.cpp index a07ff5b..cb5e194 100644 --- a/src/dlgprefcontrols.cpp +++ b/src/dlgprefcontrols.cpp @@ -47,7 +47,8 @@ DlgPrefControls::DlgPrefControls(QWidget * parent, MixxxMainWindow * mixxx, m_pSkinLoader(pSkinLoader), m_pPlayerManager(pPlayerManager), m_iNumConfiguredDecks(0), - m_iNumConfiguredSamplers(0) { + m_iNumConfiguredSamplers(0), + m_bPitchAutoReset(false) { setupUi(this); m_pNumDecks = new ControlObjectSlave("[Master]", "num_decks", this); @@ -324,6 +325,12 @@ DlgPrefControls::DlgPrefControls(QWidget * parent, MixxxMainWindow * mixxx, SliderRateRampSensitivity->setValue(m_pConfig->getValueString( ConfigKey("[Controls]", "RateRampSensitivity")).toInt()); + // Update Speed/Pitch checker box + connect(CheckBoxPitchAutoReset, SIGNAL(stateChanged(int)), this, SLOT(slotUpdatePitchAutoReset(int))); + m_bPitchAutoReset = static_cast(m_pConfig->getValueString( + ConfigKey("[Mixer Profile]", "PitchAutoReset")).toInt()); + CheckBoxPitchAutoReset->setChecked(m_bPitchAutoReset); + slotUpdate(); } @@ -375,6 +382,8 @@ void DlgPrefControls::slotUpdate() { ComboBoxRateDir->setCurrentIndex(0); else ComboBoxRateDir->setCurrentIndex(1); + + CheckBoxPitchAutoReset->setChecked(m_bPitchAutoReset); } void DlgPrefControls::slotResetToDefaults() { @@ -416,6 +425,10 @@ void DlgPrefControls::slotResetToDefaults() { spinBoxTempRateRight->setValue(2.0); spinBoxPermRateLeft->setValue(0.50); spinBoxPermRateRight->setValue(0.05); + + // Pitch auto reset default un-checked. + m_bPitchAutoReset = false; + CheckBoxPitchAutoReset->setChecked(Qt::Unchecked); } void DlgPrefControls::slotSetLocale(int pos) { @@ -591,6 +604,9 @@ void DlgPrefControls::slotApply() { m_pConfig->set(ConfigKey("[Controls]","RateDir"), ConfigValue(0)); else m_pConfig->set(ConfigKey("[Controls]","RateDir"), ConfigValue(1)); + + m_pConfig->set(ConfigKey("[Mixer Profile]","PitchAutoReset"), + ConfigValue(m_bPitchAutoReset ? 1 : 0)); } @@ -672,3 +688,7 @@ void DlgPrefControls::slotNumSamplersChanged(double new_count) { slotSetRateDir(m_pConfig->getValueString(ConfigKey("[Controls]","RateDir")).toInt()); slotSetRateRange(m_pConfig->getValueString(ConfigKey("[Controls]","RateRange")).toInt()); } + +void DlgPrefControls::slotUpdatePitchAutoReset(int i) { + m_bPitchAutoReset = static_cast(i); +} diff --git a/src/dlgprefcontrols.h b/src/dlgprefcontrols.h index 670a4b9..38e474e 100644 --- a/src/dlgprefcontrols.h +++ b/src/dlgprefcontrols.h @@ -72,6 +72,8 @@ class DlgPrefControls : public DlgPreferencePage, public Ui::DlgPrefControlsDlg void slotNumDecksChanged(double); void slotNumSamplersChanged(double); + void slotUpdatePitchAutoReset(int i); + private: void notifyRebootNecessary(); bool checkSkinResolution(QString skin); @@ -90,6 +92,8 @@ class DlgPrefControls : public DlgPreferencePage, public Ui::DlgPrefControlsDlg int m_iNumConfiguredDecks; int m_iNumConfiguredSamplers; + + bool m_bPitchAutoReset; }; #endif diff --git a/src/dlgprefcontrolsdlg.ui b/src/dlgprefcontrolsdlg.ui index 6994d18..af63aba 100644 --- a/src/dlgprefcontrolsdlg.ui +++ b/src/dlgprefcontrolsdlg.ui @@ -14,6 +14,16 @@ Interface Preferences + + + + Resets Speed Control Slider to default when a track is loaded. + + + Reset equalizers on track load + + + @@ -625,7 +635,7 @@ Numark mode: - + Qt::Vertical -- 1.9.1