mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-16 08:09:32 +02:00
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,
|
wxTheApp->Bind(EVT_AUDIOIO_CAPTURE,
|
||||||
&AdornedRulerPanel::OnRecordStartStop,
|
&AdornedRulerPanel::OnRecordStartStop,
|
||||||
this);
|
this);
|
||||||
|
wxTheApp->Bind(EVT_AUDIOIO_PLAYBACK,
|
||||||
|
&AdornedRulerPanel::OnRecordStartStop,
|
||||||
|
this);
|
||||||
|
|
||||||
// Delay until after CommandManager has been populated:
|
// Delay until after CommandManager has been populated:
|
||||||
this->CallAfter( &AdornedRulerPanel::UpdatePrefs );
|
this->CallAfter( &AdornedRulerPanel::UpdatePrefs );
|
||||||
@ -1115,7 +1118,11 @@ namespace {
|
|||||||
void AdornedRulerPanel::OnIdle( wxIdleEvent &evt )
|
void AdornedRulerPanel::OnIdle( wxIdleEvent &evt )
|
||||||
{
|
{
|
||||||
evt.Skip();
|
evt.Skip();
|
||||||
|
DoIdle();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AdornedRulerPanel::DoIdle()
|
||||||
|
{
|
||||||
bool changed = UpdateRects();
|
bool changed = UpdateRects();
|
||||||
changed = SetPanelSize() || changed;
|
changed = SetPanelSize() || changed;
|
||||||
|
|
||||||
@ -1144,6 +1151,7 @@ void AdornedRulerPanel::OnRecordStartStop(wxCommandEvent & evt)
|
|||||||
{
|
{
|
||||||
evt.Skip();
|
evt.Skip();
|
||||||
|
|
||||||
|
if ( evt.GetEventType() == EVT_AUDIOIO_CAPTURE ) {
|
||||||
if (evt.GetInt() != 0)
|
if (evt.GetInt() != 0)
|
||||||
{
|
{
|
||||||
mIsRecording = true;
|
mIsRecording = true;
|
||||||
@ -1158,6 +1166,13 @@ void AdornedRulerPanel::OnRecordStartStop(wxCommandEvent & evt)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( evt.GetInt() == 0 ) {
|
||||||
|
// So that the play region is updated
|
||||||
|
mLastDrawnSelectedRegion.setTimes( -1, -1 );
|
||||||
|
DoIdle();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void AdornedRulerPanel::OnPaint(wxPaintEvent & WXUNUSED(evt))
|
void AdornedRulerPanel::OnPaint(wxPaintEvent & WXUNUSED(evt))
|
||||||
{
|
{
|
||||||
auto &viewInfo = ViewInfo::Get( *GetProject() );
|
auto &viewInfo = ViewInfo::Get( *GetProject() );
|
||||||
|
@ -79,6 +79,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void DoIdle();
|
||||||
void OnIdle( wxIdleEvent &evt );
|
void OnIdle( wxIdleEvent &evt );
|
||||||
void OnRecordStartStop(wxCommandEvent & evt);
|
void OnRecordStartStop(wxCommandEvent & evt);
|
||||||
void OnPaint(wxPaintEvent &evt);
|
void OnPaint(wxPaintEvent &evt);
|
||||||
|
@ -2220,22 +2220,6 @@ void AudioIO::StopStream()
|
|||||||
mPortStreamV19 = NULL;
|
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
|
#ifdef EXPERIMENTAL_MIDI_OUT
|
||||||
/* Stop Midi playback */
|
/* Stop Midi playback */
|
||||||
if ( mMidiStream ) {
|
if ( mMidiStream ) {
|
||||||
@ -2384,6 +2368,22 @@ void AudioIO::StopStream()
|
|||||||
//
|
//
|
||||||
mStreamToken = 0;
|
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;
|
mNumCaptureChannels = 0;
|
||||||
mNumPlaybackChannels = 0;
|
mNumPlaybackChannels = 0;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user