Update of /cvsroot/audacity/audacity-src/src In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv12105
Modified Files: MixerBoard.cpp MixerBoard.h Log Message: Add a pre/post fade checkbox for the meter in each track strip. Index: MixerBoard.cpp =================================================================== RCS file: /cvsroot/audacity/audacity-src/src/MixerBoard.cpp,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- MixerBoard.cpp 10 Sep 2009 06:28:25 -0000 1.22 +++ MixerBoard.cpp 15 Sep 2009 03:23:18 -0000 1.23 @@ -86,23 +86,25 @@ enum { ID_BITMAPBUTTON_MUSICAL_INSTRUMENT = 13000, - ID_TOGGLEBUTTON_MUTE, - ID_TOGGLEBUTTON_SOLO, ID_SLIDER_PAN, ID_SLIDER_GAIN, + ID_TOGGLEBUTTON_MUTE, + ID_TOGGLEBUTTON_SOLO, + ID_CHECKBOX_PREFADE, }; BEGIN_EVENT_TABLE(MixerTrackCluster, wxPanel) EVT_CHAR(MixerTrackCluster::OnKeyEvent) EVT_MOUSE_EVENTS(MixerTrackCluster::OnMouseEvent) + EVT_PAINT(MixerTrackCluster::OnPaint) EVT_BUTTON(ID_BITMAPBUTTON_MUSICAL_INSTRUMENT, MixerTrackCluster::OnButton_MusicalInstrument) - EVT_COMMAND(ID_TOGGLEBUTTON_MUTE, wxEVT_COMMAND_BUTTON_CLICKED, MixerTrackCluster::OnButton_Mute) - EVT_COMMAND(ID_TOGGLEBUTTON_SOLO, wxEVT_COMMAND_BUTTON_CLICKED, MixerTrackCluster::OnButton_Solo) - EVT_PAINT(MixerTrackCluster::OnPaint) EVT_SLIDER(ID_SLIDER_PAN, MixerTrackCluster::OnSlider_Pan) EVT_SLIDER(ID_SLIDER_GAIN, MixerTrackCluster::OnSlider_Gain) //v EVT_COMMAND_SCROLL(ID_SLIDER_GAIN, MixerTrackCluster::OnSliderScroll_Gain) + EVT_COMMAND(ID_TOGGLEBUTTON_MUTE, wxEVT_COMMAND_BUTTON_CLICKED, MixerTrackCluster::OnButton_Mute) + EVT_COMMAND(ID_TOGGLEBUTTON_SOLO, wxEVT_COMMAND_BUTTON_CLICKED, MixerTrackCluster::OnButton_Solo) + EVT_CHECKBOX(ID_CHECKBOX_PREFADE, MixerTrackCluster::OnCheckBox_PreFade) END_EVENT_TABLE() MixerTrackCluster::MixerTrackCluster(wxWindow* parent, @@ -211,11 +213,19 @@ // meter ctrlPos.y += (bSoloNone ? 0 : MUTE_SOLO_HEIGHT) + kDoubleInset; + mCheckBox_PreFade = + new wxCheckBox(this, ID_CHECKBOX_PREFADE, + _("Pre"), ctrlPos, wxDefaultSize); + mCheckBox_PreFade->SetValue(false); + + ctrlSize = mCheckBox_PreFade->GetSize(); + ctrlPos.y += ctrlSize.GetHeight(); const int nMeterHeight = nGainSliderHeight - (MUSICAL_INSTRUMENT_HEIGHT_AND_WIDTH + kDoubleInset) - (PAN_HEIGHT + kDoubleInset) - - (MUTE_SOLO_HEIGHT + (bSoloNone ? 0 : MUTE_SOLO_HEIGHT) + kDoubleInset); + (MUTE_SOLO_HEIGHT + (bSoloNone ? 0 : MUTE_SOLO_HEIGHT) + kDoubleInset) - + ctrlSize.GetHeight(); ctrlSize.Set(kRightSideStackWidth, nMeterHeight); mMeter = new Meter(this, -1, // wxWindow* parent, wxWindowID id, @@ -227,6 +237,7 @@ mStaticText_TrackName->SetToolTip(mLeftTrack->GetName()); mToggleButton_Mute->SetToolTip(_("Mute")); mToggleButton_Solo->SetToolTip(_("Solo")); + mCheckBox_PreFade->SetToolTip(_("Show meter pre/post fade.")); mMeter->SetToolTip(_("Signal Level Meter")); #endif // wxUSE_TOOLTIPS @@ -260,10 +271,12 @@ mToggleButton_Solo->Show(!bSoloNone); + wxSize ctrlSize = mCheckBox_PreFade->GetSize(); const int nRequiredHeightAboveMeter = MUSICAL_INSTRUMENT_HEIGHT_AND_WIDTH + kDoubleInset + PAN_HEIGHT + kDoubleInset + - MUTE_SOLO_HEIGHT + (bSoloNone ? 0 : MUTE_SOLO_HEIGHT) + kDoubleInset; + MUTE_SOLO_HEIGHT + (bSoloNone ? 0 : MUTE_SOLO_HEIGHT) + kDoubleInset + + ctrlSize.GetHeight(); const int nMeterY = kDoubleInset + // margin at top TRACK_NAME_HEIGHT + kDoubleInset + @@ -389,7 +402,7 @@ else { // Mono: Start with raw values same as left. - // To be modified by bWantPostFadeValues and channel pan/gain. + // To be modified by pre/post fade and channel pan/gain. maxRight[i] = maxLeft[i]; rmsRight[i] = rmsLeft[i]; } @@ -398,8 +411,8 @@ i++; } - bool bWantPostFadeValues = true; //vvv Turn this into a pref, default true. - if (bSuccess && bWantPostFadeValues) + // If we want post fade values, modify values by gain factor. + if (bSuccess && !mCheckBox_PreFade->GetValue()) { for (i = 0; i < nFramesPerBuffer; i++) { @@ -525,6 +538,31 @@ this->HandleSelect(bShiftDown); } +void MixerTrackCluster::OnSlider_Gain(wxCommandEvent& event) +{ + this->HandleSliderGain(); +} + +//v void MixerTrackCluster::OnSliderScroll_Gain(wxScrollEvent& event) +//{ + //int sliderValue = (int)(mSlider_Gain->Get()); //v mSlider_Gain->GetValue(); + //#ifdef __WXMSW__ + // // Negate because wxSlider on Windows has min at top, max at bottom. + // // mSlider_Gain->GetValue() is in [-6,36]. wxSlider has min at top, so this is [-36dB,6dB]. + // sliderValue = -sliderValue; + //#endif + //wxString str = _("Gain: "); + //if (sliderValue > 0) + // str += "+"; + //str += wxString::Format("%d dB", sliderValue); + //mSlider_Gain->SetToolTip(str); +//} + +void MixerTrackCluster::OnSlider_Pan(wxCommandEvent& event) +{ + this->HandleSliderPan(); +} + void MixerTrackCluster::OnButton_Mute(wxCommandEvent& event) { mProject->HandleTrackMute(mLeftTrack, mToggleButton_Mute->WasShiftDown()); @@ -562,31 +600,10 @@ mProject->RefreshTPTrack(mLeftTrack); } -void MixerTrackCluster::OnSlider_Gain(wxCommandEvent& event) -{ - this->HandleSliderGain(); -} - -void MixerTrackCluster::OnSlider_Pan(wxCommandEvent& event) +void MixerTrackCluster::OnCheckBox_PreFade(wxCommandEvent& event) { - this->HandleSliderPan(); } -//v void MixerTrackCluster::OnSliderScroll_Gain(wxScrollEvent& event) -//{ - //int sliderValue = (int)(mSlider_Gain->Get()); //v mSlider_Gain->GetValue(); - //#ifdef __WXMSW__ - // // Negate because wxSlider on Windows has min at top, max at bottom. - // // mSlider_Gain->GetValue() is in [-6,36]. wxSlider has min at top, so this is [-36dB,6dB]. - // sliderValue = -sliderValue; - //#endif - //wxString str = _("Gain: "); - //if (sliderValue > 0) - // str += "+"; - //str += wxString::Format("%d dB", sliderValue); - //mSlider_Gain->SetToolTip(str); -//} - // class MusicalInstrument Index: MixerBoard.h =================================================================== RCS file: /cvsroot/audacity/audacity-src/src/MixerBoard.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- MixerBoard.h 10 Sep 2009 06:28:25 -0000 1.12 +++ MixerBoard.h 15 Sep 2009 03:23:18 -0000 1.13 @@ -99,10 +99,11 @@ void OnPaint(wxPaintEvent& evt); void OnButton_MusicalInstrument(wxCommandEvent& event); - void OnButton_Mute(wxCommandEvent& event); - void OnButton_Solo(wxCommandEvent& event); void OnSlider_Gain(wxCommandEvent& event); void OnSlider_Pan(wxCommandEvent& event); + void OnButton_Mute(wxCommandEvent& event); + void OnButton_Solo(wxCommandEvent& event); + void OnCheckBox_PreFade(wxCommandEvent& event); //v void OnSliderScroll_Gain(wxScrollEvent& event); public: @@ -120,6 +121,8 @@ AButton* mToggleButton_Solo; MixerTrackSlider* mSlider_Pan; MixerTrackSlider* mSlider_Gain; + + wxCheckBox* mCheckBox_PreFade; Meter* mMeter; public: ------------------------------------------------------------------------------ Come build with us! The BlackBerry® Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9-12, 2009. Register now! http://p.sf.net/sfu/devconf _______________________________________________ Audacity-cvs mailing list Audacity-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/audacity-cvs