vlc_value_t, vlc_value_t, void * );
static int SpecialKeyEvent( vlc_object_t *, char const *,
vlc_value_t, vlc_value_t, void * );
-static int ActionKeyCB( vlc_object_t *, char const *,
- vlc_value_t, vlc_value_t, void * );
static void PlayBookmark( intf_thread_t *, int );
static void SetBookmark ( intf_thread_t *, int );
static void DisplayPosition( intf_thread_t *, vout_thread_t *, input_thread_t * );
static void Run( intf_thread_t *p_intf )
{
vout_thread_t *p_vout = NULL;
- struct hotkey *p_hotkeys = p_intf->p_libvlc->p_hotkeys;
vlc_value_t val;
int i;
playlist_t *p_playlist = pl_Yield( p_intf );
/* Initialize hotkey structure */
- for( i = 0; p_hotkeys[i].psz_action != NULL; i++ )
+ for( struct hotkey *p_hotkey = p_intf->p_libvlc->p_hotkeys;
+ p_hotkey->psz_action != NULL;
+ p_hotkey++ )
{
- var_Create( p_intf->p_libvlc, p_hotkeys[i].psz_action,
- VLC_VAR_HOTKEY | VLC_VAR_DOINHERIT );
-
- var_AddCallback( p_intf->p_libvlc, p_hotkeys[i].psz_action,
- ActionKeyCB, p_hotkeys + i );
- var_Get( p_intf->p_libvlc, p_hotkeys[i].psz_action, &val );
- var_Set( p_intf->p_libvlc, p_hotkeys[i].psz_action, val );
+ p_hotkey->i_key = config_GetInt( p_intf, p_hotkey->psz_action );
}
for( ;; )
{
input_thread_t *p_input;
vout_thread_t *p_last_vout;
- int i_times = 0;
int i_action = GetAction( p_intf );
if( i_action == -1 )
break; /* die */
- for( i = 0; p_hotkeys[i].psz_action != NULL; i++ )
- {
- if( p_hotkeys[i].i_action == i_action )
- {
- i_times = p_hotkeys[i].i_times;
- /* times key pressed within max. delta time */
- p_hotkeys[i].i_times = 0;
- break;
- }
- }
-
/* Update the input */
PL_LOCK;
p_input = p_playlist->p_input;
#define SET_TIME( a, b ) \
i_interval = config_GetInt( p_input, a "-jump-size" ); \
if( i_interval > 0 ) { \
- val.i_time = ( (mtime_t)(i_interval * b) * 1000000L \
- * ((mtime_t)(1 << i_times))); \
+ val.i_time = (mtime_t)(i_interval * b) * 1000000L; \
var_Set( p_input, "time-offset", val ); \
DisplayPosition( p_intf, p_vout, p_input ); \
}
return PutAction( p_intf, newval.i_int );
}
-static int ActionKeyCB( vlc_object_t *libvlc, char const *psz_var,
- vlc_value_t oldval, vlc_value_t newval, void *p_data )
-{
- mtime_t i_date;
- struct hotkey *p_hotkey = p_data;
-
- (void)libvlc; (void)psz_var; (void)oldval;
-
- p_hotkey->i_key = newval.i_int;
-
- /* do hotkey accounting */
- i_date = mdate();
- if( (p_hotkey->i_delta_date > 0) &&
- (p_hotkey->i_delta_date <= (i_date - p_hotkey->i_last_date) ) )
- p_hotkey->i_times = 0;
- else
- p_hotkey->i_times++;
- p_hotkey->i_last_date = i_date;
-
- return VLC_SUCCESS;
-}
-
static void PlayBookmark( intf_thread_t *p_intf, int i_num )
{
vlc_value_t val;