MCPcopy Create free account
hub / github.com/audacity/audacity / EnableDisableButtons

Method EnableDisableButtons

src/toolbars/ControlToolBar.cpp:485–513  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

483}
484
485void ControlToolBar::EnableDisableButtons()
486{
487 AudacityProject *p = &mProject;
488 auto &projectAudioManager = ProjectAudioManager::Get( mProject );
489 bool canStop = projectAudioManager.CanStopAudioStream();
490
491 bool paused = mPause->IsDown();
492 bool playing = mPlay->IsDown();
493 bool recording = mRecord->IsDown();
494 auto gAudioIO = AudioIO::Get();
495 bool busy = gAudioIO->IsBusy();
496
497 // Only interested in audio type tracks
498 bool tracks = p && TrackList::Get(*p).Any<AudioTrack>(); // PRL: PlayableTrack ?
499
500 mPlay->SetEnabled( canStop && tracks && !recording );
501 mRecord->SetEnabled(
502 canStop &&
503 !(busy && !recording && !paused) &&
504 !(playing && !paused)
505 );
506 mStop->SetEnabled(canStop && (playing || recording));
507 mRewind->SetEnabled(paused || (!playing && !recording));
508 mFF->SetEnabled(tracks && (paused || (!playing && !recording)));
509
510 mPause->SetEnabled(canStop);
511
512 mLoop->SetEnabled( !recording );
513}
514
515void ControlToolBar::SetPlay(bool down, PlayAppearance appearance)
516{

Callers

nothing calls this directly

Calls 4

GetFunction · 0.85
CanStopAudioStreamMethod · 0.80
IsBusyMethod · 0.80
SetEnabledMethod · 0.45

Tested by

no test coverage detected