X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fplaybackengine.C;h=8ce98234c3ffc7ed2b0ed6e4c00b4f6e3fa749ee;hb=9a75aafbc51be29b49351a51e9084bb34d255c0d;hp=83bd3efa9027cbc000f2436c9f86d4d381a58682;hpb=f377b3322b0c0cdf4b39abadac9ff528fa6ff70c;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/playbackengine.C b/cinelerra-5.1/cinelerra/playbackengine.C index 83bd3efa..8ce98234 100644 --- a/cinelerra-5.1/cinelerra/playbackengine.C +++ b/cinelerra-5.1/cinelerra/playbackengine.C @@ -258,8 +258,9 @@ void PlaybackEngine::init_tracking() init_meters(); } -void PlaybackEngine::stop_tracking() +void PlaybackEngine::stop_tracking(double position) { + tracking_position = position; tracking_active = 0; stop_cursor(); tracking_done->unlock(); @@ -468,7 +469,6 @@ void PlaybackEngine::send_command(int command, EDL *edl, int wait_tracking, int int single_frame = TransportCommand::single_frame(command); int next_audio = next_command->toggle_audio ? !single_frame : single_frame; float next_speed = next_command->speed; - int cmd = -1; // Dispatch command switch( command ) { case STOP: @@ -510,17 +510,16 @@ void PlaybackEngine::send_command(int command, EDL *edl, int wait_tracking, int break; } next_command->realtime = 1; - cmd = command; + transport_command(command, CHANGE_NONE, edl, use_inout); break; case REWIND: case GOTO_END: transport_stop(1); next_command->realtime = 1; - cmd = command; + transport_command(command, CHANGE_NONE, edl, use_inout); + stop_tracking(this->command->playbackstart); break; } - if( cmd >= 0 ) - transport_command(cmd, CHANGE_NONE, edl, use_inout); } int PlaybackEngine::put_command(TransportCommand *command, int reset)