11#ifndef __AUDACITY_SCRUBBING__
12#define __AUDACITY_SCRUBBING__
16#include <wx/longlong.h>
18#include "../../ScrubState.h"
21#include "../../widgets/Overlay.h"
34#define USE_SCRUB_THREAD
42 ,
public std::enable_shared_from_this< Scrubber >
54 static bool ShouldScrubPinned();
57 void MarkScrubStart(wxCoord xx,
bool smoothScrolling,
bool seek);
72 {
return mScrubStartPosition; }
75 {
return mSpeedPlaying;}
77 {
return IsScrubbing() && mSpeedPlaying; }
79 {
return mKeyboardScrubbing; }
81 {
return IsScrubbing() && mKeyboardScrubbing; }
83 { mBackwards = backwards;}
89 {
return GetScrubStartPosition() >= 0; }
93 {
return mSmoothScrollingScrub; }
95 { mSmoothScrollingScrub = value; }
106 { mCancelled =
true; }
130 template<
void (Scrubber::*pfn)(const CommandContext&)>
132 { (this->*pfn)(*mProject); }
163 wxCoord mLastScrubPosition {};
164 bool mScrubSeekPress {};
169 bool mSpeedPlaying{
true};
170 bool mKeyboardScrubbing{};
176#ifdef EXPERIMENTAL_SCRUBBING_SCROLL_WHEEL
177 int mLogMaxScrubSpeed;
182 DECLARE_EVENT_TABLE()
184#ifdef USE_SCRUB_THREAD
188 std::atomic<bool> mFinishThread{
false };
197 double mMaxSpeed { 1.0 };
199 bool mShowScrubbing {
false };
200 bool mMayDragToSeek{
false };
Utility ClientData::Site to register hooks into a host class that attach client data.
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
CommandContext provides additional information to an 'Apply()' command. It provides the project,...
A listener notified of changes in preferences.
void ContinueScrubbingUI()
bool ShouldDrawScrubSpeed()
bool IsKeyboardScrubbing() const
Scrubber & operator=(const Scrubber &)=delete
void DoKeyboardScrub(bool backwards, bool keyUp)
double GetKeyboardScrubbingSpeed()
Scrubber(const Scrubber &)=delete
void HandleScrollWheel(int steps)
bool MaybeStartScrubbing(wxCoord xx)
double GetMaxScrubSpeed() const
bool IsScrollScrubbing() const
wxCoord mScrubStartPosition
bool mSmoothScrollingScrub
void OnToggleScrubRuler(const CommandContext &)
bool ChoseSeeking() const
bool TemporarilySeeks() const
std::unique_ptr< ScrubPoller > mPoller
bool WasKeyboardScrubbing() const
void OnActivateOrDeactivateApp(wxActivateEvent &event)
int mScrubSpeedDisplayCountdown
AudacityProject * mProject
void SetBackwards(bool backwards)
void UpdatePrefs() override
ScrubbingOptions mOptions
const TranslatableString & GetUntranslatedStateString() const
void SetSeekPress(bool value)
void OnSeek(const CommandContext &)
bool StartKeyboardScrubbing(double time0, bool backwards)
void OnScrub(const CommandContext &)
void OnKeyboardScrubForwards(const CommandContext &)
bool MayDragToSeek() const
bool WasSpeedPlaying() const
bool IsSpeedPlaying() const
void ContinueScrubbingPoll()
void OnKeyboardScrubBackwards(const CommandContext &)
bool IsTransportingPinned() const
void OnScrubOrSeek(bool seek)
void PopulatePopupMenu(wxMenu &menu)
void SetScrollScrubbing(bool value)
wxString StatusMessageForWave() const
double FindScrubSpeed(bool seeking, double time) const
wxCoord GetScrubStartPosition() const
void SetMayDragToSeek(bool value)
void Thunk(wxCommandEvent &)
Holds a msgid for the translation catalog; may also bind format arguments.
Services * Get()
Fetch the global instance, or nullptr if none is yet installed.
A convenient default parameter for class template Site.