1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-01 16:39:30 +02:00

Start and stop record or playback scrolling in idle time

This commit is contained in:
Paul Licameli 2019-07-01 16:32:52 -04:00
parent 2a87ea77cf
commit 34e9cb6171
2 changed files with 10 additions and 15 deletions

View File

@ -384,11 +384,6 @@ void DoTogglePinnedHead( AudacityProject &project )
TracksPrefs::SetPinnedHeadPreference(value, true);
MenuManager::ModifyAllProjectToolbarMenus();
// Change what happens in case transport is in progress right now
auto ctb = ControlToolBar::Find( *GetActiveProject() );
if (ctb)
ctb->StartScrollingIfPreferred();
auto &ruler = AdornedRulerPanel::Get( project );
// Update button image
ruler.UpdateButtonStates();

View File

@ -691,8 +691,6 @@ int ControlToolBar::PlayPlayRegion(const SelectedRegion &selectedRegion,
if (!success)
return -1;
StartScrollingIfPreferred();
return token;
}
@ -794,8 +792,6 @@ void ControlToolBar::PlayDefault()
void ControlToolBar::StopPlaying(bool stopStream /* = true*/)
{
StopScrolling();
AudacityProject *project = &mProject;
auto &projectAudioManager = ProjectAudioManager::Get( mProject );
@ -1210,8 +1206,6 @@ bool ControlToolBar::DoRecord(AudacityProject &project,
if (success) {
ProjectAudioIO::Get( *p ).SetAudioIOToken(token);
mBusyProject = p;
StartScrollingIfPreferred();
}
else {
CancelRecording();
@ -1275,7 +1269,8 @@ void ControlToolBar::OnIdle(wxIdleEvent & event)
else
mPause->PopUp();
if (!projectAudioManager.Recording()) {
bool recording = projectAudioManager.Recording();
if (!recording) {
mRecord->PopUp();
mRecord->SetAlternateIdx( wxGetKeyState(WXK_SHIFT) ? 1 : 0 );
}
@ -1284,8 +1279,8 @@ void ControlToolBar::OnIdle(wxIdleEvent & event)
mRecord->SetAlternateIdx( projectAudioManager.Appending() ? 0 : 1 );
}
if ( !(projectAudioManager.Playing() || Scrubber::Get(mProject).HasMark())
) {
bool playing = projectAudioManager.Playing();
if ( !(playing || Scrubber::Get(mProject).HasMark()) ) {
mPlay->PopUp();
mPlay->SetAlternateIdx(
wxGetKeyState(WXK_CONTROL)
@ -1306,6 +1301,11 @@ void ControlToolBar::OnIdle(wxIdleEvent & event)
);
}
if ( recording || playing )
StartScrollingIfPreferred();
else
StopScrolling();
if ( projectAudioManager.Stopping() )
mStop->PushDown();
else
@ -1468,12 +1468,12 @@ void ControlToolBar::StartScrolling()
using Mode = ProjectWindow::PlaybackScroller::Mode;
const auto project = &mProject;
if (project) {
auto gAudioIO = AudioIO::Get();
auto mode = Mode::Pinned;
#if 0
// Enable these lines to pin the playhead right instead of center,
// when recording but not overdubbing.
auto gAudioIO = AudioIO::Get();
if (gAudioIO->GetNumCaptureChannels() > 0) {
// recording