mirror of
https://github.com/cookiengineer/audacity
synced 2026-03-06 14:35:32 +01:00
New attached structure ProjectAudioIO handles tokens and meters
This commit is contained in:
@@ -199,9 +199,6 @@ class AUDACITY_DLL_API AudacityProject final : public wxFrame,
|
||||
void SetPlayRegionLocked(bool value) { mLockPlayRegion = value; }
|
||||
|
||||
wxString GetProjectName() const;
|
||||
int GetAudioIOToken() const;
|
||||
bool IsAudioActive() const;
|
||||
void SetAudioIOToken(int token);
|
||||
|
||||
bool IsActive() override;
|
||||
|
||||
@@ -371,11 +368,6 @@ public:
|
||||
bool TP_ScrollUpDown(int delta) override;
|
||||
void TP_HandleResize() override;
|
||||
|
||||
MeterPanel *GetPlaybackMeter();
|
||||
void SetPlaybackMeter(MeterPanel *playback);
|
||||
MeterPanel *GetCaptureMeter();
|
||||
void SetCaptureMeter(MeterPanel *capture);
|
||||
|
||||
const wxString &GetStatus() const { return mLastMainStatusMessage; }
|
||||
void SetStatus(const wxString &msg);
|
||||
|
||||
@@ -484,10 +476,6 @@ private:
|
||||
|
||||
bool mShownOnce{ false };
|
||||
|
||||
// Project owned meters
|
||||
MeterPanel *mPlaybackMeter{};
|
||||
MeterPanel *mCaptureMeter{};
|
||||
|
||||
public:
|
||||
bool mbBusyImporting{ false }; // used to fix bug 584
|
||||
int mBatchMode{ 0 };// 0 means not, >0 means in batch mode.
|
||||
@@ -500,8 +488,6 @@ private:
|
||||
void ResetTimerRecordCancelled(){mTimerRecordCanceled=false;}
|
||||
|
||||
private:
|
||||
int mAudioIOToken{ -1 };
|
||||
|
||||
bool mIsDeleting{ false };
|
||||
|
||||
public:
|
||||
@@ -599,6 +585,35 @@ inline const wxFrame *FindProjectFrame( const AudacityProject *project ) {
|
||||
return project ? &GetProjectFrame( *project ) : nullptr;
|
||||
}
|
||||
|
||||
class ProjectAudioIO final
|
||||
: public ClientData::Base
|
||||
{
|
||||
public:
|
||||
static ProjectAudioIO &Get( AudacityProject &project );
|
||||
static const ProjectAudioIO &Get( const AudacityProject &project );
|
||||
|
||||
explicit ProjectAudioIO( AudacityProject &project );
|
||||
~ProjectAudioIO();
|
||||
|
||||
int GetAudioIOToken() const;
|
||||
bool IsAudioActive() const;
|
||||
void SetAudioIOToken(int token);
|
||||
|
||||
MeterPanel *GetPlaybackMeter();
|
||||
void SetPlaybackMeter(MeterPanel *playback);
|
||||
MeterPanel *GetCaptureMeter();
|
||||
void SetCaptureMeter(MeterPanel *capture);
|
||||
|
||||
private:
|
||||
AudacityProject &mProject;
|
||||
|
||||
// Project owned meters
|
||||
MeterPanel *mPlaybackMeter{};
|
||||
MeterPanel *mCaptureMeter{};
|
||||
|
||||
int mAudioIOToken{ -1 };
|
||||
};
|
||||
|
||||
AudioIOStartStreamOptions DefaultPlayOptions( AudacityProject &project );
|
||||
AudioIOStartStreamOptions DefaultSpeedPlayOptions( AudacityProject &project );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user