#include "modules/modules.h"
#include "config/configuration.h"
-#include <errno.h> /* ENOMEM */
#include <stdio.h> /* sprintf() */
#include <string.h>
#include <stdlib.h> /* free() */
/* Initialize mutexes */
vlc_mutex_init( &priv->timer_lock );
- vlc_cond_init( &priv->exiting );
return p_libvlc;
}
PRINT_CAPABILITY( CPU_CAPABILITY_SSE, "SSE" );
PRINT_CAPABILITY( CPU_CAPABILITY_SSE2, "SSE2" );
PRINT_CAPABILITY( CPU_CAPABILITY_SSE3, "SSE3" );
- PRINT_CAPABILITY( CPU_CAPABILITY_SSE3, "SSSE3" );
+ PRINT_CAPABILITY( CPU_CAPABILITY_SSSE3, "SSSE3" );
PRINT_CAPABILITY( CPU_CAPABILITY_SSE4_1, "SSE4.1" );
PRINT_CAPABILITY( CPU_CAPABILITY_SSE4_2, "SSE4.2" );
PRINT_CAPABILITY( CPU_CAPABILITY_SSE4A, "SSE4A" );
/*
* 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 */
static const char psz_path[] = LOCALEDIR;
#else
char psz_path[1024];
- if (snprintf (psz_path, sizeof (psz_path), "%s" DIR_SEP "%s",
- config_GetDataDirDefault(), "locale")
- >= (int)sizeof (psz_path))
- return -1;
+ char *datadir = config_GetDataDirDefault();
+ int ret;
+ if (unlikely(datadir == NULL))
+ return -1;
+ ret = snprintf (psz_path, sizeof (psz_path), "%s" DIR_SEP "locale",
+ datadir);
+ free (datadir);
+ if (ret >= (int)sizeof (psz_path))
+ return -1;
#endif
if (bindtextdomain (PACKAGE_NAME, psz_path) == NULL)
{