void CSpeechEst::Porcess(float *InPwer,float*Noise,float* Trans) { UpdateSNR(InPwer,Noise,Trans); UpdateProb(); UpdateGain(); }
void EffectBassTreble::OnTrebleSlider(wxCommandEvent & evt) { double oldTreble = mTreble; mTreble = (double) evt.GetInt() / SCL_Treble; mTrebleT->GetValidator()->TransferToWindow(); if (mLink) UpdateGain(oldTreble, kTreble); EnableApply(mUIParent->Validate()); }
void EffectBassTreble::OnBassSlider(wxCommandEvent & evt) { double oldBass = mBass; mBass = (double) evt.GetInt() / SCL_Bass; mBassT->GetValidator()->TransferToWindow(); if (mLink) UpdateGain(oldBass, kBass); EnableApply(mUIParent->Validate()); }
void EffectBassTreble::OnTrebleText(wxCommandEvent & WXUNUSED(evt)) { double oldTreble = mTreble; if (!EnableApply(mUIParent->TransferDataFromWindow())) { return; } if (mLink) UpdateGain(oldTreble, kTreble); mTrebleS->SetValue((int) (mTreble * SCL_Treble)); }
void EffectBassTreble::OnBassText(wxCommandEvent & WXUNUSED(evt)) { double oldBass = mBass; if (!EnableApply(mUIParent->TransferDataFromWindow())) { return; } if (mLink) UpdateGain(oldBass, kBass); mBassS->SetValue((int) (mBass * SCL_Bass)); }
MixerTrackCluster::MixerTrackCluster(wxWindow* parent, MixerBoard* grandParent, AudacityProject* project, WaveTrack* pLeftTrack, WaveTrack* pRightTrack /*= NULL*/, const wxPoint& pos /*= wxDefaultPosition*/, const wxSize& size /*= wxDefaultSize*/) : wxPanel(parent, -1, pos, size) { mMixerBoard = grandParent; mProject = project; mLeftTrack = pLeftTrack; mRightTrack = pRightTrack; this->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE)); // Create the controls programmatically. // Not sure why, but sizers weren't getting offset vertically, // probably because not using wxDefaultPosition, // so positions are calculated explicitly below, and sizers code was removed. // (Still available in Audacity_UmixIt branch off 1.2.6.) // track name wxPoint ctrlPos(kDoubleInset, kDoubleInset); wxSize ctrlSize(size.GetWidth() - kQuadrupleInset, TRACK_NAME_HEIGHT); mStaticText_TrackName = new wxStaticText(this, -1, mLeftTrack->GetName(), ctrlPos, ctrlSize, wxALIGN_CENTRE | wxST_NO_AUTORESIZE | wxSUNKEN_BORDER); //v Useful when different tracks are different colors, but not now. // mStaticText_TrackName->SetBackgroundColour(this->GetTrackColor()); // pan slider ctrlPos.x = size.GetWidth() / 10; ctrlPos.y += TRACK_NAME_HEIGHT + kDoubleInset; ctrlSize = wxSize((size.GetWidth() * 4 / 5), PAN_HEIGHT); // The width of the pan slider must be odd (don't ask). if (!(ctrlSize.x & 1)) ctrlSize.x--; mSlider_Pan = new MixerTrackSlider( this, ID_SLIDER_PAN, /* i18n-hint: Title of the Pan slider, used to move the sound left or right */ _("Pan"), ctrlPos, ctrlSize, PAN_SLIDER, true); this->UpdatePan(); // gain slider at left ctrlPos.x = kDoubleInset; ctrlPos.y += PAN_HEIGHT + kDoubleInset; const int nGainSliderHeight = size.GetHeight() - ctrlPos.y - kQuadrupleInset; ctrlSize = wxSize(kLeftSideStackWidth - kQuadrupleInset, nGainSliderHeight); mSlider_Gain = new MixerTrackSlider( this, ID_SLIDER_GAIN, /* i18n-hint: Title of the Gain slider, used to adjust the volume */ _("Gain"), ctrlPos, ctrlSize, DB_SLIDER, true, true, 0.0, wxVERTICAL); // too much color: mSlider_Gain->SetBackgroundColour(this->GetTrackColor()); // too dark: mSlider_Gain->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW)); //#ifdef __WXMAC__ // mSlider_Gain->SetBackgroundColour(wxColour(220, 220, 220)); //#else // mSlider_Gain->SetBackgroundColour(wxColour(192, 192, 192)); //#endif this->UpdateGain(); // meter and other controls at right // musical instrument image ctrlPos.x = kInset + kLeftSideStackWidth; ctrlSize = wxSize(MUSICAL_INSTRUMENT_HEIGHT_AND_WIDTH, MUSICAL_INSTRUMENT_HEIGHT_AND_WIDTH); wxBitmap* bitmap = mMixerBoard->GetMusicalInstrumentBitmap(mLeftTrack); wxASSERT(bitmap); mBitmapButton_MusicalInstrument = new wxBitmapButton(this, ID_BITMAPBUTTON_MUSICAL_INSTRUMENT, *bitmap, ctrlPos, ctrlSize, wxBU_AUTODRAW, wxDefaultValidator, _("Musical Instrument")); // meter ctrlPos.y += MUSICAL_INSTRUMENT_HEIGHT_AND_WIDTH + kDoubleInset; const int nMeterHeight = nGainSliderHeight - (MUSICAL_INSTRUMENT_HEIGHT_AND_WIDTH + kDoubleInset) - kQuadrupleInset - kRequiredHeightBelowMeter; ctrlSize.Set(kRightSideStackWidth, nMeterHeight); mMeter = new Meter(this, -1, // wxWindow* parent, wxWindowID id, false, // bool isInput ctrlPos, ctrlSize, // const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, Meter::MixerTrackCluster); // Style style = HorizontalStereo, // mute/solo buttons stacked below meter ctrlPos.y += nMeterHeight + kQuadrupleInset; ctrlSize = wxSize(mMixerBoard->mMuteSoloWidth, MUTE_SOLO_HEIGHT); mToggleButton_Mute = new AButton(this, ID_TOGGLEBUTTON_MUTE, ctrlPos, ctrlSize, *(mMixerBoard->mImageMuteUp), *(mMixerBoard->mImageMuteOver), *(mMixerBoard->mImageMuteDown), *(mMixerBoard->mImageMuteDisabled), true); // toggle button mToggleButton_Mute->SetAlternateImages( *(mMixerBoard->mImageMuteUp), *(mMixerBoard->mImageMuteOver), *(mMixerBoard->mImageMuteDown), *(mMixerBoard->mImageMuteDisabled)); this->UpdateMute(); ctrlPos.y += MUTE_SOLO_HEIGHT; mToggleButton_Solo = new AButton(this, ID_TOGGLEBUTTON_SOLO, ctrlPos, ctrlSize, *(mMixerBoard->mImageSoloUp), *(mMixerBoard->mImageSoloOver), *(mMixerBoard->mImageSoloDown), *(mMixerBoard->mImageSoloDisabled), true); // toggle button this->UpdateSolo(); #if wxUSE_TOOLTIPS mStaticText_TrackName->SetToolTip(mLeftTrack->GetName()); mToggleButton_Mute->SetToolTip(_T("Mute")); mToggleButton_Solo->SetToolTip(_T("Solo")); mMeter->SetToolTip(_T("Signal Level Meter")); #endif // wxUSE_TOOLTIPS #ifdef __WXMAC__ wxSizeEvent dummyEvent; this->OnSize(dummyEvent); UpdateGain(); #endif }