- else if( i_action == ACTIONID_CROP_TOP && p_vout )
- var_IncInteger( p_vout, "crop-top" );
- else if( i_action == ACTIONID_UNCROP_TOP && p_vout )
- var_DecInteger( p_vout, "crop-top" );
- else if( i_action == ACTIONID_CROP_BOTTOM && p_vout )
- var_IncInteger( p_vout, "crop-bottom" );
- else if( i_action == ACTIONID_UNCROP_BOTTOM && p_vout )
- var_DecInteger( p_vout, "crop-bottom" );
- else if( i_action == ACTIONID_CROP_LEFT && p_vout )
- var_IncInteger( p_vout, "crop-left" );
- else if( i_action == ACTIONID_UNCROP_LEFT && p_vout )
- var_DecInteger( p_vout, "crop-left" );
- else if( i_action == ACTIONID_CROP_RIGHT && p_vout )
- var_IncInteger( p_vout, "crop-right" );
- else if( i_action == ACTIONID_UNCROP_RIGHT && p_vout )
- var_DecInteger( p_vout, "crop-right" );
-
- else if( i_action == ACTIONID_NEXT )
- {
- vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN, _("Next") );
- playlist_Next( p_playlist );
- }
- else if( i_action == ACTIONID_PREV )
- {
- vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN,
- _("Previous") );
- playlist_Prev( p_playlist );
- }
- else if( i_action == ACTIONID_STOP )
- {
- playlist_Stop( p_playlist );
- }
- else if( i_action == ACTIONID_FRAME_NEXT )
- {
- var_SetVoid( p_input, "frame-next" );
- vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN,
- _("Next frame") );
- }
- else if( i_action == ACTIONID_FASTER )
- {
- var_SetVoid( p_input, "rate-faster" );
- vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN,
- _("Faster") );
- }
- else if( i_action == ACTIONID_SLOWER )
- {
- var_SetVoid( p_input, "rate-slower" );
- vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN,
- _("Slower") );
- }
- else if( i_action == ACTIONID_RATE_NORMAL )
- {
- var_SetInteger( p_input, "rate", INPUT_RATE_DEFAULT );
- vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN,
- _("1.00x") );
- }
- else if( i_action == ACTIONID_RATE_FASTER_FINE ||
- i_action == ACTIONID_RATE_SLOWER_FINE )
- {
- /* The playback rate is defined by INPUT_RATE_DEFAULT / "rate"
- * and we want to increase/decrease it by 0.1 while making sure
- * that the resulting playback rate is a multiple of 0.1
- */
- int i_rate = var_GetInteger( p_input, "rate" );
- if( i_rate == 0 )
- i_rate = INPUT_RATE_MIN;
- int i_sign = i_rate < 0 ? -1 : 1;
- const int i_dir = i_action == ACTIONID_RATE_FASTER_FINE ? 1 : -1;
-
- const double f_speed = floor( ( (double)INPUT_RATE_DEFAULT / abs(i_rate) + 0.05 ) / 0.1 + i_dir ) * 0.1;
- if( f_speed <= (double)INPUT_RATE_DEFAULT / INPUT_RATE_MAX ) /* Needed to avoid infinity */
- i_rate = INPUT_RATE_MAX;
- else
- i_rate = INPUT_RATE_DEFAULT / f_speed + 0.5;
-
- i_rate = i_sign * __MIN( __MAX( i_rate, INPUT_RATE_MIN ), INPUT_RATE_MAX );
-
- var_SetInteger( p_input, "rate", i_rate );
-
- char psz_msg[7+1];
- snprintf( psz_msg, sizeof(psz_msg), _("%.2fx"), (double)INPUT_RATE_DEFAULT / i_rate );
- vout_OSDMessage( VLC_OBJECT(p_input), DEFAULT_CHAN, psz_msg );
- }
- else if( i_action == ACTIONID_POSITION && b_seekable )
- {
- DisplayPosition( p_intf, p_vout, p_input );
- }
- else if( i_action >= ACTIONID_PLAY_BOOKMARK1 &&
- i_action <= ACTIONID_PLAY_BOOKMARK10 )
- {
- PlayBookmark( p_intf, i_action - ACTIONID_PLAY_BOOKMARK1 + 1 );
- }
- else if( i_action >= ACTIONID_SET_BOOKMARK1 &&
- i_action <= ACTIONID_SET_BOOKMARK10 )
- {
- SetBookmark( p_intf, i_action - ACTIONID_SET_BOOKMARK1 + 1 );
- }
- /* Only makes sense with DVD */
- else if( i_action == ACTIONID_TITLE_PREV )
- var_SetVoid( p_input, "prev-title" );
- else if( i_action == ACTIONID_TITLE_NEXT )
- var_SetVoid( p_input, "next-title" );
- else if( i_action == ACTIONID_CHAPTER_PREV )
- var_SetVoid( p_input, "prev-chapter" );
- else if( i_action == ACTIONID_CHAPTER_NEXT )
- var_SetVoid( p_input, "next-chapter" );
- else if( i_action == ACTIONID_DISC_MENU )
- var_SetInteger( p_input, "title 0", 2 );