1
0
Fork 0

Fix playback duration during replay

Fixes #1856
Playback starts at endTime - duration if checkbox is set to active. Duration and checkbox status will be saved for umcoming sessions.
This commit is contained in:
Lars Toenning 2020-03-25 17:16:29 +01:00
parent 7811b11565
commit d4b1e42b83
No known key found for this signature in database
GPG key ID: 2A71682E370414AF
2 changed files with 10 additions and 8 deletions

View file

@ -139,12 +139,13 @@ FGReplay::clear()
void
FGReplay::init()
{
disable_replay = fgGetNode("/sim/replay/disable", true);
replay_master = fgGetNode("/sim/replay/replay-state", true);
replay_time = fgGetNode("/sim/replay/time", true);
replay_time_str = fgGetNode("/sim/replay/time-str", true);
replay_looped = fgGetNode("/sim/replay/looped", true);
speed_up = fgGetNode("/sim/speed-up", true);
disable_replay = fgGetNode("/sim/replay/disable", true);
replay_master = fgGetNode("/sim/replay/replay-state", true);
replay_time = fgGetNode("/sim/replay/time", true);
replay_time_str = fgGetNode("/sim/replay/time-str", true);
replay_looped = fgGetNode("/sim/replay/looped", true);
replay_duration_act = fgGetNode("/sim/replay/duration-act", true);
speed_up = fgGetNode("/sim/speed-up", true);
// alias to keep backward compatibility
fgGetNode("/sim/freeze/replay-state", true)->alias(replay_master);
@ -431,8 +432,8 @@ FGReplay::update( double dt )
fgSetDouble( "/sim/replay/start-time", startTime );
fgSetDouble( "/sim/replay/end-time", endTime );
double duration = 0;
if (replay_looped->getBoolValue())
fgGetDouble("/sim/replay/duration");
if (replay_duration_act->getBoolValue())
duration = fgGetDouble("/sim/replay/duration");
if( duration && (duration < (endTime - startTime)) ) {
current_time = endTime - duration;
} else {

View file

@ -118,6 +118,7 @@ private:
SGPropertyNode_ptr replay_time;
SGPropertyNode_ptr replay_time_str;
SGPropertyNode_ptr replay_looped;
SGPropertyNode_ptr replay_duration_act;
SGPropertyNode_ptr speed_up;
double m_high_res_time; // default: 60 secs of high res data