- else if( ( i_action == ACTIONID_ZOOM ||
- i_action == ACTIONID_UNZOOM ) && p_vout )
- {
- vlc_value_t val={0}, val_list, text_list;
- var_Get( p_vout, "zoom", &val );
- if( var_Change( p_vout, "zoom", VLC_VAR_GETLIST,
- &val_list, &text_list ) >= 0 )
- {
- int i;
- for( i = 0; i < val_list.p_list->i_count; i++ )
- {
- if( val_list.p_list->p_values[i].f_float
- == val.f_float )
- {
- if( i_action == ACTIONID_ZOOM )
- i++;
- else /* ACTIONID_UNZOOM */
- i--;
- break;
- }
- }
- if( i == val_list.p_list->i_count ) i = 0;
- if( i == -1 ) i = val_list.p_list->i_count-1;
- var_SetFloat( p_vout, "zoom",
- val_list.p_list->p_values[i].f_float );
- DisplayMessage( p_vout, SPU_DEFAULT_CHANNEL,
- _("Zoom mode: %s"),
- text_list.p_list->p_values[i].psz_string );
-
- var_FreeList( &val_list, &text_list );
- }
- }
- 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 )
- {
- DisplayMessage( p_vout, SPU_DEFAULT_CHANNEL, "%s", _("Next") );
- playlist_Next( p_playlist );
- }
- else if( i_action == ACTIONID_PREV )
- {
- DisplayMessage( p_vout, SPU_DEFAULT_CHANNEL, "%s",
- _("Previous") );
- playlist_Prev( p_playlist );
- }
- else if( i_action == ACTIONID_STOP )
- {
- playlist_Stop( p_playlist );
- }
- else if( i_action == ACTIONID_FRAME_NEXT )
- {
- var_TriggerCallback( p_input, "frame-next" );
- DisplayMessage( p_vout, SPU_DEFAULT_CHANNEL,
- "%s", _("Next frame") );
- }
- else if( i_action == ACTIONID_RATE_NORMAL )
- {
- var_SetFloat( p_playlist, "rate", 1. );
- DisplayRate( p_vout, var_GetFloat( p_input, "rate" ) );
- }
- else if( i_action == ACTIONID_FASTER )
- {
- var_TriggerCallback( p_playlist, "rate-faster" );
- DisplayRate( p_vout, var_GetFloat( p_input, "rate" ) );
- }
- else if( i_action == ACTIONID_SLOWER )
- {
- var_TriggerCallback( p_playlist, "rate-slower" );
- DisplayRate( p_vout, var_GetFloat( p_input, "rate" ) );
- }
- else if( i_action == ACTIONID_RATE_FASTER_FINE ||
- i_action == ACTIONID_RATE_SLOWER_FINE )
- {
- const int i_dir = i_action == ACTIONID_RATE_FASTER_FINE ? 1 : -1;
- float f_newrate = AdjustRateFine( p_input, i_dir );
-
- var_SetFloat( p_playlist, "rate", f_newrate );
- DisplayRate( p_vout, f_newrate );
- }
- else if( i_action == ACTIONID_POSITION )
- {
- if( ( !p_vout || vout_OSDEpg( p_vout, input_GetItem( p_input ) ) ) && 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_TriggerCallback( p_input, "prev-title" );
- else if( i_action == ACTIONID_TITLE_NEXT )
- var_TriggerCallback( p_input, "next-title" );
- else if( i_action == ACTIONID_CHAPTER_PREV )
- var_TriggerCallback( p_input, "prev-chapter" );
- else if( i_action == ACTIONID_CHAPTER_NEXT )
- var_TriggerCallback( p_input, "next-chapter" );
- else if( i_action == ACTIONID_DISC_MENU )
- var_SetInteger( p_input, "title 0", 2 );
-
- else if( i_action == ACTIONID_SUBDELAY_DOWN )
- {
- int64_t i_delay = var_GetTime( p_input, "spu-delay" );
- i_delay -= 50000; /* 50 ms */
- var_SetTime( p_input, "spu-delay", i_delay );
- ClearChannels( p_intf, p_vout );
- DisplayMessage( p_vout, SPU_DEFAULT_CHANNEL,
- _( "Subtitle delay %i ms" ),
- (int)(i_delay/1000) );
- }
- else if( i_action == ACTIONID_SUBDELAY_UP )
- {
- int64_t i_delay = var_GetTime( p_input, "spu-delay" );
- i_delay += 50000; /* 50 ms */
- var_SetTime( p_input, "spu-delay", i_delay );
- ClearChannels( p_intf, p_vout );
- DisplayMessage( p_vout, SPU_DEFAULT_CHANNEL,
- _( "Subtitle delay %i ms" ),
- (int)(i_delay/1000) );
- }
- else if( ( i_action == ACTIONID_SUBPOS_DOWN ||
- i_action == ACTIONID_SUBPOS_UP ) && p_vout )
- {
- int i_pos;
- if( i_action == ACTIONID_SUBPOS_DOWN )
- i_pos = var_DecInteger( p_vout, "sub-margin" );
- else
- i_pos = var_IncInteger( p_vout, "sub-margin" );