42#include "../CommonCommandFlags.h"
46#include "../TrackPanel.h"
48#include "../prefs/WaveformSettings.h"
50#include "../prefs/SpectrogramSettings.h"
53#include "../tracks/playabletrack/wavetrack/ui/WaveChannelView.h"
54#include "../tracks/playabletrack/wavetrack/ui/WaveChannelViewConstants.h"
55#include "../tracks/playabletrack/wavetrack/ui/WaveformView.h"
69{
XO(
"Set Track Status") };
83 {
return VisitSettings<false>(
S); }
86 {
return VisitSettings<true>(
S); }
90 S.StartMultiColumn(3, wxEXPAND);
92 S.SetStretchyCol( 2 );
96 S.StartMultiColumn(2, wxEXPAND);
98 S.SetStretchyCol( 1 );
120 else if (&t == trackFocus.
Get())
121 trackFocus.Set(
nullptr);
129{
XO(
"Set Track Audio") };
144 {
return VisitSettings<false>(
S); }
147 {
return VisitSettings<true>(
S); }
151 S.StartMultiColumn(2, wxEXPAND);
153 S.SetStretchyCol( 1 );
158 S.StartMultiColumn(3, wxEXPAND);
160 S.SetStretchyCol( 2 );
169 static_cast<void>(context);
176 wt->SetPan(
mPan/100.0);
188{
XO(
"Set Track Visuals") };
203 {
wxT(
"Color0"),
XO(
"Color 0") },
204 {
wxT(
"Color1"),
XO(
"Color 1") },
205 {
wxT(
"Color2"),
XO(
"Color 2") },
206 {
wxT(
"Color3"),
XO(
"Color 3") },
221 {
wxT(
"Linear"),
XO(
"Linear (amp)") },
223 {
wxT(
"dB"),
XO(
"Logarithmic (dB)") },
225 {
wxT(
"LinearDB"),
XO(
"Linear (dB)")}
239 {
wxT(
"Times2"),
XO(
"Times 2") },
246 auto result = transform_container< EnumValueSymbols >(
277 {
return VisitSettings<false>(
S); }
280 {
return VisitSettings<true>(
S); }
284 S.StartMultiColumn(3, wxEXPAND);
286 S.SetStretchyCol( 2 );
293 auto typeNames = transform_container<TranslatableStrings>(
307 S.StartMultiColumn(2, wxEXPAND);
309 S.SetStretchyCol( 1 );
314 S.StartMultiColumn(3, wxEXPAND);
316 S.SetStretchyCol( 2 );
319 Msgids( schemes.data(), schemes.size() ) );
327 static_cast<void>(context);
328 const auto wt =
dynamic_cast<WaveTrack *
>(&t);
331 auto &wc = **wt->
Channels().begin();
333 static const double ZOOMLIMIT = 0.001f;
348 view.SetMultiView(
true );
366 case kReset: cache.SetDisplayBounds(-1,1);
break;
367 case kTimes2: cache.SetDisplayBounds(-2,2);
break;
368 case kHalfWave: cache.SetDisplayBounds(0,1);
break;
375 cache.GetDisplayBounds(vzmin, vzmax);
424 {
return VisitSettings<false>(
S); }
426 {
return VisitSettings<true>(
S); }
443 Command(
wxT(
"SetTrackVisuals"),
XXO(
"Set Track Visuals..."),
446 wxT(
"Optional/Extra/Part2/Scriptables1")
456 wxT(
"Optional/Extra/Part2/Scriptables2")
AttachedItem sAttachment1
AttachedItem sAttachment2
const ReservedCommandFlag & AudioIONotBusyFlag()
XXO("&Cut/Copy/Paste Toolbar")
static const EnumValueSymbol kScaleTypeStrings[nScaleTypes]
static const EnumValueSymbol kZoomTypeStrings[nZoomTypes]
static EnumValueSymbols DiscoverSubViewTypes()
static const EnumValueSymbol kColourStrings[nColours]
TranslatableStrings Msgids(const EnumValueSymbol strings[], size_t nStrings)
Convenience function often useful when adding choice controls.
static Settings & settings()
IteratorRange< ChannelIterator< ChannelType > > Channels()
Get range of channels with mutative access.
static ChannelView & Get(Channel &channel)
void SetExpandedHeight(int height)
Subclass & Get(const RegisteredFactory &key)
Get reference to an attachment, creating on demand if not present, down-cast it to Subclass.
CommandContext provides additional information to an 'Apply()' command. It provides the project,...
AudacityProject & project
ComponentInterfaceSymbol pairs a persistent string identifier used internally with an optional,...
const TranslatableString Stripped() const
AudioTrack subclass that can also be audibly replayed by the program.
Generates classes whose instances register items at construction.
bool ApplyInner(const CommandContext &context, Track &t) override
static const ComponentInterfaceSymbol Symbol
bool VisitSettings(SettingsVisitorBase< Const > &S)
void PopulateOrExchange(ShuttleGui &S) override
bool Apply(const CommandContext &context) final
virtual bool ApplyInner(const CommandContext &context, Track &t)=0
static const ComponentInterfaceSymbol Symbol
bool VisitSettings(SettingsVisitorBase< Const > &S)
void PopulateOrExchange(ShuttleGui &S) override
static const ComponentInterfaceSymbol Symbol
bool VisitSettings(SettingsVisitorBase< Const > &S)
bool ApplyInner(const CommandContext &context, Track &t) override
static const ComponentInterfaceSymbol Symbol
bool ApplyInner(const CommandContext &context, Track &t) override
void PopulateOrExchange(ShuttleGui &S) override
bool VisitSettings(SettingsVisitorBase< Const > &S)
Visitor of effect or command parameters. This is a base class with lots of virtual functions that do ...
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
static SpectrogramSettings & Get(const WaveTrack &track)
static const EnumValueSymbols & GetColorSchemeNames()
static SpectrogramSettings & Own(WaveChannel &wc)
static void Reset(WaveChannel &channel)
Make channel lose indpendent settings and use defaults.
Abstract base class for an object holding data associated with points on a time axis.
virtual void SetSelected(bool s)
void SetName(const wxString &n)
static TrackList & Get(AudacityProject &project)
static TrackPanel & Get(AudacityProject &project)
static WaveChannelView & Get(WaveChannel &channel)
A Track that contains audio waveform data.
AUDACITY_DLL_API void OnAudacityCommand(const CommandContext &ctx)
AUDACITY_DLL_API const EnumValueSymbol MultiViewSymbol
String identifier for a preference for one of each type of view.
void swap(std::unique_ptr< Alg_seq > &a, std::unique_ptr< Alg_seq > &b)
BuiltinCommandsModule::Registration< SetTrackAudioCommand > reg2
BuiltinCommandsModule::Registration< SetTrackCommand > reg4
BuiltinCommandsModule::Registration< SetTrackStatusCommand > reg
BuiltinCommandsModule::Registration< SetTrackVisualsCommand > reg3
static Display Default()
Return a preferred type.
static const std::vector< WaveChannelSubViewType > & All()
Discover all registered types.