if( i_type == VLC_OBJECT_GLOBAL )
{
/* If i_type is global, then p_new is actually p_libvlc_global */
- p_new->p_libvlc_global = (libvlc_global_data_t*)p_new;
+ libvlc_global_data_t *p_libvlc_global = (libvlc_global_data_t *)p_new;
+ p_new->p_libvlc_global = p_new;
p_new->p_libvlc = NULL;
- p_new->p_libvlc_global->i_counter = 0;
+ p_libvlc_global->i_counter = 0;
p_new->i_object_id = 0;
- p_new->p_libvlc_global->i_objects = 1;
- p_new->p_libvlc_global->pp_objects = malloc( sizeof(vlc_object_t *) );
- p_new->p_libvlc_global->pp_objects[0] = p_new;
+ p_libvlc_global->i_objects = 1;
+ p_libvlc_global->pp_objects = malloc( sizeof(vlc_object_t *) );
+ p_libvlc_global->pp_objects[0] = p_new;
p_new->b_attached = VLC_TRUE;
}
else
{
- p_new->p_libvlc_global = p_this->p_libvlc_global;
+ libvlc_global_data_t *p_libvlc_global = vlc_global( p_this );
+ p_new->p_libvlc_global = VLC_OBJECT (p_libvlc_global);
p_new->p_libvlc = ( i_type == VLC_OBJECT_LIBVLC ) ? (libvlc_int_t*)p_new
: p_this->p_libvlc;
vlc_mutex_lock( &structure_lock );
- p_new->p_libvlc_global->i_counter++;
- p_new->i_object_id = p_new->p_libvlc_global->i_counter;
+ p_libvlc_global->i_counter++;
+ p_new->i_object_id = p_libvlc_global->i_counter;
/* Wooohaa! If *this* fails, we're in serious trouble! Anyway it's
* useless to try and recover anything if pp_objects gets smashed. */
- TAB_APPEND( p_new->p_libvlc_global->i_objects,
- p_new->p_libvlc_global->pp_objects,
+ TAB_APPEND( p_libvlc_global->i_objects, p_libvlc_global->pp_objects,
p_new );
vlc_mutex_unlock( &structure_lock );
if( p_this->i_object_type == VLC_OBJECT_GLOBAL )
{
+ libvlc_global_data_t *p_global = (libvlc_global_data_t *)p_this;
/* We are the global object ... no need to lock. */
- free( p_this->p_libvlc_global->pp_objects );
- p_this->p_libvlc_global->pp_objects = NULL;
- p_this->p_libvlc_global->i_objects--;
+ free( p_global->pp_objects );
+ p_global->pp_objects = NULL;
+ p_global->i_objects--;
vlc_mutex_destroy( &structure_lock );
}
else
{
+ libvlc_global_data_t *p_libvlc_global = vlc_global( p_this );
int i_index;
vlc_mutex_lock( &structure_lock );
/* Wooohaa! If *this* fails, we're in serious trouble! Anyway it's
* useless to try and recover anything if pp_objects gets smashed. */
- i_index = FindIndex( p_this, p_this->p_libvlc_global->pp_objects,
- p_this->p_libvlc_global->i_objects );
- REMOVE_ELEM( p_this->p_libvlc_global->pp_objects,
- p_this->p_libvlc_global->i_objects, i_index );
+ i_index = FindIndex( p_this, p_libvlc_global->pp_objects,
+ p_libvlc_global->i_objects );
+ REMOVE_ELEM( p_libvlc_global->pp_objects,
+ p_libvlc_global->i_objects, i_index );
vlc_mutex_unlock( &structure_lock );
}
{
int i_max, i_middle;
vlc_object_t **pp_objects;
+ libvlc_global_data_t *p_libvlc_global = vlc_global( p_this );
vlc_mutex_lock( &structure_lock );
- pp_objects = p_this->p_libvlc_global->pp_objects;
+ pp_objects = p_libvlc_global->pp_objects;
/* Perform our dichotomy */
- for( i_max = p_this->p_libvlc_global->i_objects - 1 ; ; )
+ for( i_max = p_libvlc_global->i_objects - 1 ; ; )
{
i_middle = i_max / 2;
vlc_list_t *p_list;
vlc_object_t **pp_current, **pp_end;
int i_count = 0, i_index = 0;
+ libvlc_global_data_t *p_libvlc_global = vlc_global( p_this );
vlc_mutex_lock( &structure_lock );
switch( i_mode & 0x000f )
{
case FIND_ANYWHERE:
- pp_current = p_this->p_libvlc_global->pp_objects;
- pp_end = pp_current + p_this->p_libvlc_global->i_objects;
+ pp_current = p_libvlc_global->pp_objects;
+ pp_end = pp_current + p_libvlc_global->i_objects;
for( ; pp_current < pp_end ; pp_current++ )
{
}
p_list = NewList( i_count );
- pp_current = p_this->p_libvlc_global->pp_objects;
+ pp_current = p_libvlc_global->pp_objects;
for( ; pp_current < pp_end ; pp_current++ )
{
static int DumpCommand( vlc_object_t *p_this, char const *psz_cmd,
vlc_value_t oldval, vlc_value_t newval, void *p_data )
{
+ libvlc_global_data_t *p_libvlc_global = vlc_global( p_this );
+
(void)oldval; (void)p_data;
if( *psz_cmd == 'l' )
{
vlc_object_t **pp_current, **pp_end;
- pp_current = p_this->p_libvlc_global->pp_objects;
- pp_end = pp_current + p_this->p_libvlc_global->i_objects;
+ pp_current = p_libvlc_global->pp_objects;
+ pp_end = pp_current + p_libvlc_global->i_objects;
for( ; pp_current < pp_end ; pp_current++ )
{
static void module_LoadMain( vlc_object_t *p_this );
-
/* Sub-version number
* (only used to avoid breakage in dev version when cache structure changes) */
#define CACHE_SUBVERSION_NUM 3
{
module_bank_t *p_bank = NULL;
vlc_value_t lockval;
+ libvlc_global_data_t *p_libvlc_global = vlc_global( p_this );
- var_Create( p_this->p_libvlc_global, "libvlc", VLC_VAR_MUTEX );
- var_Get( p_this->p_libvlc_global, "libvlc", &lockval );
+ var_Create( p_libvlc_global, "libvlc", VLC_VAR_MUTEX );
+ var_Get( p_libvlc_global, "libvlc", &lockval );
vlc_mutex_lock( lockval.p_address );
- if( p_this->p_libvlc_global->p_module_bank )
+ if( p_libvlc_global->p_module_bank )
{
- p_this->p_libvlc_global->p_module_bank->i_usage++;
+ p_libvlc_global->p_module_bank->i_usage++;
vlc_mutex_unlock( lockval.p_address );
- var_Destroy( p_this->p_libvlc_global, "libvlc" );
+ var_Destroy( p_libvlc_global, "libvlc" );
return;
}
vlc_mutex_unlock( lockval.p_address );
- var_Destroy( p_this->p_libvlc_global, "libvlc" );
+ var_Destroy( p_libvlc_global, "libvlc" );
p_bank = vlc_object_create( p_this, sizeof(module_bank_t) );
if( !p_bank )
#endif
/* Everything worked, attach the object */
- p_this->p_libvlc_global->p_module_bank = p_bank;
- vlc_object_attach( p_bank, p_this->p_libvlc_global );
+ p_libvlc_global->p_module_bank = p_bank;
+ vlc_object_attach( p_bank, p_libvlc_global );
module_LoadMain( p_this );
}
-/*****************************************************************************
- * module_ResetBank: reset the module bank.
- *****************************************************************************
- * This function resets the module bank by unloading all unused plugin
- * modules.
- *****************************************************************************/
-void __module_ResetBank( vlc_object_t *p_this )
-{
- msg_Err( p_this, "FIXME: module_ResetBank unimplemented" );
- return;
-}
/*****************************************************************************
* module_EndBank: empty the module bank.
{
module_t * p_next = NULL;
vlc_value_t lockval;
+ libvlc_global_data_t *p_libvlc_global = vlc_global( p_this );
- var_Create( p_this->p_libvlc_global, "libvlc", VLC_VAR_MUTEX );
- var_Get( p_this->p_libvlc_global, "libvlc", &lockval );
+ var_Create( p_libvlc_global, "libvlc", VLC_VAR_MUTEX );
+ var_Get( p_libvlc_global, "libvlc", &lockval );
vlc_mutex_lock( lockval.p_address );
- if( !p_this->p_libvlc_global->p_module_bank )
+ if( !p_libvlc_global->p_module_bank )
{
vlc_mutex_unlock( lockval.p_address );
- var_Destroy( p_this->p_libvlc_global, "libvlc" );
+ var_Destroy( p_libvlc_global, "libvlc" );
return;
}
- if( --p_this->p_libvlc_global->p_module_bank->i_usage )
+ if( --p_libvlc_global->p_module_bank->i_usage )
{
vlc_mutex_unlock( lockval.p_address );
- var_Destroy( p_this->p_libvlc_global, "libvlc" );
+ var_Destroy( p_libvlc_global, "libvlc" );
return;
}
vlc_mutex_unlock( lockval.p_address );
- var_Destroy( p_this->p_libvlc_global, "libvlc" );
+ var_Destroy( p_libvlc_global, "libvlc" );
config_AutoSaveConfigFile( p_this );
#ifdef HAVE_DYNAMIC_PLUGINS
-#define p_bank p_this->p_libvlc_global->p_module_bank
+# define p_bank p_libvlc_global->p_module_bank
if( p_bank->b_cache ) CacheSave( p_this );
while( p_bank->i_loaded_cache-- )
{
if( p_bank->pp_loaded_cache[p_bank->i_loaded_cache] )
{
- DeleteModule( p_bank->pp_loaded_cache[p_bank->i_loaded_cache]->p_module, p_bank->pp_loaded_cache[p_bank->i_loaded_cache]->b_used );
+ DeleteModule( p_bank->pp_loaded_cache[p_bank->i_loaded_cache]->p_module,
+ p_bank->pp_loaded_cache[p_bank->i_loaded_cache]->b_used );
free( p_bank->pp_loaded_cache[p_bank->i_loaded_cache]->psz_file );
free( p_bank->pp_loaded_cache[p_bank->i_loaded_cache] );
p_bank->pp_loaded_cache[p_bank->i_loaded_cache] = NULL;
free( p_bank->pp_cache );
p_bank->pp_cache = NULL;
}
-#undef p_bank
+# undef p_bank
#endif
- vlc_object_detach( p_this->p_libvlc_global->p_module_bank );
+ vlc_object_detach( p_libvlc_global->p_module_bank );
- while( p_this->p_libvlc_global->p_module_bank->i_children )
+ while( p_libvlc_global->p_module_bank->i_children )
{
- p_next = (module_t *)p_this->p_libvlc_global->p_module_bank->pp_children[0];
+ p_next = (module_t *)p_libvlc_global->p_module_bank->pp_children[0];
if( DeleteModule( p_next, VLC_TRUE ) )
{
}
}
- vlc_object_destroy( p_this->p_libvlc_global->p_module_bank );
- p_this->p_libvlc_global->p_module_bank = NULL;
-
- return;
+ vlc_object_destroy( p_libvlc_global->p_module_bank );
+ p_libvlc_global->p_module_bank = NULL;
}
/*****************************************************************************
static void module_LoadMain( vlc_object_t *p_this )
{
vlc_value_t lockval;
+ libvlc_global_data_t *p_libvlc_global = vlc_global( p_this );
- var_Create( p_this->p_libvlc_global, "libvlc", VLC_VAR_MUTEX );
- var_Get( p_this->p_libvlc_global, "libvlc", &lockval );
+ var_Create( p_libvlc_global, "libvlc", VLC_VAR_MUTEX );
+ var_Get( p_libvlc_global, "libvlc", &lockval );
vlc_mutex_lock( lockval.p_address );
- if( p_this->p_libvlc_global->p_module_bank->b_main )
+ if( p_libvlc_global->p_module_bank->b_main )
{
vlc_mutex_unlock( lockval.p_address );
- var_Destroy( p_this->p_libvlc_global, "libvlc" );
+ var_Destroy( p_libvlc_global, "libvlc" );
return;
}
- p_this->p_libvlc_global->p_module_bank->b_main = VLC_TRUE;
+ p_libvlc_global->p_module_bank->b_main = VLC_TRUE;
vlc_mutex_unlock( lockval.p_address );
- var_Destroy( p_this->p_libvlc_global, "libvlc" );
+ var_Destroy( p_libvlc_global, "libvlc" );
AllocateBuiltinModule( p_this, vlc_entry__main );
}
void __module_LoadBuiltins( vlc_object_t * p_this )
{
vlc_value_t lockval;
+ libvlc_global_data_t *p_libvlc_global = vlc_global( p_this );
- var_Create( p_this->p_libvlc_global, "libvlc", VLC_VAR_MUTEX );
- var_Get( p_this->p_libvlc_global, "libvlc", &lockval );
+ var_Create( p_libvlc_global, "libvlc", VLC_VAR_MUTEX );
+ var_Get( p_libvlc_global, "libvlc", &lockval );
vlc_mutex_lock( lockval.p_address );
- if( p_this->p_libvlc_global->p_module_bank->b_builtins )
+ if( p_libvlc_global->p_module_bank->b_builtins )
{
vlc_mutex_unlock( lockval.p_address );
- var_Destroy( p_this->p_libvlc_global, "libvlc" );
+ var_Destroy( p_libvlc_global, "libvlc" );
return;
}
- p_this->p_libvlc_global->p_module_bank->b_builtins = VLC_TRUE;
+ p_libvlc_global->p_module_bank->b_builtins = VLC_TRUE;
vlc_mutex_unlock( lockval.p_address );
- var_Destroy( p_this->p_libvlc_global, "libvlc" );
+ var_Destroy( p_libvlc_global, "libvlc" );
msg_Dbg( p_this, "checking builtin modules" );
ALLOCATE_ALL_BUILTINS();
{
#ifdef HAVE_DYNAMIC_PLUGINS
vlc_value_t lockval;
+ libvlc_global_data_t *p_libvlc_global = vlc_global( p_this );
- var_Create( p_this->p_libvlc_global, "libvlc", VLC_VAR_MUTEX );
- var_Get( p_this->p_libvlc_global, "libvlc", &lockval );
+ var_Create( p_libvlc_global, "libvlc", VLC_VAR_MUTEX );
+ var_Get( p_libvlc_global, "libvlc", &lockval );
vlc_mutex_lock( lockval.p_address );
- if( p_this->p_libvlc_global->p_module_bank->b_plugins )
+ if( p_libvlc_global->p_module_bank->b_plugins )
{
vlc_mutex_unlock( lockval.p_address );
- var_Destroy( p_this->p_libvlc_global, "libvlc" );
+ var_Destroy( p_libvlc_global, "libvlc" );
return;
}
- p_this->p_libvlc_global->p_module_bank->b_plugins = VLC_TRUE;
+ p_libvlc_global->p_module_bank->b_plugins = VLC_TRUE;
vlc_mutex_unlock( lockval.p_address );
- var_Destroy( p_this->p_libvlc_global, "libvlc" );
+ var_Destroy( p_libvlc_global, "libvlc" );
msg_Dbg( p_this, "checking plugin modules" );
if( config_GetInt( p_this, "plugins-cache" ) )
- p_this->p_libvlc_global->p_module_bank->b_cache = VLC_TRUE;
+ p_libvlc_global->p_module_bank->b_cache = VLC_TRUE;
- if( p_this->p_libvlc_global->p_module_bank->b_cache ||
- p_this->p_libvlc_global->p_module_bank->b_cache_delete ) CacheLoad( p_this );
+ if( p_libvlc_global->p_module_bank->b_cache ||
+ p_libvlc_global->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( p_this );
+
/* Everything worked fine !
* The module is ready to be added to the list. */
p_module->b_builtin = VLC_FALSE;
/* msg_Dbg( p_this, "plugin \"%s\", %s",
p_module->psz_object_name, p_module->psz_longname ); */
- vlc_object_attach( p_module, p_this->p_libvlc_global->p_module_bank );
+ vlc_object_attach( p_module, p_libvlc_global->p_module_bank );
- if( !p_this->p_libvlc_global->p_module_bank->b_cache )
+ if( !p_libvlc_global->p_module_bank->b_cache )
return 0;
+#define p_bank p_libvlc_global->p_module_bank
/* Add entry to cache */
-#define p_bank p_this->p_libvlc_global->p_module_bank
p_bank->pp_cache =
realloc( p_bank->pp_cache, (p_bank->i_cache + 1) * sizeof(void *) );
p_bank->pp_cache[p_bank->i_cache] = malloc( sizeof(module_cache_t) );
/* msg_Dbg( p_this, "builtin \"%s\", %s",
p_module->psz_object_name, p_module->psz_longname ); */
- vlc_object_attach( p_module, p_this->p_libvlc_global->p_module_bank );
+ vlc_object_attach( p_module, vlc_global( p_this )->p_module_bank );
return 0;
}
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( p_this );
psz_homedir = p_this->p_libvlc->psz_homedir;
if( !psz_homedir )
return;
}
- if( p_this->p_libvlc_global->p_module_bank->b_cache_delete )
+ if( p_libvlc_global->p_module_bank->b_cache_delete )
{
#if !defined( UNDER_CE )
unlink( psz_filename );
return;
}
- p_this->p_libvlc_global->p_module_bank->i_loaded_cache = 0;
+ p_libvlc_global->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_this->p_libvlc_global->p_module_bank->pp_loaded_cache =
+ pp_cache = p_libvlc_global->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_this->p_libvlc_global->p_module_bank->i_loaded_cache++;
+ p_libvlc_global->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_this->p_libvlc_global->p_module_bank->i_loaded_cache = 0;
+ p_libvlc_global->p_module_bank->i_loaded_cache = 0;
fclose( file );
return;
int i, j, i_cache;
module_cache_t **pp_cache;
int32_t i_file_size = 0;
+ libvlc_global_data_t *p_libvlc_global = vlc_global( p_this );
psz_homedir = p_this->p_libvlc->psz_homedir;
if( !psz_homedir )
i_file_size = ftell( file );
fwrite( &i_file_size, sizeof(char), sizeof(i_file_size), file );
- i_cache = p_this->p_libvlc_global->p_module_bank->i_cache;
- pp_cache = p_this->p_libvlc_global->p_module_bank->pp_cache;
+ i_cache = p_libvlc_global->p_module_bank->i_cache;
+ pp_cache = p_libvlc_global->p_module_bank->pp_cache;
fwrite( &i_cache, sizeof(char), sizeof(i_cache), file );
{
module_cache_t **pp_cache;
int i_cache, i;
+ libvlc_global_data_t *p_libvlc_global = vlc_global( p_this );
- pp_cache = p_this->p_libvlc_global->p_module_bank->pp_loaded_cache;
- i_cache = p_this->p_libvlc_global->p_module_bank->i_loaded_cache;
+ pp_cache = p_libvlc_global->p_module_bank->pp_loaded_cache;
+ i_cache = p_libvlc_global->p_module_bank->i_loaded_cache;
for( i = 0; i < i_cache; i++ )
{