189 lines
5.2 KiB
C++
189 lines
5.2 KiB
C++
/**********************************************************************
|
|
|
|
Audacity - A Digital Audio Editor
|
|
Copyright 1999-2018 Audacity Team
|
|
License: wxwidgets
|
|
|
|
Dan Horgan
|
|
James Crook
|
|
|
|
******************************************************************//**
|
|
|
|
\file SetTrackCommand.h
|
|
\brief Declarations of SetTrackCommand and SetTrackCommandType classes
|
|
|
|
*//*******************************************************************/
|
|
|
|
#ifndef __SET_TRACK_COMMAND__
|
|
#define __SET_TRACK_COMMAND__
|
|
|
|
#include "Command.h"
|
|
#include "CommandType.h"
|
|
|
|
class Track;
|
|
|
|
class SetTrackBase : public AudacityCommand
|
|
{
|
|
public:
|
|
SetTrackBase();
|
|
bool Apply(const CommandContext & context) override;
|
|
virtual bool ApplyInner( const CommandContext &context, Track *t );
|
|
virtual bool DefineParams( ShuttleParams & S ) override;
|
|
virtual void PopulateOrExchange(ShuttleGui & S) override;
|
|
|
|
int mTrackIndex;
|
|
int mChannelIndex;
|
|
bool bHasTrackIndex;
|
|
bool bHasChannelIndex;
|
|
|
|
bool bIsSecondChannel;
|
|
bool mbPromptForTracks;
|
|
};
|
|
|
|
|
|
class SetTrackStatusCommand : public SetTrackBase
|
|
{
|
|
public:
|
|
static const ComponentInterfaceSymbol Symbol;
|
|
|
|
//SetTrackStatusCommand();
|
|
// ComponentInterface overrides
|
|
ComponentInterfaceSymbol GetSymbol() override {return Symbol;};
|
|
TranslatableString GetDescription() override {return XO("Sets various values for a track.");};
|
|
bool DefineParams( ShuttleParams & S ) override;
|
|
void PopulateOrExchange(ShuttleGui & S) override;
|
|
|
|
// AudacityCommand overrides
|
|
ManualPageID ManualPage() override {return L"Extra_Menu:_Scriptables_I#set_track_status";}
|
|
bool ApplyInner( const CommandContext & context, Track * t ) override;
|
|
|
|
public:
|
|
wxString mTrackName;
|
|
bool bSelected;
|
|
bool bFocused;
|
|
|
|
// For tracking optional parameters.
|
|
bool bHasTrackName;
|
|
bool bHasSelected;
|
|
bool bHasFocused;
|
|
};
|
|
|
|
class SetTrackAudioCommand : public SetTrackBase
|
|
{
|
|
public:
|
|
static const ComponentInterfaceSymbol Symbol;
|
|
|
|
//SetTrackAudioCommand();
|
|
// ComponentInterface overrides
|
|
ComponentInterfaceSymbol GetSymbol() override {return Symbol;};
|
|
TranslatableString GetDescription() override {return XO("Sets various values for a track.");};
|
|
bool DefineParams( ShuttleParams & S ) override;
|
|
void PopulateOrExchange(ShuttleGui & S) override;
|
|
|
|
// AudacityCommand overrides
|
|
ManualPageID ManualPage() override {return L"Extra_Menu:_Scriptables_I#set_track_audio";}
|
|
bool ApplyInner( const CommandContext & context, Track * t ) override;
|
|
|
|
public:
|
|
double mPan;
|
|
double mGain;
|
|
bool bSolo;
|
|
bool bMute;
|
|
|
|
// For tracking optional parameters.
|
|
bool bHasPan;
|
|
bool bHasGain;
|
|
bool bHasSolo;
|
|
bool bHasMute;
|
|
};
|
|
|
|
class SetTrackVisualsCommand : public SetTrackBase
|
|
{
|
|
public:
|
|
static const ComponentInterfaceSymbol Symbol;
|
|
|
|
//SetTrackVisualsCommand();
|
|
// ComponentInterface overrides
|
|
ComponentInterfaceSymbol GetSymbol() override {return Symbol;};
|
|
TranslatableString GetDescription() override {return XO("Sets various values for a track.");};
|
|
bool DefineParams( ShuttleParams & S ) override;
|
|
void PopulateOrExchange(ShuttleGui & S) override;
|
|
|
|
// AudacityCommand overrides
|
|
ManualPageID ManualPage() override {return L"Extra_Menu:_Scriptables_I#set_track_visuals";}
|
|
bool ApplyInner( const CommandContext & context, Track * t ) override;
|
|
|
|
public:
|
|
int mColour;
|
|
int mHeight;
|
|
int mDisplayType;
|
|
int mScaleType;
|
|
int mVZoom;
|
|
double mVZoomTop;
|
|
double mVZoomBottom;
|
|
|
|
bool bUseSpecPrefs;
|
|
bool bSpectralSelect;
|
|
int mSpecColorScheme;
|
|
|
|
// For tracking optional parameters.
|
|
bool bHasColour;
|
|
bool bHasHeight;
|
|
bool bHasDisplayType;
|
|
bool bHasScaleType;
|
|
bool bHasVZoom;
|
|
bool bHasVZoomTop;
|
|
bool bHasVZoomBottom;
|
|
|
|
bool bHasUseSpecPrefs;
|
|
bool bHasSpectralSelect;
|
|
bool bHasSpecColorScheme;
|
|
};
|
|
|
|
class SetTrackCommand : public SetTrackBase
|
|
{
|
|
public:
|
|
static const ComponentInterfaceSymbol Symbol;
|
|
|
|
SetTrackCommand();
|
|
// ComponentInterface overrides
|
|
ComponentInterfaceSymbol GetSymbol() override {return Symbol;};
|
|
TranslatableString GetDescription() override {return XO("Sets various values for a track.");};
|
|
// AudacityCommand overrides
|
|
ManualPageID ManualPage() override {return L"Extra_Menu:_Scriptables_II#set_track";}
|
|
|
|
public:
|
|
|
|
bool DefineParams( ShuttleParams & S ) override {
|
|
return
|
|
SetTrackBase::DefineParams(S) &&
|
|
mSetStatus.DefineParams(S) &&
|
|
mSetAudio.DefineParams(S) &&
|
|
mSetVisuals.DefineParams(S);
|
|
};
|
|
void PopulateOrExchange(ShuttleGui & S) override {
|
|
SetTrackBase::PopulateOrExchange( S );
|
|
mSetStatus.PopulateOrExchange(S);
|
|
mSetAudio.PopulateOrExchange(S);
|
|
mSetVisuals.PopulateOrExchange(S);
|
|
};
|
|
bool ApplyInner(const CommandContext & context, Track * t ) override {
|
|
mSetStatus.bIsSecondChannel = bIsSecondChannel;
|
|
mSetAudio.bIsSecondChannel = bIsSecondChannel;
|
|
mSetVisuals.bIsSecondChannel = bIsSecondChannel;
|
|
return
|
|
mSetStatus.ApplyInner( context, t ) &&
|
|
mSetAudio.ApplyInner( context, t )&&
|
|
mSetVisuals.ApplyInner( context, t );
|
|
}
|
|
|
|
private:
|
|
SetTrackStatusCommand mSetStatus;
|
|
SetTrackAudioCommand mSetAudio;
|
|
SetTrackVisualsCommand mSetVisuals;
|
|
};
|
|
|
|
|
|
|
|
#endif /* End of include guard: __SETTRACKINFOCOMMAND__ */
|