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&reg; 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&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
Audacity-cvs mailing list
Audacity-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/audacity-cvs

Reply via email to