bool EffectChangeSpeed::TransferDataToWindow() { mbLoopDetect = true; if (!mUIParent->TransferDataToWindow()) { return false; } if (mFromVinyl == kVinyl_NA) { mFromVinyl = kVinyl_33AndAThird; } Update_Text_PercentChange(); Update_Text_Multiplier(); Update_Slider_PercentChange(); Update_TimeCtrl_ToLength(); // Set from/to Vinyl controls - mFromVinyl must be set first. mpChoice_FromVinyl->SetSelection(mFromVinyl); // Then update to get correct mToVinyl. Update_Vinyl(); // Then update ToVinyl control. mpChoice_ToVinyl->SetSelection(mToVinyl); // Set From Length control. // Set the format first so we can get sample accuracy. mpFromLengthCtrl->SetFormatName(mFormat); mpFromLengthCtrl->SetValue(mFromLength); mbLoopDetect = false; return true; }
void EffectChangeSpeed::OnText_PercentChange(wxCommandEvent & WXUNUSED(evt)) { if (mbLoopDetect) return; mpTextCtrl_PercentChange->GetValidator()->TransferFromWindow(); UpdateUI(); mbLoopDetect = true; Update_Text_Multiplier(); Update_Slider_PercentChange(); Update_Vinyl(); Update_TimeCtrl_ToLength(); mbLoopDetect = false; }
void EffectChangeSpeed::OnSlider_PercentChange(wxCommandEvent & WXUNUSED(evt)) { if (mbLoopDetect) return; m_PercentChange = (double)(mpSlider_PercentChange->GetValue()); // Warp positive values to actually go up faster & further than negatives. if (m_PercentChange > 0.0) m_PercentChange = pow(m_PercentChange, kSliderWarp); UpdateUI(); mbLoopDetect = true; Update_Text_PercentChange(); Update_Text_Multiplier(); Update_Vinyl(); Update_TimeCtrl_ToLength(); mbLoopDetect = false; }
void EffectChangeSpeed::OnTimeCtrl_ToLength(wxCommandEvent & WXUNUSED(evt)) { if (mbLoopDetect) return; mToLength = mpToLengthCtrl->GetValue(); m_PercentChange = ((mFromLength * 100.0) / mToLength) - 100.0; UpdateUI(); mbLoopDetect = true; Update_Text_PercentChange(); Update_Text_Multiplier(); Update_Slider_PercentChange(); Update_Vinyl(); mbLoopDetect = false; }
void EffectChangeSpeed::OnTimeCtrl_ToLength(wxCommandEvent & WXUNUSED(evt)) { if (mbLoopDetect) return; mToLength = mpToLengthCtrl->GetValue(); // Division by (double) 0.0 is not an error and we want to show "infinite" in // text controls, so take care that we handle infinite values when they occur. m_PercentChange = ((mFromLength * 100.0) / mToLength) - 100.0; UpdateUI(); mbLoopDetect = true; Update_Text_PercentChange(); Update_Text_Multiplier(); Update_Slider_PercentChange(); Update_Vinyl(); mbLoopDetect = false; }