if (vlc_threads_init ())
return NULL;
- libvlc_global_data_t *p_libvlc_global = vlc_global();
/* Now that the thread system is initialized, we don't have much, but
* at least we have variables */
vlc_mutex_t *lock = var_AcquireMutex( "libvlc" );
{
/* Guess what CPU we have */
cpu_flags = CPUCapabilities();
- /* The module bank will be initialized later */
- p_libvlc_global->p_module_bank = NULL;
+ /* The module bank will be initialized later */
+ p_module_bank = NULL;
}
/* Allocate a libvlc instance object */
int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
const char *ppsz_argv[] )
{
- libvlc_global_data_t *p_libvlc_global = vlc_global();
libvlc_priv_t *priv = libvlc_priv (p_libvlc);
char p_capabilities[200];
char * p_tmp = NULL;
/* Check for plugins cache options */
if( config_GetInt( p_libvlc, "reset-plugins-cache" ) > 0 )
{
- p_libvlc_global->p_module_bank->b_cache_delete = true;
+ p_module_bank->b_cache_delete = true;
}
/* Will be re-done properly later on */
psz_language = config_GetPsz( p_libvlc, "language" );
if( psz_language && *psz_language && strcmp( psz_language, "auto" ) )
{
- bool b_cache_delete = p_libvlc_global->p_module_bank->b_cache_delete;
+ bool b_cache_delete = p_module_bank->b_cache_delete;
/* Reset the default domain */
SetLanguage( psz_language );
if( !config_GetInt( p_libvlc, "ignore-config" ) )
config_LoadConfigFile( p_libvlc, "main" );
config_LoadCmdLine( p_libvlc, &i_argc, ppsz_argv, true );
- p_libvlc_global->p_module_bank->b_cache_delete = b_cache_delete;
+ p_module_bank->b_cache_delete = b_cache_delete;
}
free( psz_language );
# endif
}
msg_Dbg( p_libvlc, "module bank initialized, found %i modules",
- vlc_internals( p_libvlc_global->p_module_bank )->i_children );
+ vlc_internals( p_module_bank )->i_children );
/* Check for help on modules */
if( (p_tmp = config_GetPsz( p_libvlc, "module" )) )
int i_cache;
module_cache_t **pp_cache = 0;
int32_t i_file_size, i_marker;
- libvlc_global_data_t *p_libvlc_global = vlc_global();
if( !psz_cachedir ) /* XXX: this should never happen */
{
}
free( psz_cachedir );
- if( p_libvlc_global->p_module_bank->b_cache_delete )
+ if( p_module_bank->b_cache_delete )
{
#if !defined( UNDER_CE )
unlink( psz_filename );
return;
}
- p_libvlc_global->p_module_bank->i_loaded_cache = 0;
+ p_module_bank->i_loaded_cache = 0;
if (fread( &i_cache, 1, sizeof(i_cache), file ) != sizeof(i_cache) )
{
msg_Warn( p_this, "This doesn't look like a valid plugins cache "
}
if( i_cache )
- pp_cache = p_libvlc_global->p_module_bank->pp_loaded_cache =
+ pp_cache = p_module_bank->pp_loaded_cache =
malloc( i_cache * sizeof(void *) );
#define LOAD_IMMEDIATE(a) \
int i_submodules;
pp_cache[i] = malloc( sizeof(module_cache_t) );
- p_libvlc_global->p_module_bank->i_loaded_cache++;
+ p_module_bank->i_loaded_cache++;
/* Load common info */
LOAD_STRING( pp_cache[i]->psz_file );
msg_Warn( p_this, "plugins cache not loaded (corrupted)" );
/* TODO: cleanup */
- p_libvlc_global->p_module_bank->i_loaded_cache = 0;
+ p_module_bank->i_loaded_cache = 0;
fclose( file );
return;
int i, j, i_cache;
module_cache_t **pp_cache;
uint32_t i_file_size = 0;
- libvlc_global_data_t *p_libvlc_global = vlc_global();
if( !psz_cachedir ) /* XXX: this should never happen */
{
if (fwrite (&i_file_size, sizeof (i_file_size), 1, file) != 1)
goto error;
- i_cache = p_libvlc_global->p_module_bank->i_cache;
- pp_cache = p_libvlc_global->p_module_bank->pp_cache;
+ i_cache = p_module_bank->i_cache;
+ pp_cache = p_module_bank->pp_cache;
if (fwrite( &i_cache, sizeof (i_cache), 1, file) != 1)
goto error;
{
module_cache_t **pp_cache;
int i_cache, i;
- libvlc_global_data_t *p_libvlc_global = vlc_global();
- pp_cache = p_libvlc_global->p_module_bank->pp_loaded_cache;
- i_cache = p_libvlc_global->p_module_bank->i_loaded_cache;
+ pp_cache = p_module_bank->pp_loaded_cache;
+ i_cache = p_module_bank->i_loaded_cache;
for( i = 0; i < i_cache; i++ )
{
#include "modules/modules.h"
#include "modules/builtin.h"
+module_bank_t *p_module_bank;
+
/*****************************************************************************
* Local prototypes
*****************************************************************************/
void __module_InitBank( vlc_object_t *p_this )
{
module_bank_t *p_bank = NULL;
- libvlc_global_data_t *p_libvlc_global = vlc_global();
vlc_mutex_t *lock = var_AcquireMutex( "libvlc" );
- if( p_libvlc_global->p_module_bank == NULL )
+ if( p_module_bank == NULL )
{
p_bank = vlc_custom_create( p_this, sizeof(module_bank_t),
VLC_OBJECT_GENERIC, "module bank");
p_bank->b_cache_delete = false;
/* Everything worked, attach the object */
- p_libvlc_global->p_module_bank = p_bank;
- vlc_object_attach( p_bank, p_libvlc_global );
+ p_module_bank = p_bank;
/* Fills the module bank structure with the main module infos.
* This is very useful as it will allow us to consider the main
AllocateBuiltinModule( p_this, vlc_entry__main );
}
else
- p_libvlc_global->p_module_bank->i_usage++;
+ p_module_bank->i_usage++;
vlc_mutex_unlock( lock );
}
void __module_EndBank( vlc_object_t *p_this )
{
module_t * p_next = NULL;
- libvlc_global_data_t *p_libvlc_global = vlc_global();
vlc_mutex_t *lock = var_AcquireMutex( "libvlc" );
- if( !p_libvlc_global->p_module_bank )
+ if( !p_module_bank )
{
vlc_mutex_unlock( lock );
return;
}
- if( --p_libvlc_global->p_module_bank->i_usage )
+ if( --p_module_bank->i_usage )
{
vlc_mutex_unlock( lock );
return;
config_AutoSaveConfigFile( p_this );
#ifdef HAVE_DYNAMIC_PLUGINS
-# define p_bank p_libvlc_global->p_module_bank
+# define p_bank p_module_bank
if( p_bank->b_cache ) CacheSave( p_this );
while( p_bank->i_loaded_cache-- )
{
# undef p_bank
#endif
- vlc_object_detach( p_libvlc_global->p_module_bank );
-
- while( vlc_internals( p_libvlc_global->p_module_bank )->i_children )
+ while( vlc_internals( p_module_bank )->i_children )
{
- p_next = (module_t *)vlc_internals( p_libvlc_global->p_module_bank )->pp_children[0];
+ p_next = (module_t *)vlc_internals( p_module_bank )->pp_children[0];
DeleteModule( p_next, true );
}
- vlc_object_release( p_libvlc_global->p_module_bank );
- p_libvlc_global->p_module_bank = NULL;
+ vlc_object_release( p_module_bank );
+ p_module_bank = NULL;
}
/**
*/
void __module_LoadBuiltins( vlc_object_t * p_this )
{
- libvlc_global_data_t *p_libvlc_global = vlc_global();
-
vlc_mutex_t *lock = var_AcquireMutex( "libvlc" );
- if( p_libvlc_global->p_module_bank->b_builtins )
+ if( p_module_bank->b_builtins )
{
vlc_mutex_unlock( lock );
return;
}
- p_libvlc_global->p_module_bank->b_builtins = true;
+ p_module_bank->b_builtins = true;
vlc_mutex_unlock( lock );
msg_Dbg( p_this, "checking builtin modules" );
void __module_LoadPlugins( vlc_object_t * p_this )
{
#ifdef HAVE_DYNAMIC_PLUGINS
- libvlc_global_data_t *p_libvlc_global = vlc_global();
-
vlc_mutex_t *lock = var_AcquireMutex( "libvlc" );
- if( p_libvlc_global->p_module_bank->b_plugins )
+ if( p_module_bank->b_plugins )
{
vlc_mutex_unlock( lock );
return;
}
- p_libvlc_global->p_module_bank->b_plugins = true;
+ p_module_bank->b_plugins = true;
vlc_mutex_unlock( lock );
msg_Dbg( p_this, "checking plugin modules" );
if( config_GetInt( p_this, "plugins-cache" ) )
- p_libvlc_global->p_module_bank->b_cache = true;
+ p_module_bank->b_cache = true;
- if( p_libvlc_global->p_module_bank->b_cache ||
- p_libvlc_global->p_module_bank->b_cache_delete ) CacheLoad( p_this );
+ if( p_module_bank->b_cache ||
+ p_module_bank->b_cache_delete ) CacheLoad( p_this );
AllocateAllPlugins( p_this );
#endif
if( p_module )
{
- libvlc_global_data_t *p_libvlc_global = vlc_global();
-
/* Everything worked fine !
* The module is ready to be added to the list. */
p_module->b_builtin = false;
/* msg_Dbg( p_this, "plugin \"%s\", %s",
p_module->psz_object_name, p_module->psz_longname ); */
- vlc_object_attach( p_module, p_libvlc_global->p_module_bank );
+ vlc_object_attach( p_module, p_module_bank );
- if( !p_libvlc_global->p_module_bank->b_cache )
+ if( !p_module_bank->b_cache )
return 0;
-#define p_bank p_libvlc_global->p_module_bank
+#define p_bank p_module_bank
/* Add entry to cache */
p_bank->pp_cache =
realloc( p_bank->pp_cache, (p_bank->i_cache + 1) * sizeof(void *) );
/* msg_Dbg( p_this, "builtin \"%s\", %s",
p_module->psz_object_name, p_module->psz_longname ); */
- vlc_object_attach( p_module, vlc_global()->p_module_bank );
+ vlc_object_attach( p_module, p_module_bank );
return 0;
}