mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-03 12:19:33 +01:00
Fix loop range changes while playing - #8001
Since ead883302f, it is no longer possible to use a null
pointer SessionEvent::track as flag to indicate overriding all
buffers.
This commit is contained in:
parent
68ecf6c0b3
commit
fc34626e50
4 changed files with 10 additions and 3 deletions
|
|
@ -53,6 +53,7 @@ public:
|
|||
RangeStop,
|
||||
RangeLocate,
|
||||
Overwrite,
|
||||
OverwriteAll,
|
||||
Audition,
|
||||
SetPlayAudioRange,
|
||||
CancelPlayAudioRange,
|
||||
|
|
|
|||
|
|
@ -1549,9 +1549,10 @@ Session::auto_loop_changed (Location* location)
|
|||
|
||||
} else {
|
||||
|
||||
// schedule a buffer overwrite to refill buffers with the new loop.
|
||||
|
||||
request_overwrite_buffer (boost::shared_ptr<Track>(), LoopChanged);
|
||||
/* schedule a buffer overwrite to refill buffers with the new loop. */
|
||||
SessionEvent *ev = new SessionEvent (SessionEvent::OverwriteAll, SessionEvent::Add, SessionEvent::Immediate, 0, 0, 0.0);
|
||||
ev->overwrite = LoopChanged;
|
||||
queue_event (ev);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -79,6 +79,7 @@ Session::schedule_capture_buffering_adjustment ()
|
|||
void
|
||||
Session::request_overwrite_buffer (boost::shared_ptr<Track> t, OverwriteReason why)
|
||||
{
|
||||
assert (t);
|
||||
SessionEvent *ev = new SessionEvent (SessionEvent::Overwrite, SessionEvent::Add, SessionEvent::Immediate, 0, 0, 0.0);
|
||||
ev->set_track (t);
|
||||
ev->overwrite = why;
|
||||
|
|
|
|||
|
|
@ -954,6 +954,10 @@ Session::process_event (SessionEvent* ev)
|
|||
}
|
||||
break;
|
||||
|
||||
case SessionEvent::OverwriteAll:
|
||||
overwrite_some_buffers (boost::shared_ptr<Track>(), ev->overwrite);
|
||||
break;
|
||||
|
||||
case SessionEvent::Audition:
|
||||
set_audition (ev->region);
|
||||
// drop reference to region
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue