1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-23 17:30:17 +01:00

New files for ProjectAudioIO

This commit is contained in:
Paul Licameli
2019-05-29 11:37:47 -04:00
parent 1f4202c878
commit e5cf2165d1
35 changed files with 216 additions and 122 deletions

86
src/ProjectAudioIO.cpp Normal file
View File

@@ -0,0 +1,86 @@
/**********************************************************************
Audacity: A Digital Audio Editor
ProjectAudioIO.cpp
Paul Licameli split from AudacityProject.cpp
**********************************************************************/
#include "ProjectAudioIO.h"
#include "AudioIO.h"
#include "Project.h"
static const AudacityProject::AttachedObjects::RegisteredFactory sAudioIOKey{
[]( AudacityProject &parent ){
return std::make_shared< ProjectAudioIO >( parent );
}
};
ProjectAudioIO &ProjectAudioIO::Get( AudacityProject &project )
{
return project.AttachedObjects::Get< ProjectAudioIO >( sAudioIOKey );
}
const ProjectAudioIO &ProjectAudioIO::Get( const AudacityProject &project )
{
return Get( const_cast<AudacityProject &>(project) );
}
ProjectAudioIO::ProjectAudioIO( AudacityProject &project )
: mProject{ project }
{
}
ProjectAudioIO::~ProjectAudioIO()
{
}
int ProjectAudioIO::GetAudioIOToken() const
{
return mAudioIOToken;
}
void ProjectAudioIO::SetAudioIOToken(int token)
{
mAudioIOToken = token;
}
bool ProjectAudioIO::IsAudioActive() const
{
return GetAudioIOToken() > 0 &&
gAudioIO->IsStreamActive(GetAudioIOToken());
}
MeterPanel *ProjectAudioIO::GetPlaybackMeter()
{
return mPlaybackMeter;
}
void ProjectAudioIO::SetPlaybackMeter(MeterPanel *playback)
{
auto &project = mProject;
mPlaybackMeter = playback;
if (gAudioIO)
{
gAudioIO->SetPlaybackMeter( &project , mPlaybackMeter );
}
}
MeterPanel *ProjectAudioIO::GetCaptureMeter()
{
return mCaptureMeter;
}
void ProjectAudioIO::SetCaptureMeter(MeterPanel *capture)
{
auto &project = mProject;
mCaptureMeter = capture;
if (gAudioIO)
{
gAudioIO->SetCaptureMeter( &project, mCaptureMeter );
}
}