![]() |
Audacity 3.2.0
|
#include <ProjectAudioManager.h>
Public Member Functions | |
ProjectAudioManager (AudacityProject &project) | |
ProjectAudioManager (const ProjectAudioManager &) PROHIBITED | |
ProjectAudioManager & | operator= (const ProjectAudioManager &) PROHIBITED |
~ProjectAudioManager () override | |
bool | IsTimerRecordCancelled () |
void | SetTimerRecordCancelled () |
void | ResetTimerRecordCancelled () |
bool | Paused () const |
bool | Playing () const |
bool | Recording () const |
bool | Stopping () const |
bool | Appending () const |
bool | Looping () const |
bool | Cutting () const |
bool | CanStopAudioStream () const |
void | OnRecord (bool altAppearance) |
bool | DoRecord (AudacityProject &project, const TransportTracks &transportTracks, double t0, double t1, bool altAppearance, const AudioIOStartStreamOptions &options) |
int | PlayPlayRegion (const SelectedRegion &selectedRegion, const AudioIOStartStreamOptions &options, PlayMode playMode, bool backwards=false) |
void | PlayCurrentRegion (bool newDefault=false, bool cutpreview=false) |
void | OnPause () |
void | Stop (bool stopStream=true) |
void | StopIfPaused () |
bool | DoPlayStopSelect (bool click, bool shift) |
void | DoPlayStopSelect () |
PlayMode | GetLastPlayMode () const |
![]() | |
virtual | ~Base () |
![]() | |
AudioIOListener () | |
virtual | ~AudioIOListener () |
virtual void | OnAudioIORate (int rate)=0 |
virtual void | OnAudioIOStartRecording ()=0 |
virtual void | OnAudioIOStopRecording ()=0 |
virtual void | OnAudioIONewBlocks (const WritableSampleTrackArray *tracks)=0 |
virtual void | OnCommitRecording ()=0 |
virtual void | OnSoundActivationThreshold ()=0 |
![]() | |
Publisher (ExceptionPolicy *pPolicy=nullptr, Alloc a={}) | |
Constructor supporting type-erased custom allocation/deletion. More... | |
Publisher (Publisher &&)=default | |
Publisher & | operator= (Publisher &&)=default |
Subscription | Subscribe (Callback callback) |
Connect a callback to the Publisher; later-connected are called earlier. More... | |
Subscription | Subscribe (Object &obj, Return(Object::*callback)(Args...)) |
Overload of Subscribe takes an object and pointer-to-member-function. More... | |
Static Public Member Functions | |
static ProjectAudioManager & | Get (AudacityProject &project) |
static const ProjectAudioManager & | Get (const AudacityProject &project) |
static WritableSampleTrackArray | ChooseExistingRecordingTracks (AudacityProject &proj, bool selectedOnly, double targetRate=RATE_NOT_SELECTED) |
static bool | UseDuplex () |
Private Member Functions | |
void | TogglePaused () |
void | SetPausedOff () |
void | SetAppending (bool value) |
void | SetLooping (bool value) |
void | SetCutting (bool value) |
void | SetStopping (bool value) |
void | CancelRecording () |
void | OnAudioIORate (int rate) override |
void | OnAudioIOStartRecording () override |
void | OnAudioIOStopRecording () override |
void | OnAudioIONewBlocks (const WritableSampleTrackArray *tracks) override |
void | OnCommitRecording () override |
void | OnSoundActivationThreshold () override |
void | OnCheckpointFailure (ProjectFileIOMessage) |
Static Private Member Functions | |
static std::pair< TranslatableStrings, unsigned > | StatusWidthFunction (const AudacityProject &project, StatusBarField field) |
Private Attributes | |
Observer::Subscription | mCheckpointFailureSubcription |
AudacityProject & | mProject |
PlayMode | mLastPlayMode { PlayMode::normalPlay } |
bool | mTimerRecordCanceled { false } |
std::atomic< int > | mPaused { 0 } |
bool | mAppending { false } |
bool | mLooping { false } |
bool | mCutting { false } |
bool | mStopping { false } |
int | mDisplayedRate { 0 } |
Additional Inherited Members | |
![]() | |
using | message_type = RecordingDropoutEvent |
using | CallbackReturn = std::conditional_t< true, void, bool > |
using | Callback = std::function< CallbackReturn(const RecordingDropoutEvent &) > |
Type of functions that can be connected to the Publisher. More... | |
![]() | |
static constexpr bool | notifies_all |
![]() | |
CallbackReturn | Publish (const RecordingDropoutEvent &message) |
Send a message to connected callbacks. More... | |
Definition at line 60 of file ProjectAudioManager.h.
|
explicit |
Definition at line 65 of file ProjectAudioManager.cpp.
References ProjectFileIO::Get(), mCheckpointFailureSubcription, OnCheckpointFailure(), StatusWidthFunction(), and Observer::Publisher< Message, NotifyAll >::Subscribe().
ProjectAudioManager::ProjectAudioManager | ( | const ProjectAudioManager & | ) |
|
overridedefault |
|
inline |
Definition at line 97 of file ProjectAudioManager.h.
|
private |
Definition at line 1019 of file ProjectAudioManager.cpp.
References TrackList::ClearPendingTracks(), and TrackList::Get().
bool ProjectAudioManager::CanStopAudioStream | ( | ) | const |
Definition at line 1141 of file ProjectAudioManager.cpp.
References AudioIO::Get().
|
static |
Definition at line 562 of file ProjectAudioManager.cpp.
References AudioIORecordChannels, TrackList::Channels(), TrackList::Get(), Track::IsSelected(), RATE_NOT_SELECTED, and Setting< T >::Read().
Referenced by anonymous_namespace{TimerRecordDialog.cpp}::OnTimerRecord().
|
inline |
Definition at line 100 of file ProjectAudioManager.h.
void ProjectAudioManager::DoPlayStopSelect | ( | ) |
Definition at line 1266 of file ProjectAudioManager.cpp.
References AudioIO::Get().
bool ProjectAudioManager::DoPlayStopSelect | ( | bool | click, |
bool | shift | ||
) |
Definition at line 1210 of file ProjectAudioManager.cpp.
References AudioIO::Get(), ProjectAudioIO::Get(), ProjectHistory::Get(), ViewInfo::Get(), Scrubber::Get(), ProjectAudioIO::GetAudioIOToken(), and ProjectHistory::ModifyState().
Referenced by anonymous_namespace{TransportMenus.cpp}::OnPlayStopSelect().
bool ProjectAudioManager::DoRecord | ( | AudacityProject & | project, |
const TransportTracks & | transportTracks, | ||
double | t0, | ||
double | t1, | ||
bool | altAppearance, | ||
const AudioIOStartStreamOptions & | options | ||
) |
Definition at line 761 of file ProjectAudioManager.cpp.
References AlwaysEnabledFlag, AudioIONotBusyFlag(), AudioIORecordChannels, CanStopAudioStreamFlag(), TransportTracks::captureTracks, WaveTrackFactory::Create(), AudioIO::Get(), TrackFocus::Get(), ProjectAudioIO::Get(), TrackList::Get(), WaveTrackFactory::Get(), MenuManager::Get(), ProjectSettings::Get(), TrackView::Get(), WaveTrack::GetDefaultAudioTrackNamePreference(), ProjectSettings::GetTracksFitVerticallyZoomed(), gPrefs, make_iterator_range(), TrackList::MakeMultiChannelTrack(), name, ProjectFramePlacement(), Setting< T >::Read(), TrackList::RegisterPendingChangedTrack(), TrackList::RegisterPendingNewTrack(), WaveTrack::Reinit(), ProjectAudioIO::SetAudioIOToken(), TrackView::SetMinimized(), BasicUI::ShowErrorDialog(), size, MenuManager::TryToMakeActionAllowed(), TrackList::UpdatePendingTracks(), updater, wxT(), XC, and XO().
|
static |
Definition at line 53 of file ProjectAudioManager.cpp.
References sProjectAudioManagerKey.
Referenced by AdornedRulerPanel::ScrubbingHandle::Cancel(), CanStopAudioStreamFlag(), AdornedRulerPanel::ClearPlayRegion(), CloseButtonHandle::CommitChanges(), CommandDispatch::DoAudacityCommand(), EffectUI::DoEffect(), anonymous_namespace{TransportMenus.cpp}::DoMoveToLabel(), TransportUtilities::DoStopPlaying(), anonymous_namespace{DropoutDetector.cpp}::DropoutSubscription::DropoutSubscription(), ControlToolBar::EnableDisableButtons(), Get(), Scrubber::MarkScrubStart(), ProjectManager::New(), ProjectManager::OnCloseWindow(), ControlToolBar::OnFF(), ControlToolBar::OnIdle(), AudacityApp::OnKeyDown(), ControlToolBar::OnKeyEvent(), anonymous_namespace{TransportMenus.cpp}::OnPause(), ControlToolBar::OnPause(), EffectUIHost::OnPlay(), ControlToolBar::OnPlay(), anonymous_namespace{TransportMenus.cpp}::OnPlayStopSelect(), ControlToolBar::OnRecord(), ControlToolBar::OnRewind(), anonymous_namespace{TransportMenus.cpp}::OnStop(), ControlToolBar::OnStop(), MixerBoard::OnTimer(), PlayIndicatorOverlay::OnTimer(), TrackPanel::OnTimer(), anonymous_namespace{TimerRecordDialog.cpp}::OnTimerRecord(), TranscriptionToolBar::PlayAtSpeed(), TransportUtilities::PlayCurrentRegionAndWait(), ControlToolBar::PlayDefault(), TransportUtilities::PlayPlayRegionAndWait(), TransportUtilities::RecordAndWait(), TimerRecordDialog::RunWaitDialog(), AdornedRulerPanel::StartQPPlay(), ControlToolBar::StateForStatusBar(), StatusWidthFunction(), and EffectUIHost::StopPlayback().
|
static |
Definition at line 59 of file ProjectAudioManager.cpp.
References Get().
|
inline |
Definition at line 135 of file ProjectAudioManager.h.
Referenced by MixerBoard::OnTimer(), and PlayIndicatorOverlay::OnTimer().
|
inline |
Definition at line 82 of file ProjectAudioManager.h.
|
inline |
Definition at line 99 of file ProjectAudioManager.h.
|
overrideprivatevirtual |
Implements AudioIOListener.
Definition at line 1080 of file ProjectAudioManager.cpp.
References ProjectFileIO::Get().
|
overrideprivatevirtual |
Implements AudioIOListener.
Definition at line 1025 of file ProjectAudioManager.cpp.
References FormatRate(), ProjectStatus::Get(), rateStatusBarField, and ProjectStatus::Set().
|
overrideprivatevirtual |
Implements AudioIOListener.
Definition at line 1036 of file ProjectAudioManager.cpp.
|
overrideprivatevirtual |
Implements AudioIOListener.
Definition at line 1043 of file ProjectAudioManager.cpp.
References AudioIO::Get(), ProjectAudioIO::Get(), ProjectFileIO::Get(), ProjectHistory::Get(), AudioIoCallback::HasRecordingException(), NOAUTOSAVE, NONE, and XO().
|
private |
Definition at line 1114 of file ProjectAudioManager.cpp.
References CheckpointFailure.
Referenced by ProjectAudioManager().
|
overrideprivatevirtual |
Implements AudioIOListener.
Definition at line 1089 of file ProjectAudioManager.cpp.
References TrackList::ApplyPendingTracks(), and TrackList::Get().
void ProjectAudioManager::OnPause | ( | ) |
Definition at line 962 of file ProjectAudioManager.cpp.
References AudioIO::Get(), Scrubber::Get(), and ScrubState::IsScrubbing().
Referenced by anonymous_namespace{TransportMenus.cpp}::OnPause(), and ControlToolBar::OnPause().
void ProjectAudioManager::OnRecord | ( | bool | altAppearance | ) |
Definition at line 638 of file ProjectAudioManager.cpp.
References TrackList::Any(), AudacityMessageBox(), TransportTracks::captureTracks, PackedArray::end(), ViewInfo::Get(), TrackList::Get(), ProjectAudioIO::GetDefaultOptions(), Track::GetEndTime(), GetPropertiesOfSelected(), gPrefs, Track::IsSelected(), TransportTracks::playbackTracks, RATE_NOT_SELECTED, PropertiesOfSelected::rateOfSelected, ViewInfo::selectedRegion, NotifyingSelectedRegion::t0(), and XO().
Referenced by ControlToolBar::OnRecord(), and TimerRecordDialog::RunWaitDialog().
|
overrideprivatevirtual |
Implements AudioIOListener.
Definition at line 1095 of file ProjectAudioManager.cpp.
References AudioIO::Get().
ProjectAudioManager & ProjectAudioManager::operator= | ( | const ProjectAudioManager & | ) |
bool ProjectAudioManager::Paused | ( | ) | const |
Definition at line 1013 of file ProjectAudioManager.cpp.
void ProjectAudioManager::PlayCurrentRegion | ( | bool | newDefault = false , |
bool | cutpreview = false |
||
) |
newDefault | See ProjectAudioIO::GetDefaultOptions |
Definition at line 467 of file ProjectAudioManager.cpp.
References cutPreviewPlay, ViewInfo::Get(), ProjectAudioIO::GetDefaultOptions(), loopedPlay, normalPlay, and ViewInfo::playRegion.
Referenced by ControlToolBar::PlayDefault().
bool ProjectAudioManager::Playing | ( | ) | const |
Definition at line 1120 of file ProjectAudioManager.cpp.
References AudioIO::Get().
int ProjectAudioManager::PlayPlayRegion | ( | const SelectedRegion & | selectedRegion, |
const AudioIOStartStreamOptions & | options, | ||
PlayMode | playMode, | ||
bool | backwards = false |
||
) |
Definition at line 289 of file ProjectAudioManager.cpp.
References cutPreviewPlay, AudioIO::Get(), ProjectAudioIO::Get(), ViewInfo::Get(), TrackList::Get(), GetProjectFrame(), gPrefs, loopedPlay, min(), AudioIOStartStreamOptions::playNonWaveTracks, AudioIOStartStreamOptions::policyFactory, ProjectFramePlacement(), AudioIOStartStreamOptions::pStartTime, ViewInfo::selectedRegion, ProjectAudioIO::SetAudioIOToken(), BasicUI::ShowErrorDialog(), anonymous_namespace{NoteTrack.cpp}::swap(), SelectedRegion::t0(), SelectedRegion::t1(), wxT(), and XO().
bool ProjectAudioManager::Recording | ( | ) | const |
Definition at line 1132 of file ProjectAudioManager.cpp.
References AudioIO::Get().
|
inline |
Definition at line 84 of file ProjectAudioManager.h.
|
inlineprivate |
Definition at line 142 of file ProjectAudioManager.h.
|
inlineprivate |
Definition at line 144 of file ProjectAudioManager.h.
|
inlineprivate |
Definition at line 143 of file ProjectAudioManager.h.
|
private |
Definition at line 1008 of file ProjectAudioManager.cpp.
|
inlineprivate |
Definition at line 145 of file ProjectAudioManager.h.
|
inline |
Definition at line 83 of file ProjectAudioManager.h.
Referenced by anonymous_namespace{TimerRecordDialog.cpp}::OnTimerRecord().
|
staticprivate |
Definition at line 86 of file ProjectAudioManager.cpp.
References field, FormatRate(), Get(), and rateStatusBarField.
Referenced by ProjectAudioManager().
void ProjectAudioManager::Stop | ( | bool | stopStream = true | ) |
Definition at line 497 of file ProjectAudioManager.cpp.
References ToolBar::EnableDisableButtons(), AudioIO::Get(), ProjectAudioIO::Get(), ToolManager::Get(), Scrubber::Get(), ToolManager::GetToolBar(), and wxT().
Referenced by AdornedRulerPanel::ScrubbingHandle::Cancel(), AdornedRulerPanel::ClearPlayRegion(), CommandDispatch::DoAudacityCommand(), EffectUI::DoEffect(), ProjectManager::OnCloseWindow(), AudacityApp::OnKeyDown(), anonymous_namespace{TransportMenus.cpp}::OnStop(), and TimerRecordDialog::RunWaitDialog().
void ProjectAudioManager::StopIfPaused | ( | ) |
Definition at line 1204 of file ProjectAudioManager.cpp.
References AudioIOBase::Get().
Referenced by CloseButtonHandle::CommitChanges(), ControlToolBar::OnFF(), and ControlToolBar::OnRewind().
|
inline |
Definition at line 94 of file ProjectAudioManager.h.
|
private |
Definition at line 1003 of file ProjectAudioManager.cpp.
|
static |
|
private |
Definition at line 172 of file ProjectAudioManager.h.
|
private |
Definition at line 160 of file ProjectAudioManager.h.
Referenced by ProjectAudioManager().
|
private |
Definition at line 174 of file ProjectAudioManager.h.
|
private |
Definition at line 177 of file ProjectAudioManager.h.
|
private |
Definition at line 163 of file ProjectAudioManager.h.
|
private |
Definition at line 173 of file ProjectAudioManager.h.
|
private |
Definition at line 170 of file ProjectAudioManager.h.
|
private |
Definition at line 161 of file ProjectAudioManager.h.
|
private |
Definition at line 175 of file ProjectAudioManager.h.
|
private |
Definition at line 166 of file ProjectAudioManager.h.