int toggle_audio = subwindow->shift_down() ? 1 : 0;
int use_inout = subwindow->ctrl_down() ? 1 : 0;
+ int alt_key = subwindow->alt_down() ? 1 : 0;
int command = -1, prev_command = engine->command->command;
using_inout = use_inout;
subwindow->unlock_window();
+ result = 0;
switch( key ) {
- case 'k':
case KPINS: command = STOP; break;
case KPPLUS: command = FAST_REWIND; break;
case KP6: command = NORMAL_REWIND; break;
break;
}
break;
- default:
- result = 0;
+ case 'u': case 'U':
+ if( alt_key ) command = SINGLE_FRAME_REWIND;
+ break;
+ case 'i': case 'I':
+ if( alt_key ) command = SLOW_REWIND;
+ break;
+ case 'o': case 'O':
+ if( alt_key ) command = NORMAL_REWIND;
+ break;
+ case 'p': case 'P':
+ if( alt_key ) command = FAST_REWIND;
+ break;
+ case 'j': case 'J':
+ if( alt_key ) command = SINGLE_FRAME_FWD;
+ break;
+ case 'k': case 'K':
+ if( alt_key ) command = SLOW_FWD;
+ break;
+ case 'l': case 'L':
+ if( alt_key ) command = NORMAL_FWD;
+ break;
+ case ':': case ';':
+ if( alt_key ) command = FAST_FWD;
+ break;
+ case 'm': case 'M':
+ if( alt_key ) command = STOP;
break;
}
- if( command >= 0 )
+ if( command >= 0 ) {
handle_transport(command, 0, use_inout, 1, toggle_audio);
+ result = 1;
+ }
subwindow->lock_window("PlayTransport::keypress_event 5");
return result;
// Resume or change direction
switch( prev_command ) {
default:
- engine->que->send_command(STOP, CHANGE_NONE, 0, 0, 0, 0);
+ engine->que->send_command(STOP, CHANGE_NONE, 0, 0);
engine->interrupt_playback(wait_tracking);
resume = 1;
// fall through
case SINGLE_FRAME_REWIND:
// Start from scratch
engine->que->send_command(command, CHANGE_NONE, get_edl(),
- 1, resume, use_inout, toggle_audio);
+ 1, resume, use_inout, toggle_audio,
+ mwindow->preferences->forward_render_displacement);
break;
}
break;
// Commands that stop
case STOP:
- do_stop = 1;
- break;
-
case REWIND:
case GOTO_END:
- engine->que->send_command(STOP, CHANGE_NONE, 0, 0, 0, 0);
- engine->interrupt_playback(wait_tracking);
- break;
+ do_stop = 1;
+ break;
}
if( do_stop ) {
- engine->que->send_command(STOP, CHANGE_NONE, 0, 0, 0, 0);
+ engine->que->send_command(STOP, CHANGE_NONE, 0, 0);
engine->interrupt_playback(wait_tracking);
}
}
// stop transport
if( prev_command != STOP && prev_command != COMMAND_NONE &&
prev_command != SINGLE_FRAME_FWD && prev_command != SINGLE_FRAME_REWIND ) {
- engine->que->send_command(STOP, CHANGE_NONE, 0, 0, 0, 0);
+ engine->que->send_command(STOP, CHANGE_NONE, 0, 0);
engine->interrupt_playback(0);
}
mwindow->gui->lock_window("PlayTransport::change_position");
case NORMAL_FWD:
case FAST_FWD:
engine->que->send_command(prev_command, CHANGE_NONE,
- get_edl(), 1, 1, using_inout);
+ get_edl(), 1, 1, using_inout, 0);
}
}