mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-07 07:39:29 +02:00
Mixerboard uses events to detect start and stop of playback
This commit is contained in:
parent
1fc4c5724e
commit
723cecbeac
@ -447,7 +447,6 @@ TimeTrack and AudioIOListener and whether the playback is looped.
|
|||||||
#include "AudacityApp.h"
|
#include "AudacityApp.h"
|
||||||
#include "AudacityException.h"
|
#include "AudacityException.h"
|
||||||
#include "Mix.h"
|
#include "Mix.h"
|
||||||
#include "MixerBoard.h"
|
|
||||||
#include "Resample.h"
|
#include "Resample.h"
|
||||||
#include "RingBuffer.h"
|
#include "RingBuffer.h"
|
||||||
#include "prefs/GUISettings.h"
|
#include "prefs/GUISettings.h"
|
||||||
@ -2402,10 +2401,6 @@ void AudioIO::SetMeters()
|
|||||||
if (mOutputMeter)
|
if (mOutputMeter)
|
||||||
mOutputMeter->Reset(mRate, true);
|
mOutputMeter->Reset(mRate, true);
|
||||||
|
|
||||||
MixerBoard* pMixerBoard = mOwningProject->GetMixerBoard();
|
|
||||||
if (pMixerBoard)
|
|
||||||
pMixerBoard->ResetMeters(true);
|
|
||||||
|
|
||||||
mUpdateMeters = true;
|
mUpdateMeters = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2659,10 +2654,6 @@ void AudioIO::StopStream()
|
|||||||
if (mOutputMeter)
|
if (mOutputMeter)
|
||||||
mOutputMeter->Reset(mRate, false);
|
mOutputMeter->Reset(mRate, false);
|
||||||
|
|
||||||
MixerBoard* pMixerBoard = mOwningProject->GetMixerBoard();
|
|
||||||
if (pMixerBoard)
|
|
||||||
pMixerBoard->ResetMeters(false);
|
|
||||||
|
|
||||||
mInputMeter.Release();
|
mInputMeter.Release();
|
||||||
mOutputMeter = NULL;
|
mOutputMeter = NULL;
|
||||||
mOwningProject = NULL;
|
mOwningProject = NULL;
|
||||||
|
@ -925,6 +925,11 @@ MixerBoard::MixerBoard(AudacityProject* pProject,
|
|||||||
mProject->GetTracks()->Bind(EVT_TRACKLIST_TRACK_DATA_CHANGE,
|
mProject->GetTracks()->Bind(EVT_TRACKLIST_TRACK_DATA_CHANGE,
|
||||||
&MixerBoard::OnTrackChanged,
|
&MixerBoard::OnTrackChanged,
|
||||||
this);
|
this);
|
||||||
|
|
||||||
|
wxTheApp->Connect(EVT_AUDIOIO_PLAYBACK,
|
||||||
|
wxCommandEventHandler(MixerBoard::OnStartStop),
|
||||||
|
NULL,
|
||||||
|
this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1361,6 +1366,13 @@ void MixerBoard::OnTrackSetChanged(wxEvent &evt)
|
|||||||
Refresh();
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MixerBoard::OnStartStop(wxCommandEvent &evt)
|
||||||
|
{
|
||||||
|
evt.Skip();
|
||||||
|
bool start = evt.GetInt();
|
||||||
|
ResetMeters( start );
|
||||||
|
}
|
||||||
|
|
||||||
// class MixerBoardFrame
|
// class MixerBoardFrame
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE(MixerBoardFrame, wxFrame)
|
BEGIN_EVENT_TABLE(MixerBoardFrame, wxFrame)
|
||||||
|
@ -214,13 +214,12 @@ public:
|
|||||||
void RefreshTrackClusters(bool bEraseBackground = true);
|
void RefreshTrackClusters(bool bEraseBackground = true);
|
||||||
void ResizeTrackClusters();
|
void ResizeTrackClusters();
|
||||||
|
|
||||||
void ResetMeters(const bool bResetClipping);
|
|
||||||
|
|
||||||
void UpdateMeters(const double t1, const bool bLoopedPlay);
|
void UpdateMeters(const double t1, const bool bLoopedPlay);
|
||||||
|
|
||||||
void UpdateWidth();
|
void UpdateWidth();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void ResetMeters(const bool bResetClipping);
|
||||||
void RemoveTrackCluster(size_t nIndex);
|
void RemoveTrackCluster(size_t nIndex);
|
||||||
void MakeButtonBitmap( wxMemoryDC & dc, wxBitmap & bitmap,
|
void MakeButtonBitmap( wxMemoryDC & dc, wxBitmap & bitmap,
|
||||||
wxRect & bev, const wxString & str, bool up );
|
wxRect & bev, const wxString & str, bool up );
|
||||||
@ -235,6 +234,7 @@ private:
|
|||||||
void OnTimer(wxCommandEvent &event);
|
void OnTimer(wxCommandEvent &event);
|
||||||
void OnTrackSetChanged(wxEvent &event);
|
void OnTrackSetChanged(wxEvent &event);
|
||||||
void OnTrackChanged(TrackListEvent &event);
|
void OnTrackChanged(TrackListEvent &event);
|
||||||
|
void OnStartStop(wxCommandEvent &event);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// mute & solo button images: Create once and store on MixerBoard for use in all MixerTrackClusters.
|
// mute & solo button images: Create once and store on MixerBoard for use in all MixerTrackClusters.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user