Audacity 3.2.0
Typedefs | Functions | Variables
anonymous_namespace{WaveTrackControls.cpp} Namespace Reference

Typedefs

using ValueFinder = std::function< int(WaveTrack &) >
 

Functions

template<typename Table >
PopupMenuTableEntry::InitFunction initFn (const ValueFinder &findValue)
 
void SliderDrawFunction (LWSlider *(*Selector)(const wxRect &sliderRect, const WaveTrack *t, bool captured, wxWindow *), wxDC *dc, const wxRect &rect, const Track *pTrack, wxWindow *pParent, bool captured, bool highlight)
 
void PanSliderDrawFunction (TrackPanelDrawingContext &context, const wxRect &rect, const Track *pTrack)
 
void GainSliderDrawFunction (TrackPanelDrawingContext &context, const wxRect &rect, const Track *pTrack)
 
void StatusDrawFunction (const TranslatableString &string, wxDC *dc, const wxRect &rect)
 
void Status1DrawFunction (TrackPanelDrawingContext &context, const wxRect &rect, const Track *pTrack)
 
void Status2DrawFunction (TrackPanelDrawingContext &context, const wxRect &rect, const Track *pTrack)
 

Variables

std::unique_ptr< LWSlidergGainCaptured
 
std::unique_ptr< LWSlidergPanCaptured
 
std::unique_ptr< LWSlidergGain
 
std::unique_ptr< LWSlidergPan
 

Typedef Documentation

◆ ValueFinder

using anonymous_namespace{WaveTrackControls.cpp}::ValueFinder = typedef std::function< int( WaveTrack& ) >

Definition at line 142 of file WaveTrackControls.cpp.

Function Documentation

◆ GainSliderDrawFunction()

void anonymous_namespace{WaveTrackControls.cpp}::GainSliderDrawFunction ( TrackPanelDrawingContext context,
const wxRect &  rect,
const Track pTrack 
)

Definition at line 1006 of file WaveTrackControls.cpp.

1009{
1010 auto target = dynamic_cast<GainSliderHandle*>( context.target.get() );
1011 auto dc = &context.dc;
1012 bool hit = target && target->GetTrack().get() == pTrack;
1013 if( hit )
1014 hit=hit;
1015 bool captured = hit && target->IsDragging();
1016
1017 const auto artist = TrackArtist::Get( context );
1018 auto pParent = FindProjectFrame( artist->parent->GetProject() );
1019
1021 &WaveTrackControls::GainSlider, dc, rect, pTrack,
1022 pParent, captured, hit);
1023}
wxFrame * FindProjectFrame(AudacityProject *project)
Get a pointer to the window associated with a project, or null if the given pointer is null,...
static TrackArtist * Get(TrackPanelDrawingContext &)
Definition: TrackArtist.cpp:69
static LWSlider * GainSlider(CellularPanel &panel, const WaveTrack &wt)
void SliderDrawFunction(LWSlider *(*Selector)(const wxRect &sliderRect, const WaveTrack *t, bool captured, wxWindow *), wxDC *dc, const wxRect &rect, const Track *pTrack, wxWindow *pParent, bool captured, bool highlight)

References TrackPanelDrawingContext::dc, FindProjectFrame(), WaveTrackControls::GainSlider(), TrackArtist::Get(), SliderDrawFunction(), and TrackPanelDrawingContext::target.

Referenced by WaveTrackTCPLines::WaveTrackTCPLines().

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

◆ initFn()

template<typename Table >
PopupMenuTableEntry::InitFunction anonymous_namespace{WaveTrackControls.cpp}::initFn ( const ValueFinder findValue)

Definition at line 147 of file WaveTrackControls.cpp.

148{
149 return [findValue]( PopupMenuHandler &handler, wxMenu &menu, int id ){
150 auto pData = static_cast<Table&>( handler ).mpData;
151 const auto pTrack = static_cast<WaveTrack*>(pData->pTrack);
152 auto &project = pData->project;
153 bool unsafe = ProjectAudioIO::Get( project ).IsAudioActive();
154
155 menu.Check( id, id == findValue( *pTrack ) );
156 menu.Enable( id, !unsafe );
157 };
158};
const auto project
int id
bool IsAudioActive() const
static ProjectAudioIO & Get(AudacityProject &project)
A Track that contains audio waveform data.
Definition: WaveTrack.h:222
static float findValue(const float *spectrum, float bin0, float bin1, unsigned nBins, bool autocorrelation, int gain, int range)

References anonymous_namespace{SpectrumView.cpp}::findValue(), ProjectAudioIO::Get(), cloud::audiocom::anonymous_namespace{AuthorizationHandler.cpp}::handler, id, ProjectAudioIO::IsAudioActive(), and project.

Referenced by for().

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

◆ PanSliderDrawFunction()

void anonymous_namespace{WaveTrackControls.cpp}::PanSliderDrawFunction ( TrackPanelDrawingContext context,
const wxRect &  rect,
const Track pTrack 
)

Definition at line 989 of file WaveTrackControls.cpp.

992{
993 auto target = dynamic_cast<PanSliderHandle*>( context.target.get() );
994 auto dc = &context.dc;
995 bool hit = target && target->GetTrack().get() == pTrack;
996 bool captured = hit && target->IsDragging();
997
998 const auto artist = TrackArtist::Get( context );
999 auto pParent = FindProjectFrame( artist->parent->GetProject() );
1000
1002 &WaveTrackControls::PanSlider, dc, rect, pTrack,
1003 pParent, captured, hit);
1004}
static LWSlider * PanSlider(CellularPanel &panel, const WaveTrack &wt)

References TrackPanelDrawingContext::dc, FindProjectFrame(), TrackArtist::Get(), WaveTrackControls::PanSlider(), SliderDrawFunction(), and TrackPanelDrawingContext::target.

Referenced by WaveTrackTCPLines::WaveTrackTCPLines().

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

◆ SliderDrawFunction()

void anonymous_namespace{WaveTrackControls.cpp}::SliderDrawFunction ( LWSlider *(*)(const wxRect &sliderRect, const WaveTrack *t, bool captured, wxWindow *)  Selector,
wxDC *  dc,
const wxRect &  rect,
const Track pTrack,
wxWindow *  pParent,
bool  captured,
bool  highlight 
)

Definition at line 976 of file WaveTrackControls.cpp.

982{
983 wxRect sliderRect = rect;
984 CommonTrackInfo::GetSliderHorizontalBounds( rect.GetTopLeft(), sliderRect );
985 auto wt = static_cast<const WaveTrack*>( pTrack );
986 Selector( sliderRect, wt, captured, pParent )->OnPaint(*dc, highlight);
987}
void OnPaint(wxDC &dc, bool highlighted)
Definition: ASlider.cpp:721
AUDACITY_DLL_API void GetSliderHorizontalBounds(const wxPoint &topleft, wxRect &dest)

References CommonTrackInfo::GetSliderHorizontalBounds().

Referenced by GainSliderDrawFunction(), and PanSliderDrawFunction().

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

◆ Status1DrawFunction()

void anonymous_namespace{WaveTrackControls.cpp}::Status1DrawFunction ( TrackPanelDrawingContext context,
const wxRect &  rect,
const Track pTrack 
)

Returns the string to be displayed in the track label indicating whether the track is mono, left, right, or stereo and what sample rate it's using.

Definition at line 1032 of file WaveTrackControls.cpp.

1035{
1036 auto dc = &context.dc;
1037 auto wt = static_cast<const WaveTrack*>(pTrack);
1038
1042 auto rate = wt ? wt->GetRate() : 44100.0;
1044 if (!pTrack || TrackList::NChannels(*pTrack) > 1)
1045 // TODO: more-than-two-channels-message
1046 // more appropriate strings
1047 s = XO("Stereo, %dHz");
1048 else
1049 s = XO("Mono, %dHz");
1050 s.Format( (int) (rate + 0.5) );
1051
1052 StatusDrawFunction( s, dc, rect );
1053}
XO("Cut/Copy/Paste")
size_t NChannels() const
Definition: Track.cpp:960
Holds a msgid for the translation catalog; may also bind format arguments.
TranslatableString & Format(Args &&...args) &
Capture variadic format arguments (by copy) when there is no plural.
double GetRate() const override
Definition: WaveTrack.cpp:1085
void StatusDrawFunction(const TranslatableString &string, wxDC *dc, const wxRect &rect)

References TrackPanelDrawingContext::dc, TranslatableString::Format(), WaveTrack::GetRate(), TrackList::NChannels(), StatusDrawFunction(), and XO().

Referenced by WaveTrackTCPLines::WaveTrackTCPLines().

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

◆ Status2DrawFunction()

void anonymous_namespace{WaveTrackControls.cpp}::Status2DrawFunction ( TrackPanelDrawingContext context,
const wxRect &  rect,
const Track pTrack 
)

Definition at line 1055 of file WaveTrackControls.cpp.

1058{
1059 auto dc = &context.dc;
1060 auto wt = static_cast<const WaveTrack*>(pTrack);
1061 auto format = wt ? wt->GetSampleFormat() : floatSample;
1062 auto s = GetSampleFormatStr(format);
1063 StatusDrawFunction( s, dc, rect );
1064}
TranslatableString GetSampleFormatStr(sampleFormat format)
constexpr sampleFormat floatSample
Definition: SampleFormat.h:45

References TrackPanelDrawingContext::dc, floatSample, anonymous_namespace{ExportPCM.cpp}::format, GetSampleFormatStr(), and StatusDrawFunction().

Referenced by WaveTrackTCPLines::WaveTrackTCPLines().

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

◆ StatusDrawFunction()

void anonymous_namespace{WaveTrackControls.cpp}::StatusDrawFunction ( const TranslatableString string,
wxDC *  dc,
const wxRect &  rect 
)

Definition at line 1025 of file WaveTrackControls.cpp.

1027{
1028 static const int offset = 3;
1029 dc->DrawText(string.Translation(), rect.x + offset, rect.y);
1030}

Referenced by Status1DrawFunction(), and Status2DrawFunction().

Here is the caller graph for this function:

Variable Documentation

◆ gGain

std::unique_ptr<LWSlider> anonymous_namespace{WaveTrackControls.cpp}::gGain

◆ gGainCaptured

std::unique_ptr<LWSlider> anonymous_namespace{WaveTrackControls.cpp}::gGainCaptured

◆ gPan

std::unique_ptr<LWSlider> anonymous_namespace{WaveTrackControls.cpp}::gPan

◆ gPanCaptured

std::unique_ptr<LWSlider> anonymous_namespace{WaveTrackControls.cpp}::gPanCaptured