Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions src/AdornedRulerPanel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@
#include "widgets/AButton.h"
#include "widgets/AudacityMessageBox.h"
#include "widgets/Grabber.h"
#include "widgets/LinearUpdater.h"
#include "widgets/LogarithmicUpdater.h"
#include "widgets/wxWidgetsWindowPlacement.h"

#include <wx/dcclient.h>
Expand Down Expand Up @@ -1280,7 +1282,7 @@ AdornedRulerPanel::AdornedRulerPanel(AudacityProject* project,

mOuter = GetClientRect();

mRuler.SetUseZoomInfo(mLeftOffset, mViewInfo);
mRuler.SetUpdater( std::make_unique<LinearUpdater>( mRuler, mViewInfo ), mLeftOffset );
mRuler.SetLabelEdges( false );
mRuler.SetFormat( Ruler::TimeFormat );

Expand Down Expand Up @@ -2577,7 +2579,7 @@ int AdornedRulerPanel::GetRulerHeight(bool showScrubBar)
void AdornedRulerPanel::SetLeftOffset(int offset)
{
mLeftOffset = offset;
mRuler.SetUseZoomInfo(offset, mViewInfo);
mRuler.SetUpdater( std::make_unique<LinearUpdater>( mRuler, mViewInfo ), offset );
}

// Draws the scrubbing/seeking indicator.
Expand Down
1 change: 0 additions & 1 deletion src/AudacityHeaders.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@
#include "UndoManager.h"
#include "WaveTrack.h"
#include "widgets/ASlider.h"
#include "widgets/Ruler.h"

// PRL: These lines allow you to remove Project.h above.
// They must be included before the definition of macro NEW below.
Expand Down
8 changes: 8 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1013,6 +1013,8 @@ list( APPEND SOURCES
widgets/BackedPanel.h
widgets/BasicMenu.cpp
widgets/BasicMenu.h
widgets/CustomUpdater.cpp
widgets/CustomUpdater.h
widgets/ErrorDialog.cpp
widgets/ErrorDialog.h
widgets/ExpandingToolBar.cpp
Expand Down Expand Up @@ -1045,6 +1047,10 @@ list( APPEND SOURCES
widgets/ImageRoll.h
widgets/KeyView.cpp
widgets/KeyView.h
widgets/LinearUpdater.cpp
widgets/LinearUpdater.h
widgets/LogarithmicUpdater.cpp
widgets/LogarithmicUpdater.h
widgets/MeterPanel.cpp
widgets/MeterPanel.h
widgets/MeterPanelBase.cpp
Expand All @@ -1070,6 +1076,8 @@ list( APPEND SOURCES
>
widgets/UnwritableLocationErrorDialog.cpp
widgets/UnwritableLocationErrorDialog.h
widgets/Updater.cpp
widgets/Updater.h
widgets/VetoDialogHook.h
widgets/Warning.cpp
widgets/Warning.h
Expand Down
12 changes: 7 additions & 5 deletions src/FreqWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ the mouse around.
#include "./widgets/HelpSystem.h"
#include "widgets/AudacityMessageBox.h"
#include "widgets/Ruler.h"
#include "widgets/LinearUpdater.h"
#include "widgets/LogarithmicUpdater.h"
#include "widgets/VetoDialogHook.h"

#if wxUSE_ACCESSIBILITY
Expand Down Expand Up @@ -674,10 +676,10 @@ void FrequencyPlotDialog::DrawPlot()
if (!mData || mDataLen < mWindowSize || mAnalyst->GetProcessedSize() == 0) {
wxMemoryDC memDC;

vRuler->ruler.SetLog(false);
vRuler->ruler.SetUpdater(std::make_unique<LinearUpdater>(vRuler->ruler, nullptr));
vRuler->ruler.SetRange(0.0, -dBRange);

hRuler->ruler.SetLog(false);
hRuler->ruler.SetUpdater(std::make_unique<LinearUpdater>(hRuler->ruler, nullptr));
hRuler->ruler.SetRange(0, 1);

DrawBackground(memDC);
Expand Down Expand Up @@ -752,19 +754,19 @@ void FrequencyPlotDialog::DrawPlot()
if (mLogAxis)
{
xStep = pow(2.0f, (log(xRatio) / log(2.0f)) / width);
hRuler->ruler.SetLog(true);
hRuler->ruler.SetUpdater(std::make_unique<LogarithmicUpdater>(hRuler->ruler, nullptr));
}
else
{
xStep = (xMax - xMin) / width;
hRuler->ruler.SetLog(false);
hRuler->ruler.SetUpdater(std::make_unique<LinearUpdater>(hRuler->ruler, nullptr));
}
hRuler->ruler.SetUnits(XO("Hz"));
} else {
xMin = 0;
xMax = mAnalyst->GetProcessedSize() / mRate;
xStep = (xMax - xMin) / width;
hRuler->ruler.SetLog(false);
hRuler->ruler.SetUpdater(std::make_unique<LinearUpdater>(hRuler->ruler, nullptr));
/* i18n-hint: short form of 'seconds'.*/
hRuler->ruler.SetUnits(XO("s"));
}
Expand Down
5 changes: 3 additions & 2 deletions src/TimeTrack.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include <wx/dc.h>
#include <wx/intl.h>
#include "widgets/Ruler.h"
#include "widgets/LinearUpdater.h"
#include "Envelope.h"
#include "Mix.h"
#include "Project.h"
Expand Down Expand Up @@ -74,7 +75,7 @@ void TimeTrack::CleanState()
SetName(GetDefaultName());

mRuler = std::make_unique<Ruler>();
mRuler->SetUseZoomInfo(0, mZoomInfo);
mRuler->SetUpdater(std::make_unique<LinearUpdater>(*(mRuler.get()), mZoomInfo), 0);
mRuler->SetLabelEdges(false);
mRuler->SetFormat(Ruler::TimeFormat);
}
Expand Down Expand Up @@ -102,7 +103,7 @@ TimeTrack::TimeTrack(const TimeTrack &orig, ProtectedCreationArg &&a,

///@TODO: Give Ruler:: a copy-constructor instead of this?
mRuler = std::make_unique<Ruler>();
mRuler->SetUseZoomInfo(0, mZoomInfo);
mRuler->SetUpdater(std::make_unique<LinearUpdater>(*(mRuler.get()), mZoomInfo), 0);
mRuler->SetLabelEdges(false);
mRuler->SetFormat(Ruler::TimeFormat);
}
Expand Down
10 changes: 6 additions & 4 deletions src/effects/Equalization.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,8 @@
#include "../WaveClip.h"
#include "ViewInfo.h"
#include "../WaveTrack.h"
#include "../widgets/LinearUpdater.h"
#include "../widgets/LogarithmicUpdater.h"
#include "../widgets/Ruler.h"
#include "../widgets/AudacityTextEntryDialog.h"
#include "XMLFileReader.h"
Expand Down Expand Up @@ -2288,7 +2290,7 @@ void EffectEqualization::UpdateDraw()
{
EnvLogToLin();
mEnvelope = mLinEnvelope.get();
mFreqRuler->ruler.SetLog(false);
mFreqRuler->ruler.SetUpdater(std::make_unique<LinearUpdater>(mFreqRuler->ruler, nullptr));
mFreqRuler->ruler.SetRange(0, mHiFreq);
}

Expand Down Expand Up @@ -2320,7 +2322,7 @@ void EffectEqualization::UpdateGraphic()

EnvLinToLog();
mEnvelope = mLogEnvelope.get();
mFreqRuler->ruler.SetLog(true);
mFreqRuler->ruler.SetUpdater(std::make_unique<LogarithmicUpdater>(mFreqRuler->ruler, nullptr));
mFreqRuler->ruler.SetRange(mLoFreq, mHiFreq);
}

Expand Down Expand Up @@ -2909,15 +2911,15 @@ void EffectEqualization::OnLinFreq(wxCommandEvent & WXUNUSED(event))
mLin = mLinFreq->IsChecked();
if(IsLinear()) //going from log to lin freq scale
{
mFreqRuler->ruler.SetLog(false);
mFreqRuler->ruler.SetUpdater(std::make_unique<LinearUpdater>(mFreqRuler->ruler, nullptr));
mFreqRuler->ruler.SetRange(0, mHiFreq);
EnvLogToLin();
mEnvelope = mLinEnvelope.get();
mLin = true;
}
else //going from lin to log freq scale
{
mFreqRuler->ruler.SetLog(true);
mFreqRuler->ruler.SetUpdater(std::make_unique<LogarithmicUpdater>(mFreqRuler->ruler, nullptr));
mFreqRuler->ruler.SetRange(mLoFreq, mHiFreq);
EnvLinToLog();
mEnvelope = mLogEnvelope.get();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ Paul Licameli split from WaveTrackVRulerControls.cpp
#include "../../../../WaveTrack.h"
#include "../../../../prefs/SpectrogramSettings.h"
#include "../../../../widgets/Ruler.h"
#include "../../../../widgets/LinearUpdater.h"
#include "../../../../widgets/LogarithmicUpdater.h"

SpectrumVRulerControls::~SpectrumVRulerControls() = default;

Expand Down Expand Up @@ -167,7 +169,7 @@ void SpectrumVRulerControls::DoUpdateVRuler(
vruler->SetRange((int)(maxFreq), (int)(minFreq));
vruler->SetUnits({});
}
vruler->SetLog(false);
vruler->SetUpdater(std::make_unique<LinearUpdater>(*vruler, nullptr));
}
break;
case SpectrogramSettings::stLogarithmic:
Expand All @@ -189,7 +191,7 @@ void SpectrumVRulerControls::DoUpdateVRuler(
vruler->SetLabelEdges(true);
vruler->SetRange(maxFreq, minFreq);
vruler->SetUnits({});
vruler->SetLog(true);
vruler->SetUpdater(std::make_unique<LogarithmicUpdater>(*vruler, nullptr));
NumberScale scale(
wt->GetSpectrogramSettings().GetScale( minFreq, maxFreq )
.Reversal() );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ Paul Licameli split from WaveTrackVRulerControls.cpp
#include "../../../../WaveTrack.h"
#include "../../../../prefs/WaveformSettings.h"
#include "../../../../widgets/Ruler.h"
#include "../../../../widgets/LinearUpdater.h"

WaveformVRulerControls::~WaveformVRulerControls() = default;

Expand Down Expand Up @@ -222,7 +223,7 @@ void WaveformVRulerControls::DoUpdateVRuler(
vruler->SetFormat(Ruler::RealFormat);
vruler->SetUnits({});
vruler->SetLabelEdges(false);
vruler->SetLog(false);
vruler->SetUpdater(std::make_unique<LinearUpdater>(*vruler, nullptr));
}
else {
wxASSERT(scaleType == WaveformSettings::stLogarithmic);
Expand Down Expand Up @@ -330,7 +331,7 @@ void WaveformVRulerControls::DoUpdateVRuler(
#endif
vruler->SetFormat(Ruler::RealLogFormat);
vruler->SetLabelEdges(true);
vruler->SetLog(false);
vruler->SetUpdater(std::make_unique<LinearUpdater>(*vruler, nullptr));
}
vruler->GetMaxSize( &wt->vrulerSize.first, &wt->vrulerSize.second );
}
7 changes: 6 additions & 1 deletion src/tracks/timetrack/ui/TimeTrackVRulerControls.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ Paul Licameli split from TrackPanel.cpp
#include "../../../TrackPanelMouseEvent.h"
#include "../../../UIHandle.h"
#include "../../../widgets/Ruler.h"
#include "../../../widgets/LinearUpdater.h"
#include "../../../widgets/LogarithmicUpdater.h"

TimeTrackVRulerControls::~TimeTrackVRulerControls()
{
Expand Down Expand Up @@ -120,7 +122,10 @@ void TimeTrackVRulerControls::UpdateRuler( const wxRect &rect )
vruler->SetFormat((tt->GetDisplayLog()) ? Ruler::RealLogFormat : Ruler::RealFormat);
vruler->SetUnits({});
vruler->SetLabelEdges(false);
vruler->SetLog(tt->GetDisplayLog());
if (tt->GetDisplayLog())
vruler->SetUpdater(std::make_unique<LogarithmicUpdater>(*vruler, nullptr));
else
vruler->SetUpdater(std::make_unique<LinearUpdater>(*vruler, nullptr));

vruler->GetMaxSize( &tt->vrulerSize.first, &tt->vrulerSize.second );
}
32 changes: 32 additions & 0 deletions src/widgets/CustomUpdater.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/**********************************************************************

Audacity: A Digital Audio Editor

CustomUpdater.cpp

Dominic Mazzoni

**********************************************************************/


#include "CustomUpdater.h"

void CustomUpdater::Update(
wxDC& dc, const Envelope* envelope, UpdateOutputs& allOutputs) const
{
const int mLength = mRuler.mLength;
const Ruler::Fonts& mFonts = *mRuler.mpFonts;

TickOutputs majorOutputs{
allOutputs.majorLabels, allOutputs.bits, allOutputs.box };

// SET PARAMETER IN MCUSTOM CASE
// Works only with major labels

int numLabel = allOutputs.majorLabels.size();

for (int i = 0; (i < numLabel) && (i <= mLength); ++i)
TickCustom(dc, i, mFonts.major, majorOutputs);

BoxAdjust(allOutputs);
}
27 changes: 27 additions & 0 deletions src/widgets/CustomUpdater.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/**********************************************************************

Audacity: A Digital Audio Editor

CustomUpdater.h

Dominic Mazzoni

**********************************************************************/

#ifndef __AUDACITY_CUSTOM_UPDATER__
#define __AUDACITY_CUSTOM_UPDATER__

#include "Updater.h"

struct CustomUpdater : public Updater {
explicit CustomUpdater(const Ruler& ruler, const ZoomInfo* z)
: Updater{ ruler, NULL }
{}

void Update(
wxDC& dc, const Envelope* envelope,
UpdateOutputs& allOutputs
) const override;
};

#endif
Loading