[vlc-devel] commit: Revert "ActionKeyCB: remove completely." ( Rémi Denis-Courmont )
git version control
git at videolan.org
Thu Mar 27 19:02:33 CET 2008
vlc | branch: master | Rémi Denis-Courmont <rem at videolan.org> | Thu Mar 27 20:03:05 2008 +0200| [f016819850d9d4896a3944bd0e94b73f648ec85b]
Revert "ActionKeyCB: remove completely."
This reverts commit a859dede77cff629f2f98b84ded198f492bc5222.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f016819850d9d4896a3944bd0e94b73f648ec85b
---
modules/control/hotkeys.c | 34 +++++++++++++++++++++++++++++++++-
1 files changed, 33 insertions(+), 1 deletions(-)
diff --git a/modules/control/hotkeys.c b/modules/control/hotkeys.c
index fbc424c..18b977f 100644
--- a/modules/control/hotkeys.c
+++ b/modules/control/hotkeys.c
@@ -73,6 +73,8 @@ static void Run ( intf_thread_t * );
static int GetKey ( intf_thread_t *);
static int KeyEvent( 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 * );
@@ -146,7 +148,15 @@ static void Run( intf_thread_t *p_intf )
/* Initialize hotkey structure */
for( i = 0; p_hotkeys[i].psz_action != NULL; i++ )
- p_hotkeys[i].i_key = config_GetInt( p_intf, p_hotkeys[i].psz_action );
+ {
+ 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 );
+ }
for( vlc_bool_t b_quit = VLC_FALSE ; !b_quit; )
{
@@ -917,6 +927,28 @@ static int KeyEvent( vlc_object_t *p_this, char const *psz_var,
return VLC_SUCCESS;
}
+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;
More information about the vlc-devel
mailing list