Bug2159: Ruler play region should update when play/record stops
This commit is contained in:
parent
f5efb17046
commit
7969b5a9e9
|
@ -937,6 +937,9 @@ AdornedRulerPanel::AdornedRulerPanel(AudacityProject* project,
|
|||
wxTheApp->Bind(EVT_AUDIOIO_CAPTURE,
|
||||
&AdornedRulerPanel::OnRecordStartStop,
|
||||
this);
|
||||
wxTheApp->Bind(EVT_AUDIOIO_PLAYBACK,
|
||||
&AdornedRulerPanel::OnRecordStartStop,
|
||||
this);
|
||||
|
||||
// Delay until after CommandManager has been populated:
|
||||
this->CallAfter( &AdornedRulerPanel::UpdatePrefs );
|
||||
|
@ -1115,7 +1118,11 @@ namespace {
|
|||
void AdornedRulerPanel::OnIdle( wxIdleEvent &evt )
|
||||
{
|
||||
evt.Skip();
|
||||
DoIdle();
|
||||
}
|
||||
|
||||
void AdornedRulerPanel::DoIdle()
|
||||
{
|
||||
bool changed = UpdateRects();
|
||||
changed = SetPanelSize() || changed;
|
||||
|
||||
|
@ -1144,17 +1151,25 @@ void AdornedRulerPanel::OnRecordStartStop(wxCommandEvent & evt)
|
|||
{
|
||||
evt.Skip();
|
||||
|
||||
if (evt.GetInt() != 0)
|
||||
{
|
||||
mIsRecording = true;
|
||||
this->CellularPanel::CancelDragging( false );
|
||||
this->CellularPanel::ClearTargets();
|
||||
if ( evt.GetEventType() == EVT_AUDIOIO_CAPTURE ) {
|
||||
if (evt.GetInt() != 0)
|
||||
{
|
||||
mIsRecording = true;
|
||||
this->CellularPanel::CancelDragging( false );
|
||||
this->CellularPanel::ClearTargets();
|
||||
|
||||
UpdateButtonStates();
|
||||
UpdateButtonStates();
|
||||
}
|
||||
else {
|
||||
mIsRecording = false;
|
||||
UpdateButtonStates();
|
||||
}
|
||||
}
|
||||
else {
|
||||
mIsRecording = false;
|
||||
UpdateButtonStates();
|
||||
|
||||
if ( evt.GetInt() == 0 ) {
|
||||
// So that the play region is updated
|
||||
mLastDrawnSelectedRegion.setTimes( -1, -1 );
|
||||
DoIdle();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -79,6 +79,7 @@ public:
|
|||
|
||||
|
||||
private:
|
||||
void DoIdle();
|
||||
void OnIdle( wxIdleEvent &evt );
|
||||
void OnRecordStartStop(wxCommandEvent & evt);
|
||||
void OnPaint(wxPaintEvent &evt);
|
||||
|
|
|
@ -2220,22 +2220,6 @@ void AudioIO::StopStream()
|
|||
mPortStreamV19 = NULL;
|
||||
}
|
||||
|
||||
if (mNumPlaybackChannels > 0)
|
||||
{
|
||||
wxCommandEvent e(EVT_AUDIOIO_PLAYBACK);
|
||||
e.SetEventObject(mOwningProject);
|
||||
e.SetInt(false);
|
||||
wxTheApp->ProcessEvent(e);
|
||||
}
|
||||
|
||||
if (mNumCaptureChannels > 0)
|
||||
{
|
||||
wxCommandEvent e(mStreamToken == 0 ? EVT_AUDIOIO_MONITOR : EVT_AUDIOIO_CAPTURE);
|
||||
e.SetEventObject(mOwningProject);
|
||||
e.SetInt(false);
|
||||
wxTheApp->ProcessEvent(e);
|
||||
}
|
||||
|
||||
#ifdef EXPERIMENTAL_MIDI_OUT
|
||||
/* Stop Midi playback */
|
||||
if ( mMidiStream ) {
|
||||
|
@ -2384,6 +2368,22 @@ void AudioIO::StopStream()
|
|||
//
|
||||
mStreamToken = 0;
|
||||
|
||||
if (mNumPlaybackChannels > 0)
|
||||
{
|
||||
wxCommandEvent e(EVT_AUDIOIO_PLAYBACK);
|
||||
e.SetEventObject(mOwningProject);
|
||||
e.SetInt(false);
|
||||
wxTheApp->ProcessEvent(e);
|
||||
}
|
||||
|
||||
if (mNumCaptureChannels > 0)
|
||||
{
|
||||
wxCommandEvent e(mStreamToken == 0 ? EVT_AUDIOIO_MONITOR : EVT_AUDIOIO_CAPTURE);
|
||||
e.SetEventObject(mOwningProject);
|
||||
e.SetInt(false);
|
||||
wxTheApp->ProcessEvent(e);
|
||||
}
|
||||
|
||||
mNumCaptureChannels = 0;
|
||||
mNumPlaybackChannels = 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue