/* Initialize mutexes */
vlc_mutex_init( &priv->timer_lock );
- vlc_cond_init( &priv->exiting );
return p_libvlc;
}
/*
* Initialize hotkey handling
*/
- var_Create( p_libvlc, "key-pressed", VLC_VAR_INTEGER );
- var_Create( p_libvlc, "key-action", VLC_VAR_INTEGER );
- {
- struct hotkey *p_keys =
- malloc( (libvlc_actions_count + 1) * sizeof (*p_keys) );
-
- /* Initialize from configuration */
- for( size_t i = 0; i < libvlc_actions_count; i++ )
- {
- p_keys[i].psz_action = libvlc_actions[i].name;
- p_keys[i].i_key = config_GetInt( p_libvlc,
- libvlc_actions[i].name );
- p_keys[i].i_action = libvlc_actions[i].value;
-#ifndef NDEBUG
- if (i > 0
- && strcmp(libvlc_actions[i-1].name, libvlc_actions[i].name) >= 0)
- {
- msg_Err(p_libvlc, "%s and %s are not ordered properly",
- libvlc_actions[i-1].name, libvlc_actions[i].name);
- abort();
- }
-#endif
- }
- p_keys[libvlc_actions_count].psz_action = NULL;
- p_keys[libvlc_actions_count].i_key = 0;
- p_keys[libvlc_actions_count].i_action = 0;
- p_libvlc->p_hotkeys = p_keys;
- var_AddCallback( p_libvlc, "key-pressed", vlc_key_to_action,
- p_keys );
- }
+ vlc_InitActions( p_libvlc );
/* variables for signalling creation of new files */
var_Create( p_libvlc, "snapshot-file", VLC_VAR_STRING );
*/
/* Create volume callback system. (this variable must be created before
all interfaces as they can use it) */
- var_Create( p_libvlc, "volume-change", VLC_VAR_BOOL );
+ var_Create( p_libvlc, "volume-change", VLC_VAR_VOID );
+ var_Create( p_libvlc, "volume-muted", VLC_VAR_BOOL );
psz_modules = var_CreateGetNonEmptyString( p_libvlc, "extraintf" );
psz_control = var_CreateGetNonEmptyString( p_libvlc, "control" );
/* Free module bank. It is refcounted, so we call this each time */
module_EndBank( p_libvlc, true );
- var_DelCallback( p_libvlc, "key-pressed", vlc_key_to_action,
- (void *)p_libvlc->p_hotkeys );
- free( (void *)p_libvlc->p_hotkeys );
+ vlc_DeinitActions( p_libvlc );
}
/**
msg_Destroy( p_libvlc );
/* Destroy mutexes */
- vlc_cond_destroy( &priv->exiting );
vlc_mutex_destroy( &priv->timer_lock );
#ifndef NDEBUG /* Hack to dump leaked objects tree */