mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-18 09:00:07 +02:00
574 lines
22 KiB
C++
574 lines
22 KiB
C++
/**********************************************************************
|
|
|
|
Audacity: A Digital Audio Editor
|
|
|
|
Menus.h
|
|
|
|
Dominic Mazzoni
|
|
|
|
**********************************************************************/
|
|
#ifndef __AUDACITY_MENUS__
|
|
#define __AUDACITY_MENUS__
|
|
|
|
#include "Experimental.h"
|
|
|
|
|
|
|
|
// These are all member functions of class AudacityProject.
|
|
// Vaughan, 2010-08-05:
|
|
// Note that this file is included in a "public" section of Project.h.
|
|
// Most of these methods do not need to be public, and because
|
|
// we do not subclass AudacityProject, they should be "private."
|
|
// Because the ones that need to be public are intermixed,
|
|
// I've added "private" in just a few cases.
|
|
|
|
private:
|
|
void CreateMenusAndCommands();
|
|
void PopulateMacrosMenu( CommandManager* c, CommandFlag flags );
|
|
void PopulateEffectsMenu(CommandManager *c, EffectType type,
|
|
CommandFlag batchflags, CommandFlag realflags);
|
|
void AddEffectMenuItems(CommandManager *c,
|
|
std::vector<const PluginDescriptor*> & plugs,
|
|
CommandFlag batchflags, CommandFlag realflags, bool isDefault);
|
|
void AddEffectMenuItemGroup(CommandManager *c, const wxArrayString & names,
|
|
const PluginIDList & plugs,
|
|
const std::vector<CommandFlag> & flags, bool isDefault);
|
|
void CreateRecentFilesMenu(CommandManager *c);
|
|
void ModifyUndoMenuItems();
|
|
void ModifyToolbarMenus();
|
|
// Calls ModifyToolbarMenus() on all projects
|
|
void ModifyAllProjectToolbarMenus();
|
|
|
|
CommandFlag GetFocusedFrame();
|
|
|
|
public:
|
|
// If checkActive, do not do complete flags testing on an
|
|
// inactive project as it is needlessly expensive.
|
|
CommandFlag GetUpdateFlags(bool checkActive = false);
|
|
|
|
//Adds label and returns index of label in labeltrack.
|
|
int DoAddLabel(const SelectedRegion& region, bool preserveFocus = false);
|
|
|
|
private:
|
|
double NearestZeroCrossing(double t0);
|
|
|
|
// Selecting a tool from the keyboard
|
|
|
|
void SetTool(int tool);
|
|
void OnSelectTool(const CommandContext &context );
|
|
void OnZoomTool(const CommandContext &context );
|
|
void OnEnvelopeTool(const CommandContext &context );
|
|
void OnTimeShiftTool(const CommandContext &context );
|
|
void OnDrawTool(const CommandContext &context );
|
|
void OnMultiTool(const CommandContext &context );
|
|
|
|
void OnNextTool(const CommandContext &context );
|
|
void OnPrevTool(const CommandContext &context );
|
|
|
|
public:
|
|
// Audio I/O Commands
|
|
|
|
void OnStop(const CommandContext &context );
|
|
void OnPause(const CommandContext &context );
|
|
void OnRecord(const CommandContext &context );
|
|
void OnRecord2ndChoice(const CommandContext &context );
|
|
void OnStopSelect(const CommandContext &context );
|
|
void OnSkipStart(const CommandContext &context );
|
|
void OnSkipEnd(const CommandContext &context );
|
|
void OnSeekLeftShort(const CommandContext &context );
|
|
void OnSeekRightShort(const CommandContext &context );
|
|
void OnSeekLeftLong(const CommandContext &context );
|
|
void OnSeekRightLong(const CommandContext &context );
|
|
|
|
// Different posibilities for playing sound
|
|
|
|
bool MakeReadyToPlay(bool loop = false, bool cutpreview = false); // Helper function that sets button states etc.
|
|
void OnPlayStop(const CommandContext &context );
|
|
bool DoPlayStopSelect(bool click, bool shift);
|
|
void OnPlayStopSelect(const CommandContext &context );
|
|
void OnPlayOneSecond(const CommandContext &context );
|
|
void OnPlayToSelection(const CommandContext &context );
|
|
void OnPlayBeforeSelectionStart(const CommandContext &context );
|
|
void OnPlayAfterSelectionStart(const CommandContext &context );
|
|
void OnPlayBeforeSelectionEnd(const CommandContext &context );
|
|
void OnPlayAfterSelectionEnd(const CommandContext &context );
|
|
void OnPlayBeforeAndAfterSelectionStart(const CommandContext &context );
|
|
void OnPlayBeforeAndAfterSelectionEnd(const CommandContext &context );
|
|
void OnPlayLooped(const CommandContext &context );
|
|
void OnPlayCutPreview(const CommandContext &context );
|
|
|
|
// Wave track control
|
|
|
|
void OnTrackPan(const CommandContext &context );
|
|
void OnTrackPanLeft(const CommandContext &context );
|
|
void OnTrackPanRight(const CommandContext &context );
|
|
void OnTrackGain(const CommandContext &context );
|
|
void OnTrackGainInc(const CommandContext &context );
|
|
void OnTrackGainDec(const CommandContext &context );
|
|
void OnTrackMenu(const CommandContext &context );
|
|
void OnTrackMute(const CommandContext &context );
|
|
void OnTrackSolo(const CommandContext &context );
|
|
void OnTrackClose(const CommandContext &context );
|
|
void OnTrackMoveUp(const CommandContext &context );
|
|
void OnTrackMoveDown(const CommandContext &context );
|
|
void OnTrackMoveTop(const CommandContext &context );
|
|
void OnTrackMoveBottom(const CommandContext &context );
|
|
|
|
enum MoveChoice { OnMoveUpID, OnMoveDownID, OnMoveTopID, OnMoveBottomID };
|
|
void MoveTrack(Track* target, MoveChoice choice);
|
|
|
|
// Device control
|
|
void OnInputDevice(const CommandContext &context );
|
|
void OnOutputDevice(const CommandContext &context );
|
|
void OnAudioHost(const CommandContext &context );
|
|
void OnInputChannels(const CommandContext &context );
|
|
|
|
// Mixer control
|
|
|
|
void OnOutputGain(const CommandContext &context );
|
|
void OnInputGain(const CommandContext &context );
|
|
void OnOutputGainInc(const CommandContext &context );
|
|
void OnOutputGainDec(const CommandContext &context );
|
|
void OnInputGainInc(const CommandContext &context );
|
|
void OnInputGainDec(const CommandContext &context );
|
|
|
|
// Transcription control
|
|
|
|
void OnPlayAtSpeed(const CommandContext &context );
|
|
void OnPlayAtSpeedLooped(const CommandContext &context );
|
|
void OnPlayAtSpeedCutPreview(const CommandContext &context );
|
|
void OnSetPlaySpeed(const CommandContext &context );
|
|
void OnPlaySpeedInc(const CommandContext &context );
|
|
void OnPlaySpeedDec(const CommandContext &context );
|
|
|
|
// Moving track focus commands
|
|
|
|
void OnPrevTrack( bool shift );
|
|
void OnNextTrack( bool shift );
|
|
void OnCursorUp(const CommandContext &context );
|
|
void OnCursorDown(const CommandContext &context );
|
|
void OnFirstTrack(const CommandContext &context );
|
|
void OnLastTrack(const CommandContext &context );
|
|
|
|
// Selection-Editing Commands
|
|
|
|
void OnShiftUp(const CommandContext &context );
|
|
void OnShiftDown(const CommandContext &context );
|
|
void OnToggle(const CommandContext &context );
|
|
|
|
void HandleListSelection(Track *t, bool shift, bool ctrl, bool modifyState);
|
|
|
|
void OnCursorLeft(const CommandContext &context );
|
|
void OnCursorRight(const CommandContext &context );
|
|
void OnSelExtendLeft(const CommandContext &context );
|
|
void OnSelExtendRight(const CommandContext &context );
|
|
void OnSelContractLeft(const CommandContext &context );
|
|
void OnSelContractRight(const CommandContext &context );
|
|
|
|
public:
|
|
static double OnClipMove
|
|
(ViewInfo &viewInfo, Track *track,
|
|
TrackList &trackList, bool syncLocked, bool right);
|
|
|
|
void DoClipLeftOrRight(bool right, bool keyUp );
|
|
void OnClipLeft(const CommandContext &context );
|
|
void OnClipRight(const CommandContext &context );
|
|
|
|
void OnCursorShortJumpLeft(const CommandContext &context );
|
|
void OnCursorShortJumpRight(const CommandContext &context );
|
|
void OnCursorLongJumpLeft(const CommandContext &context );
|
|
void OnCursorLongJumpRight(const CommandContext &context );
|
|
void OnSelSetExtendLeft(const CommandContext &context );
|
|
void OnSelSetExtendRight(const CommandContext &context );
|
|
|
|
void OnSetLeftSelection(const CommandContext &context );
|
|
void OnSetRightSelection(const CommandContext &context );
|
|
|
|
void OnSelToStart(const CommandContext &context );
|
|
void OnSelToEnd(const CommandContext &context );
|
|
|
|
void OnMoveToNextLabel(const CommandContext &context );
|
|
void OnMoveToPrevLabel(const CommandContext &context );
|
|
void OnMoveToLabel(bool next);
|
|
|
|
void OnZeroCrossing(const CommandContext &context );
|
|
|
|
void OnLockPlayRegion(const CommandContext &context );
|
|
void OnUnlockPlayRegion(const CommandContext &context );
|
|
|
|
double GetTime(const Track *t);
|
|
void OnSortTime(const CommandContext &context );
|
|
void OnSortName(const CommandContext &context );
|
|
|
|
void OnSnapToOff(const CommandContext &context );
|
|
void OnSnapToNearest(const CommandContext &context );
|
|
void OnSnapToPrior(const CommandContext &context );
|
|
void OnFullScreen(const CommandContext &context );
|
|
|
|
static void DoMacMinimize(AudacityProject *project);
|
|
void OnMacMinimize(const CommandContext &context );
|
|
void OnMacMinimizeAll(const CommandContext &context );
|
|
void OnMacZoom(const CommandContext &context );
|
|
void OnMacBringAllToFront(const CommandContext &context );
|
|
|
|
// File Menu
|
|
|
|
void OnNew(const CommandContext &context );
|
|
void OnOpen(const CommandContext &context );
|
|
void OnClose(const CommandContext &context );
|
|
void OnSave(const CommandContext &context );
|
|
void OnSaveAs(const CommandContext &context );
|
|
#ifdef USE_LIBVORBIS
|
|
void OnSaveCompressed(const CommandContext &context );
|
|
#endif
|
|
|
|
void OnCheckDependencies(const CommandContext &context );
|
|
|
|
void OnExport(const wxString & Format);
|
|
void OnExportAudio(const CommandContext &context );
|
|
void OnExportMp3(const CommandContext &context );
|
|
void OnExportWav(const CommandContext &context );
|
|
void OnExportOgg(const CommandContext &context );
|
|
void OnExportSelection(const CommandContext &context );
|
|
void OnExportMultiple(const CommandContext &context );
|
|
void OnExportLabels(const CommandContext &context );
|
|
void OnExportMIDI(const CommandContext &context );
|
|
|
|
void OnPreferences(const CommandContext &context );
|
|
void OnReloadPreferences(const CommandContext &context );
|
|
|
|
void OnPageSetup(const CommandContext &context );
|
|
void OnPrint(const CommandContext &context );
|
|
|
|
void OnExit(const CommandContext &context );
|
|
|
|
// Edit Menu
|
|
|
|
public:
|
|
void OnUndo(const CommandContext &context );
|
|
void OnRedo(const CommandContext &context );
|
|
|
|
private:
|
|
static void FinishCopy(const Track *n, Track *dest);
|
|
static void FinishCopy(const Track *n, Track::Holder &&dest, TrackList &list);
|
|
|
|
public:
|
|
void OnCut(const CommandContext &context );
|
|
void OnSplitCut(const CommandContext &context );
|
|
void OnCopy(const CommandContext &context );
|
|
|
|
void OnPaste(const CommandContext &context );
|
|
private:
|
|
bool HandlePasteText(); // Handle text paste (into active label), if any. Return true if pasted.
|
|
bool HandlePasteNothingSelected(); // Return true if nothing selected, regardless of paste result.
|
|
public:
|
|
|
|
void OnPasteNewLabel(const CommandContext &context );
|
|
void OnPasteOver(const CommandContext &context );
|
|
void OnTrim(const CommandContext &context );
|
|
|
|
void OnDelete(const CommandContext &context );
|
|
void OnSplitDelete(const CommandContext &context );
|
|
void OnSilence(const CommandContext &context );
|
|
|
|
void OnSplit(const CommandContext &context );
|
|
void OnSplitNew(const CommandContext &context );
|
|
void OnJoin(const CommandContext &context );
|
|
void OnDisjoin(const CommandContext &context );
|
|
void OnDuplicate(const CommandContext &context );
|
|
|
|
void OnCutLabels(const CommandContext &context );
|
|
void OnSplitCutLabels(const CommandContext &context );
|
|
void OnCopyLabels(const CommandContext &context );
|
|
void OnDeleteLabels(const CommandContext &context );
|
|
void OnSplitDeleteLabels(const CommandContext &context );
|
|
void OnSilenceLabels(const CommandContext &context );
|
|
void OnSplitLabels(const CommandContext &context );
|
|
void OnJoinLabels(const CommandContext &context );
|
|
void OnDisjoinLabels(const CommandContext &context );
|
|
|
|
void OnSelectTimeAndTracks(bool bAllTime, bool bAllTracks);
|
|
void OnSelectAllTime(const CommandContext &context );
|
|
void OnSelectAllTracks(const CommandContext &context );
|
|
void OnSelectAll(const CommandContext &context );
|
|
void OnSelectSomething(const CommandContext &context );
|
|
void OnSelectNone(const CommandContext &context );
|
|
private:
|
|
int CountSelectedWaveTracks();
|
|
int CountSelectedTracks();
|
|
public:
|
|
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
|
|
// For toggling of spectral seletion
|
|
double mLastF0;
|
|
double mLastF1;
|
|
void OnToggleSpectralSelection(const CommandContext &context );
|
|
void DoNextPeakFrequency(bool up);
|
|
void OnNextHigherPeakFrequency(const CommandContext &context );
|
|
void OnNextLowerPeakFrequency(const CommandContext &context );
|
|
#endif
|
|
void OnSelectCursorEnd(const CommandContext &context );
|
|
void OnSelectStartCursor(const CommandContext &context );
|
|
void OnSelectPrevClipBoundaryToCursor(const CommandContext &context );
|
|
void OnSelectCursorToNextClipBoundary(const CommandContext &context );
|
|
void OnSelectClipBoundary(bool next);
|
|
struct FoundTrack {
|
|
const WaveTrack* waveTrack{};
|
|
int trackNum{};
|
|
bool channel{};
|
|
|
|
wxString ComposeTrackName() const;
|
|
};
|
|
struct FoundClip : FoundTrack {
|
|
bool found{};
|
|
double startTime{};
|
|
double endTime{};
|
|
int index{};
|
|
};
|
|
FoundClip FindNextClip(const WaveTrack* wt, double t0, double t1);
|
|
FoundClip FindPrevClip(const WaveTrack* wt, double t0, double t1);
|
|
int FindClips(double t0, double t1, bool next, std::vector<FoundClip>& results);
|
|
bool ChannelsHaveSameClipBoundaries(const WaveTrack* wt);
|
|
void OnSelectPrevClip(const CommandContext &context );
|
|
void OnSelectNextClip(const CommandContext &context );
|
|
void OnSelectClip(bool next);
|
|
void OnSelectCursorStoredCursor(const CommandContext &context );
|
|
void OnSelectSyncLockSel(const CommandContext &context );
|
|
|
|
void OnZoomIn(const CommandContext &context );
|
|
void OnZoomOut(const CommandContext &context );
|
|
void OnZoomToggle(const CommandContext &context );
|
|
void OnZoomNormal(const CommandContext &context );
|
|
void OnZoomFit(const CommandContext &context );
|
|
void OnZoomFitV(const CommandContext &context );
|
|
void DoZoomFitV();
|
|
void OnZoomSel(const CommandContext &context );
|
|
void OnGoSelStart(const CommandContext &context );
|
|
void OnGoSelEnd(const CommandContext &context );
|
|
|
|
void OnExpandAllTracks(const CommandContext &context );
|
|
void OnCollapseAllTracks(const CommandContext &context );
|
|
|
|
void OnPanTracks(float PanValue);
|
|
void OnPanLeft(const CommandContext &context );
|
|
void OnPanRight(const CommandContext &context );
|
|
void OnPanCenter(const CommandContext &context );
|
|
|
|
void OnMuteAllTracks(const CommandContext &context );
|
|
void OnUnmuteAllTracks(const CommandContext &context );
|
|
|
|
void OnShowClipping(const CommandContext &context );
|
|
void OnShowExtraMenus(const CommandContext &context );
|
|
|
|
void OnHistory(const CommandContext &context );
|
|
|
|
void OnKaraoke(const CommandContext &context );
|
|
void OnMixerBoard(const CommandContext &context );
|
|
|
|
void OnPlotSpectrum(const CommandContext &context );
|
|
void OnContrast(const CommandContext &context );
|
|
|
|
void OnShowTransportToolBar(const CommandContext &context );
|
|
void OnShowDeviceToolBar(const CommandContext &context );
|
|
void OnShowEditToolBar(const CommandContext &context );
|
|
void OnShowMeterToolBar(const CommandContext &context );
|
|
void OnShowRecordMeterToolBar(const CommandContext &context );
|
|
void OnShowPlayMeterToolBar(const CommandContext &context );
|
|
void OnShowMixerToolBar(const CommandContext &context );
|
|
void OnShowSelectionToolBar(const CommandContext &context );
|
|
#ifdef EXPERIMENTAL_SPECTRAL_EDITING
|
|
void OnShowSpectralSelectionToolBar(const CommandContext &context );
|
|
#endif
|
|
void OnShowScrubbingToolBar(const CommandContext &context );
|
|
void OnShowToolsToolBar(const CommandContext &context );
|
|
void OnShowTranscriptionToolBar(const CommandContext &context );
|
|
void OnResetToolBars(const CommandContext &context );
|
|
|
|
#if defined(EXPERIMENTAL_EFFECTS_RACK)
|
|
void OnShowEffectsRack(const CommandContext &context );
|
|
#endif
|
|
|
|
// Transport Menu
|
|
|
|
void OnSoundActivated(const CommandContext &context );
|
|
void OnToggleSoundActivated(const CommandContext &context );
|
|
void OnTogglePinnedHead(const CommandContext &context );
|
|
void OnTogglePlayRecording(const CommandContext &context );
|
|
void OnToggleSWPlaythrough(const CommandContext &context );
|
|
#ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT
|
|
void OnToggleAutomatedInputLevelAdjustment(const CommandContext &context );
|
|
#endif
|
|
void OnRescanDevices(const CommandContext &context );
|
|
|
|
// Import Submenu
|
|
void OnImport(const CommandContext &context );
|
|
void OnImportLabels(const CommandContext &context );
|
|
void OnImportMIDI(const CommandContext &context );
|
|
|
|
// return null on failure; if success, return the given project, or a NEW
|
|
// one, if the given was null; create no NEW project if failure
|
|
static AudacityProject *DoImportMIDI(
|
|
AudacityProject *pProject, const wxString &fileName);
|
|
|
|
void OnImportRaw(const CommandContext &context );
|
|
|
|
void OnEditMetadata(const CommandContext &context );
|
|
bool DoEditMetadata(const wxString &title, const wxString &shortUndoDescription, bool force);
|
|
|
|
void OnMixAndRender(const CommandContext &context );
|
|
void OnMixAndRenderToNewTrack(const CommandContext &context );
|
|
void HandleMixAndRender(bool toNewTrack);
|
|
|
|
private:
|
|
SelectedRegion mRegionSave{};
|
|
bool mCursorPositionHasBeenStored{false};
|
|
double mCursorPositionStored;
|
|
public:
|
|
void OnSelectionSave(const CommandContext &context );
|
|
void OnSelectionRestore(const CommandContext &context );
|
|
void OnCursorPositionStore(const CommandContext &context );
|
|
|
|
void OnCursorTrackStart(const CommandContext &context );
|
|
void OnCursorTrackEnd(const CommandContext &context );
|
|
void OnCursorSelStart(const CommandContext &context );
|
|
void OnCursorSelEnd(const CommandContext &context );
|
|
struct FoundClipBoundary : FoundTrack {
|
|
int nFound{}; // 0, 1, or 2
|
|
double time{};
|
|
int index1{};
|
|
bool clipStart1{};
|
|
int index2{};
|
|
bool clipStart2{};
|
|
};
|
|
FoundClipBoundary FindNextClipBoundary(const WaveTrack* wt, double time);
|
|
FoundClipBoundary FindPrevClipBoundary(const WaveTrack* wt, double time);
|
|
double AdjustForFindingStartTimes(const std::vector<const WaveClip*>& clips, double time);
|
|
double AdjustForFindingEndTimes(const std::vector<const WaveClip*>& clips, double time);
|
|
int FindClipBoundaries(double time, bool next, std::vector<FoundClipBoundary>& results);
|
|
void OnCursorNextClipBoundary(const CommandContext &context );
|
|
void OnCursorPrevClipBoundary(const CommandContext &context );
|
|
void OnCursorClipBoundary(bool next);
|
|
static wxString ClipBoundaryMessage(const std::vector<FoundClipBoundary>& results);
|
|
|
|
void OnAlignNoSync(const CommandContext &context );
|
|
void OnAlign(const CommandContext &context );
|
|
//void OnAlignMoveSel(int index);
|
|
void HandleAlign(int index, bool moveSel);
|
|
size_t mAlignLabelsCount;
|
|
|
|
#ifdef EXPERIMENTAL_SCOREALIGN
|
|
void OnScoreAlign(const CommandContext &context );
|
|
#endif // EXPERIMENTAL_SCOREALIGN
|
|
|
|
// Tracks menu
|
|
void OnNewWaveTrack(const CommandContext &context );
|
|
void OnNewStereoTrack(const CommandContext &context );
|
|
void OnNewLabelTrack(const CommandContext &context );
|
|
void OnNewTimeTrack(const CommandContext &context );
|
|
void OnTimerRecord(const CommandContext &context );
|
|
void OnRemoveTracks(const CommandContext &context );
|
|
void OnMoveSelectionWithTracks(const CommandContext &context );
|
|
void OnSyncLock(const CommandContext &context );
|
|
void OnAddLabel(const CommandContext &context );
|
|
void OnAddLabelPlaying(const CommandContext &context );
|
|
void DoEditLabels(LabelTrack *lt = nullptr, int index = -1);
|
|
void OnEditLabels(const CommandContext &context );
|
|
void OnToggleTypeToCreateLabel(const CommandContext &context );
|
|
|
|
// Effect Menu
|
|
|
|
class OnEffectFlags
|
|
{
|
|
public:
|
|
// No flags specified
|
|
static const int kNone = 0x00;
|
|
// Flag used to disable prompting for configuration parameteres.
|
|
static const int kConfigured = 0x01;
|
|
// Flag used to disable saving the state after processing.
|
|
static const int kSkipState = 0x02;
|
|
// Flag used to disable "Repeat Last Effect"
|
|
static const int kDontRepeatLast = 0x04;
|
|
};
|
|
|
|
bool DoEffect(const PluginID & ID, const CommandContext & context, int flags);
|
|
void OnEffect(const CommandContext &context );
|
|
void OnRepeatLastEffect(const CommandContext &context );
|
|
bool DoAudacityCommand(const PluginID & ID, const CommandContext &, int flags);
|
|
void OnApplyMacro(const CommandContext &context );
|
|
void OnApplyMacroDirectly(const CommandContext &context );
|
|
void OnManageMacros(const CommandContext &context );
|
|
void OnStereoToMono(const CommandContext &context );
|
|
void OnAudacityCommand(const CommandContext &context );
|
|
void OnManagePluginsMenu(EffectType Type);
|
|
static void RebuildAllMenuBars();
|
|
void OnManageGenerators(const CommandContext &context );
|
|
void OnManageEffects(const CommandContext &context );
|
|
void OnManageAnalyzers(const CommandContext &context );
|
|
void OnManageTools(const CommandContext &context );
|
|
|
|
|
|
|
|
// Help Menu
|
|
|
|
void OnAbout(const CommandContext &context );
|
|
void OnQuickHelp(const CommandContext &context );
|
|
void OnManual(const CommandContext &context );
|
|
void OnCheckForUpdates(const CommandContext &context );
|
|
void MayCheckForUpdates();
|
|
void OnShowLog(const CommandContext &context );
|
|
void OnHelpWelcome(const CommandContext &context );
|
|
void OnBenchmark(const CommandContext &context );
|
|
#if defined(EXPERIMENTAL_CRASH_REPORT)
|
|
void OnCrashReport(const CommandContext &context );
|
|
#endif
|
|
void OnSimulateRecordingErrors(const CommandContext &context );
|
|
void OnDetectUpstreamDropouts(const CommandContext &context );
|
|
void OnScreenshot(const CommandContext &context );
|
|
void OnAudioDeviceInfo(const CommandContext &context );
|
|
#ifdef EXPERIMENTAL_MIDI_OUT
|
|
void OnMidiDeviceInfo(const CommandContext &context );
|
|
#endif
|
|
|
|
//
|
|
|
|
void OnSeparator(const CommandContext &context );
|
|
|
|
// Keyboard navigation
|
|
|
|
void NextOrPrevFrame(bool next);
|
|
void PrevFrame(const CommandContext &context );
|
|
void NextFrame(const CommandContext &context );
|
|
|
|
void PrevWindow(const CommandContext &context );
|
|
void NextWindow(const CommandContext &context );
|
|
|
|
void OnResample(const CommandContext &context );
|
|
|
|
private:
|
|
void OnCursorLeft(bool shift, bool ctrl, bool keyup = false);
|
|
void OnCursorRight(bool shift, bool ctrl, bool keyup = false);
|
|
void OnCursorMove(bool forward, bool longjump);
|
|
void OnBoundaryMove(bool left, bool boundaryContract);
|
|
|
|
// Handle small cursor and play head movements
|
|
void SeekLeftOrRight
|
|
(bool left, bool shift, bool ctrl, bool keyup);
|
|
|
|
void SeekAudio(double seekStep);
|
|
|
|
void SeekQuiet
|
|
(double seekStep, bool isPixels, bool snapToTime, bool shift, bool ctrl);
|
|
|
|
double OffsetTime(double t, double offset, bool isPixels, bool snapToTime);
|
|
|
|
// Helper for moving by keyboard with snap-to-grid enabled
|
|
double GridMove(double t, int minPix);
|
|
|
|
// Make sure we return to "public" for subsequent declarations in Project.h.
|
|
public:
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|