diff --git a/src/AudioIO.cpp b/src/AudioIO.cpp index 76af9979f..3c9344ff7 100644 --- a/src/AudioIO.cpp +++ b/src/AudioIO.cpp @@ -447,7 +447,6 @@ TimeTrack and AudioIOListener and whether the playback is looped. #include "AudacityApp.h" #include "AudacityException.h" #include "Mix.h" -#include "MixerBoard.h" #include "Resample.h" #include "RingBuffer.h" #include "prefs/GUISettings.h" @@ -2402,10 +2401,6 @@ void AudioIO::SetMeters() if (mOutputMeter) mOutputMeter->Reset(mRate, true); - MixerBoard* pMixerBoard = mOwningProject->GetMixerBoard(); - if (pMixerBoard) - pMixerBoard->ResetMeters(true); - mUpdateMeters = true; } @@ -2659,10 +2654,6 @@ void AudioIO::StopStream() if (mOutputMeter) mOutputMeter->Reset(mRate, false); - MixerBoard* pMixerBoard = mOwningProject->GetMixerBoard(); - if (pMixerBoard) - pMixerBoard->ResetMeters(false); - mInputMeter.Release(); mOutputMeter = NULL; mOwningProject = NULL; diff --git a/src/MixerBoard.cpp b/src/MixerBoard.cpp index cd1ab5d4b..eb1749d7b 100644 --- a/src/MixerBoard.cpp +++ b/src/MixerBoard.cpp @@ -925,6 +925,11 @@ MixerBoard::MixerBoard(AudacityProject* pProject, mProject->GetTracks()->Bind(EVT_TRACKLIST_TRACK_DATA_CHANGE, &MixerBoard::OnTrackChanged, this); + + wxTheApp->Connect(EVT_AUDIOIO_PLAYBACK, + wxCommandEventHandler(MixerBoard::OnStartStop), + NULL, + this); } @@ -1361,6 +1366,13 @@ void MixerBoard::OnTrackSetChanged(wxEvent &evt) Refresh(); } +void MixerBoard::OnStartStop(wxCommandEvent &evt) +{ + evt.Skip(); + bool start = evt.GetInt(); + ResetMeters( start ); +} + // class MixerBoardFrame BEGIN_EVENT_TABLE(MixerBoardFrame, wxFrame) diff --git a/src/MixerBoard.h b/src/MixerBoard.h index 8cda8cc1c..5ad4a8747 100644 --- a/src/MixerBoard.h +++ b/src/MixerBoard.h @@ -214,13 +214,12 @@ public: void RefreshTrackClusters(bool bEraseBackground = true); void ResizeTrackClusters(); - void ResetMeters(const bool bResetClipping); - void UpdateMeters(const double t1, const bool bLoopedPlay); void UpdateWidth(); private: + void ResetMeters(const bool bResetClipping); void RemoveTrackCluster(size_t nIndex); void MakeButtonBitmap( wxMemoryDC & dc, wxBitmap & bitmap, wxRect & bev, const wxString & str, bool up ); @@ -235,6 +234,7 @@ private: void OnTimer(wxCommandEvent &event); void OnTrackSetChanged(wxEvent &event); void OnTrackChanged(TrackListEvent &event); + void OnStartStop(wxCommandEvent &event); public: // mute & solo button images: Create once and store on MixerBoard for use in all MixerTrackClusters.