Audacity 3.2.0
Classes | Typedefs | Enumerations | Functions | Variables
ProjectAudioManager.h File Reference
#include <memory>
#include <vector>
#include "AudioIOListener.h"
#include "ClientData.h"
#include "Observer.h"
#include <atomic>
#include "CommandFlag.h"
Include dependency graph for ProjectAudioManager.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  RecordingDropoutEvent
 Notification, after recording has stopped, when dropouts have been detected. More...
 
class  ProjectAudioManager
 
struct  PropertiesOfSelected
 

Typedefs

using WritableSampleTrackArray = std::vector< std::shared_ptr< WritableSampleTrack > >
 
using StatusBarField = Identifier
 

Enumerations

enum class  PlayMode : int { normalPlay , oneSecondPlay , loopedPlay , cutPreviewPlay }
 

Functions

AudioIOStartStreamOptions DefaultSpeedPlayOptions (AudacityProject &project)
 
AUDACITY_DLL_API PropertiesOfSelected GetPropertiesOfSelected (const AudacityProject &proj)
 
AUDACITY_DLL_API const ReservedCommandFlagCanStopAudioStreamFlag ()
 

Variables

constexpr int RATE_NOT_SELECTED { -1 }
 

Typedef Documentation

◆ StatusBarField

Definition at line 43 of file ProjectAudioManager.h.

◆ WritableSampleTrackArray

using WritableSampleTrackArray = std::vector< std::shared_ptr< WritableSampleTrack > >

Definition at line 31 of file ProjectAudioManager.h.

Enumeration Type Documentation

◆ PlayMode

enum class PlayMode : int
strong
Enumerator
normalPlay 
oneSecondPlay 
loopedPlay 
cutPreviewPlay 

Definition at line 34 of file ProjectAudioManager.h.

34 : int {
36 oneSecondPlay, // Disables auto-scrolling
37 loopedPlay, // Possibly looped play (not always); disables auto-scrolling
39};
@ cutPreviewPlay

Function Documentation

◆ CanStopAudioStreamFlag()

AUDACITY_DLL_API const ReservedCommandFlag & CanStopAudioStreamFlag ( )

Definition at line 1194 of file ProjectAudioManager.cpp.

1194 { static ReservedCommandFlag flag{
1195 [](const AudacityProject &project){
1196 auto &projectAudioManager = ProjectAudioManager::Get( project );
1197 bool canStop = projectAudioManager.CanStopAudioStream();
1198 return canStop;
1199 }
1200 }; return flag; }
const auto project
static std::once_flag flag
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
Definition: Project.h:90
static ProjectAudioManager & Get(AudacityProject &project)

References flag, ProjectAudioManager::Get(), and project.

Referenced by anonymous_namespace{SelectMenus.cpp}::CursorMenu(), ProjectAudioManager::DoRecord(), anonymous_namespace{TransportMenus.cpp}::ExtraTransportMenu(), anonymous_namespace{Scrubbing.cpp}::KeyboardScrubbingItems(), and anonymous_namespace{TransportMenus.cpp}::TransportMenu().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DefaultSpeedPlayOptions()

AudioIOStartStreamOptions DefaultSpeedPlayOptions ( AudacityProject project)

Definition at line 1234 of file ProjectAudioManager.cpp.

1235{
1237 auto gAudioIO = AudioIO::Get();
1238 auto PlayAtSpeedRate = gAudioIO->GetBestRate(
1239 false, //not capturing
1240 true, //is playing
1241 ProjectRate::Get( project ).GetRate() //suggested rate
1242 );
1243 result.rate = PlayAtSpeedRate;
1244 return result;
1245}
static AudioIO * Get()
Definition: AudioIO.cpp:126
static AudioIOStartStreamOptions GetDefaultOptions(AudacityProject &project, bool newDefaults=false)
Invoke the global hook, supplying a default argument.
static ProjectRate & Get(AudacityProject &project)
Definition: ProjectRate.cpp:28
double GetRate(const Track &track)
Definition: TimeTrack.cpp:182

References AudioIO::Get(), ProjectRate::Get(), ProjectAudioIO::GetDefaultOptions(), anonymous_namespace{TimeTrack.cpp}::GetRate(), and project.

Referenced by Scrubber::StartKeyboardScrubbing().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetPropertiesOfSelected()

AUDACITY_DLL_API PropertiesOfSelected GetPropertiesOfSelected ( const AudacityProject proj)

Definition at line 1337 of file ProjectAudioManager.cpp.

1338{
1339 double rateOfSelection{ RATE_NOT_SELECTED };
1340
1341 PropertiesOfSelected result;
1342 result.allSameRate = true;
1343
1344 const auto selectedTracks{
1345 TrackList::Get(proj).Selected<const WaveTrack>() };
1346
1347 for (const auto & track : selectedTracks) {
1348 if (rateOfSelection != RATE_NOT_SELECTED &&
1349 track->GetRate() != rateOfSelection)
1350 result.allSameRate = false;
1351 else if (rateOfSelection == RATE_NOT_SELECTED)
1352 rateOfSelection = track->GetRate();
1353 }
1354
1355 result.anySelected = !selectedTracks.empty();
1356 result.rateOfSelected = rateOfSelection;
1357
1358 return result;
1359}
constexpr int RATE_NOT_SELECTED
static TrackList & Get(AudacityProject &project)
Definition: Track.cpp:314
auto Selected() -> TrackIterRange< TrackType >
Definition: Track.h:967
A Track that contains audio waveform data.
Definition: WaveTrack.h:203

References PropertiesOfSelected::allSameRate, PropertiesOfSelected::anySelected, TrackList::Get(), RATE_NOT_SELECTED, PropertiesOfSelected::rateOfSelected, and TrackList::Selected().

Referenced by anonymous_namespace{TransportMenus.cpp}::OnPunchAndRoll(), ProjectAudioManager::OnRecord(), and anonymous_namespace{TimerRecordDialog.cpp}::OnTimerRecord().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ RATE_NOT_SELECTED

constexpr int RATE_NOT_SELECTED { -1 }
constexpr