X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fplaytransport.C;h=a426ac79336e6509c098c5ce475413985bffad05;hb=4784a8d70bc39f9b7e467f93304d2df3f23fd2df;hp=85fe95a446a9252cd6d5bd935b8cfffc99c6cb0b;hpb=d66e2dde00fcfbe27c461a9956e66753faa62c95;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/playtransport.C b/cinelerra-5.1/cinelerra/playtransport.C index 85fe95a4..a426ac79 100644 --- a/cinelerra-5.1/cinelerra/playtransport.C +++ b/cinelerra-5.1/cinelerra/playtransport.C @@ -216,6 +216,9 @@ int PlayTransport::keypress_event() case STOP: command = NORMAL_FWD; break; + default: + command = STOP; + break; } break; default: @@ -254,6 +257,11 @@ void PlayTransport::handle_transport(int command, int prev_command = engine->command->command; int prev_direction = engine->command->get_direction(); int prev_single_frame = engine->command->single_frame(); + int prev_audio = engine->command->audio_toggle ? + !prev_single_frame : prev_single_frame; + int cur_single_frame = TransportCommand::single_frame(command); + int cur_audio = toggle_audio ? + !cur_single_frame : cur_single_frame; // Dispatch command switch(command) { @@ -265,8 +273,10 @@ void PlayTransport::handle_transport(int command, case SLOW_FWD: case NORMAL_FWD: case FAST_FWD: - if( prev_command == command && !prev_single_frame ) { -// Same direction pressed twice. Stop + if( !prev_single_frame && + prev_command == command && + cur_audio == prev_audio ) { +// Same direction pressed twice and no change in audio state, Stop do_stop = 1; break; }