Audacity 3.2.0
Classes | Namespaces | Functions | Variables
SpectrumView.cpp File Reference
#include "SpectrumView.h"
#include "SpectralDataManager.h"
#include "SpectrumCache.h"
#include "Sequence.h"
#include "Spectrum.h"
#include "ClipParameters.h"
#include "SpectrumVRulerControls.h"
#include "WaveChannelViewConstants.h"
#include "../../../ui/BrushHandle.h"
#include "AColor.h"
#include "Prefs.h"
#include "NumberScale.h"
#include "../../../../TrackArt.h"
#include "../../../../TrackArtist.h"
#include "../../../../TrackPanelDrawingContext.h"
#include "ViewInfo.h"
#include "WaveClip.h"
#include "WaveTrack.h"
#include "../../../../prefs/SpectrogramSettings.h"
#include "WaveTrackLocation.h"
#include <wx/dcmemory.h>
#include <wx/graphics.h>
#include "float_cast.h"
#include "WaveTrackControls.h"
#include "AudioIOBase.h"
#include "../../../../MenuCreator.h"
#include "ProjectHistory.h"
#include "../../../../RefreshCode.h"
#include "../../../../prefs/PrefsDialog.h"
#include "../../../../prefs/SpectrumPrefs.h"
#include "AudacityMessageBox.h"
#include "../../../../widgets/PopupMenuTable.h"
Include dependency graph for SpectrumView.cpp:

Go to the source code of this file.

Classes

class  SpectrumView::SpectralDataSaver
 
struct  anonymous_namespace{SpectrumView.cpp}::SpectrogramSettingsHandler
 

Namespaces

namespace  anonymous_namespace{SpectrumView.cpp}
 

Functions

static UIHandlePtr BrushHandleHitTest (std::weak_ptr< BrushHandle > &holder, const TrackPanelMouseState &st, const AudacityProject *pProject, const std::shared_ptr< SpectrumView > &pChannelView, const std::shared_ptr< SpectralData > &mpData)
 
static float anonymous_namespace{SpectrumView.cpp}::findValue (const float *spectrum, float bin0, float bin1, unsigned nBins, bool autocorrelation, int gain, int range)
 
AColor::ColorGradientChoice anonymous_namespace{SpectrumView.cpp}::ChooseColorSet (float bin0, float bin1, float selBinLo, float selBinCenter, float selBinHi, int dashCount, bool isSpectral)
 
std::pair< sampleCount, sampleCountanonymous_namespace{SpectrumView.cpp}::GetSelectedSampleIndices (const SelectedRegion &selectedRegion, const WaveChannelInterval &clip, bool trackIsSelected)
 
void anonymous_namespace{SpectrumView.cpp}::DrawClipSpectrum (TrackPanelDrawingContext &context, const WaveTrack &track, const WaveChannelInterval &clip, const wxRect &rect, const std::shared_ptr< SpectralData > &mpSpectralData, bool selected)
 
static bool ShouldCaptureEvent (wxKeyEvent &event, SpectralData *pData)
 

Variables

static WaveChannelSubView::Type sType
 
static WaveChannelSubViewType::RegisteredType reg { sType }
 
static const WaveChannelSubViews::RegisteredFactory key
 
PopupMenuTable::AttachedItem anonymous_namespace{SpectrumView.cpp}::sAttachment
 

Function Documentation

◆ BrushHandleHitTest()

static UIHandlePtr BrushHandleHitTest ( std::weak_ptr< BrushHandle > &  holder,
const TrackPanelMouseState st,
const AudacityProject pProject,
const std::shared_ptr< SpectrumView > &  pChannelView,
const std::shared_ptr< SpectralData > &  mpData 
)
static

Definition at line 123 of file SpectrumView.cpp.

128{
129 const auto &viewInfo = ViewInfo::Get( *pProject );
130 auto &projectSettings = ProjectSettings::Get( *pProject );
131 auto result = std::make_shared<BrushHandle>(
132 std::make_shared<SpectrumView::SpectralDataSaver>(*pChannelView),
133 pChannelView, TrackList::Get(*pProject),
134 st, viewInfo, mpData, projectSettings);
135
136 result = AssignUIHandlePtr(holder, result);
137
138 //Make sure we are within the selected track
139 auto pTrack = pChannelView->FindTrack();
140 if (!pTrack->GetSelected())
141 {
142 return result;
143 }
144
145 return result;
146}
std::shared_ptr< Subclass > AssignUIHandlePtr(std::weak_ptr< Subclass > &holder, const std::shared_ptr< Subclass > &pNew)
Definition: UIHandle.h:159
static ProjectSettings & Get(AudacityProject &project)
static TrackList & Get(AudacityProject &project)
Definition: Track.cpp:347
static ViewInfo & Get(AudacityProject &project)
Definition: ViewInfo.cpp:235

References AssignUIHandlePtr(), ViewInfo::Get(), TrackList::Get(), and ProjectSettings::Get().

Referenced by SpectrumView::DetailedHitTest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ShouldCaptureEvent()

static bool ShouldCaptureEvent ( wxKeyEvent &  event,
SpectralData pData 
)
static

Definition at line 1060 of file SpectrumView.cpp.

1061{
1062 const auto keyCode = event.GetKeyCode();
1063 return
1064 (keyCode == WXK_BACK || keyCode == WXK_DELETE ||
1065 keyCode == WXK_NUMPAD_DELETE)
1066 && pData && !pData->dataHistory.empty();
1067}
std::vector< HopsAndBinsMap > dataHistory
Definition: SpectrumView.h:44

References SpectralData::dataHistory.

Referenced by SpectrumView::CaptureKey(), SpectrumView::Char(), and SpectrumView::KeyDown().

Here is the caller graph for this function:

Variable Documentation

◆ key

Initial value:
{
[](WaveChannelView &view){
return std::make_shared<SpectrumView>(view);
}
}

Definition at line 918 of file SpectrumView.cpp.

◆ reg

Definition at line 51 of file SpectrumView.cpp.

◆ sType

Initial value:
{
{ wxT("Spectrogram"), XXO("&Spectrogram") }
}
wxT("CloseDown"))
XXO("&Cut/Copy/Paste Toolbar")

Definition at line 46 of file SpectrumView.cpp.

Referenced by SpectrumView::SubViewType().