void ControlToolBar::SetRecord(bool down) { if (down) mRecord->PushDown(); else { mRecord->PopUp(); } EnableDisableButtons(); }
void ControlToolBar::SetPlay(bool down) { if (down) mPlay->PushDown(); else { mPlay->PopUp(); mPlay->SetAlternate(false); } EnableDisableButtons(); }
void ControlToolBar::SetStop(bool down) { if (down) mStop->PushDown(); else { if(FindFocus() == mStop) mPlay->SetFocus(); mStop->PopUp(); } EnableDisableButtons(); }
void ControlToolBar::StopPlaying(bool stopStream /* = true*/) { StopScrolling(); AudacityProject *project = GetActiveProject(); if(project) { // Let scrubbing code do some appearance change project->GetScrubber().StopScrubbing(); } if (!CanStopAudioStream()) return; mStop->PushDown(); SetStop(false); if(stopStream) gAudioIO->StopStream(); SetPlay(false); SetRecord(false); #ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT gAudioIO->AILADisable(); #endif mPause->PopUp(); mPaused=false; //Make sure you tell gAudioIO to unpause gAudioIO->SetPaused(mPaused); ClearCutPreviewTracks(); mBusyProject = NULL; // So that we continue monitoring after playing or recording. // also clean the MeterQueues if( project ) { project->MayStartMonitoring(); Meter *meter = project->GetPlaybackMeter(); if( meter ) { meter->Clear(); } meter = project->GetCaptureMeter(); if( meter ) { meter->Clear(); } } const auto toolbar = project->GetToolManager()->GetToolBar(ScrubbingBarID); toolbar->EnableDisableButtons(); }
void ControlToolBar::SetRecord(bool down, bool append) { if (down) { mRecord->SetAlternateIdx(append ? 1 : 0); mRecord->PushDown(); } else { mRecord->SetAlternateIdx(0); mRecord->PopUp(); } EnableDisableButtons(); }
void ControlToolBar::SetPlay(bool down, bool looped, bool cutPreview) { AudacityProject *p = GetActiveProject(); if (down) { mPlay->SetShift(looped); mPlay->SetControl(cutPreview); mPlay->SetAlternateIdx(cutPreview ? 2 : looped ? 1 : 0); mPlay->PushDown(); } else { mPlay->PopUp(); mPlay->SetAlternateIdx(0); } EnableDisableButtons(); }
void ControlToolBar::SetPlay(bool down, PlayAppearance appearance) { if (down) { mPlay->SetShift(appearance == PlayAppearance::Looped); mPlay->SetControl(appearance == PlayAppearance::CutPreview); mPlay->SetAlternateIdx(static_cast<int>(appearance)); mPlay->PushDown(); } else { mPlay->PopUp(); mPlay->SetAlternateIdx(0); } EnableDisableButtons(); UpdateStatusBar(GetActiveProject()); }
void ControlToolBar::ReCreateButtons() { bool playDown = false; bool playShift = false; bool pauseDown = false; bool recordDown = false; bool recordShift = false; // ToolBar::ReCreateButtons() will get rid of its sizer and // since we've attached our sizer to it, ours will get deleted too // so clean ours up first. if( mSizer ) { playDown = mPlay->IsDown(); playShift = mPlay->WasShiftDown(); pauseDown = mPause->IsDown(); recordDown = mRecord->IsDown(); recordShift = mRecord->WasShiftDown(); Detach( mSizer ); delete mSizer; mSizer = NULL; } ToolBar::ReCreateButtons(); if (playDown) { ControlToolBar::PlayAppearance appearance = playShift ? ControlToolBar::PlayAppearance::Looped : ControlToolBar::PlayAppearance::Straight; SetPlay(playDown, appearance); } if (pauseDown) { mPause->PushDown(); } if (recordDown) { SetRecord(recordDown, recordShift); } EnableDisableButtons(); RegenerateToolsTooltips(); }
void ScrubbingToolBar::OnButton(wxCommandEvent &event) { AudacityProject *p = GetActiveProject(); if (!p) return; auto &scrubber = p->GetScrubber(); int id = event.GetId(); switch (id) { case STBScrubID: scrubber.OnScrub(event); break; case STBSeekID: scrubber.OnSeek(event); break; case STBBarID: scrubber.OnToggleScrubBar(event); break; default: wxASSERT(false); } EnableDisableButtons(); }