diff options
Diffstat (limited to 'libs/ardour/session_transport.cc')
-rw-r--r-- | libs/ardour/session_transport.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index 36e910374b..a632ae067d 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -576,7 +576,9 @@ Session::non_realtime_stop (bool abort, int on_entry, bool& finished) play_loop = false; } - PositionChanged ((nframes64_t) _transport_frame); /* EMIT SIGNAL */ + // can't cast away volatile so copy and emit that + nframes64_t tframe = _transport_frame; + PositionChanged (tframe); /* EMIT SIGNAL */ TransportStateChange (); /* EMIT SIGNAL */ /* and start it up again if relevant */ @@ -1402,7 +1404,9 @@ Session::engine_halted () void Session::xrun_recovery () { - Xrun ((nframes64_t)_transport_frame); //EMIT SIGNAL + // can't cast away volatile so copy and emit that + nframes64_t tframe = _transport_frame; + Xrun (tframe); //EMIT SIGNAL if (Config->get_stop_recording_on_xrun() && actively_recording()) { |