From 2c7ca9709509a201f387f2d584e09f4333f9558d Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Mon, 11 Jun 2018 18:27:18 -0400 Subject: [PATCH] Reimplement change of color of playhead after pre-roll, more simply --- src/AudioIO.cpp | 6 ++++++ src/AudioIO.h | 3 +++ src/tracks/ui/PlayIndicatorOverlay.cpp | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/AudioIO.cpp b/src/AudioIO.cpp index c81647989..5d35f69d8 100644 --- a/src/AudioIO.cpp +++ b/src/AudioIO.cpp @@ -5477,3 +5477,9 @@ double AudioIO::RecordingSchedule::ToDiscard() const { return std::max(0.0, -( mPosition + TotalCorrection() ) ); } + +bool AudioIO::IsCapturing() const +{ + return GetNumCaptureChannels() > 0 && + mTime >= mT0 + mRecordingSchedule.mPreRoll; +} diff --git a/src/AudioIO.h b/src/AudioIO.h index c9ee5578d..957b91218 100644 --- a/src/AudioIO.h +++ b/src/AudioIO.h @@ -398,6 +398,9 @@ class AUDACITY_DLL_API AudioIO final { unsigned GetNumPlaybackChannels() const { return mNumPlaybackChannels; } unsigned GetNumCaptureChannels() const { return mNumCaptureChannels; } + // Meaning really capturing, not just pre-rolling + bool IsCapturing() const; + /** \brief Array of common audio sample rates * * These are the rates we will always support, regardless of hardware support diff --git a/src/tracks/ui/PlayIndicatorOverlay.cpp b/src/tracks/ui/PlayIndicatorOverlay.cpp index 0305a5580..ba81c1945 100644 --- a/src/tracks/ui/PlayIndicatorOverlay.cpp +++ b/src/tracks/ui/PlayIndicatorOverlay.cpp @@ -60,7 +60,7 @@ std::pair PlayIndicatorOverlayBase::DoGetRectangle(wxSize size) void PlayIndicatorOverlayBase::Draw(OverlayPanel &panel, wxDC &dc) { // Set play/record color - bool rec = (gAudioIO->GetNumCaptureChannels() > 0); + bool rec = gAudioIO->IsCapturing(); AColor::IndicatorColor(&dc, !rec); mLastIndicatorX = mNewIndicatorX; if (!between_incexc(0, mLastIndicatorX, dc.GetSize().GetWidth()))