Changeset 135e63dac88431dd13b2d0360b85bb8b190e3843
- Timestamp:
- 30/08/08 14:02:14
(3 months ago)
- Author:
- Rémi Denis-Courmont <rdenis@simphalempin.com>
- git-committer:
- Rémi Denis-Courmont <rdenis@simphalempin.com> 1220097734 +0300
- git-parent:
[ca44ef6f6fe0af3878347243618b41b5d8b897e6]
- git-author:
- Rémi Denis-Courmont <rdenis@simphalempin.com> 1220097543 +0300
- Message:
p_module_bank: move out of vlc_global
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r0aee55f |
r135e63d |
|
| 183 | 183 | return NULL; |
|---|
| 184 | 184 | |
|---|
| 185 | | libvlc_global_data_t *p_libvlc_global = vlc_global(); |
|---|
| 186 | 185 | /* Now that the thread system is initialized, we don't have much, but |
|---|
| 187 | 186 | * at least we have variables */ |
|---|
| … | … | |
| 191 | 190 | /* Guess what CPU we have */ |
|---|
| 192 | 191 | cpu_flags = CPUCapabilities(); |
|---|
| 193 | | /* The module bank will be initialized later */ |
|---|
| 194 | | p_libvlc_global->p_module_bank = NULL; |
|---|
| | 192 | /* The module bank will be initialized later */ |
|---|
| | 193 | p_module_bank = NULL; |
|---|
| 195 | 194 | } |
|---|
| 196 | 195 | |
|---|
| … | … | |
| 251 | 250 | const char *ppsz_argv[] ) |
|---|
| 252 | 251 | { |
|---|
| 253 | | libvlc_global_data_t *p_libvlc_global = vlc_global(); |
|---|
| 254 | 252 | libvlc_priv_t *priv = libvlc_priv (p_libvlc); |
|---|
| 255 | 253 | char p_capabilities[200]; |
|---|
| … | … | |
| 325 | 323 | if( config_GetInt( p_libvlc, "reset-plugins-cache" ) > 0 ) |
|---|
| 326 | 324 | { |
|---|
| 327 | | p_libvlc_global->p_module_bank->b_cache_delete = true; |
|---|
| | 325 | p_module_bank->b_cache_delete = true; |
|---|
| 328 | 326 | } |
|---|
| 329 | 327 | |
|---|
| … | … | |
| 417 | 415 | if( psz_language && *psz_language && strcmp( psz_language, "auto" ) ) |
|---|
| 418 | 416 | { |
|---|
| 419 | | bool b_cache_delete = p_libvlc_global->p_module_bank->b_cache_delete; |
|---|
| | 417 | bool b_cache_delete = p_module_bank->b_cache_delete; |
|---|
| 420 | 418 | |
|---|
| 421 | 419 | /* Reset the default domain */ |
|---|
| … | … | |
| 430 | 428 | config_LoadConfigFile( p_libvlc, "main" ); |
|---|
| 431 | 429 | config_LoadCmdLine( p_libvlc, &i_argc, ppsz_argv, true ); |
|---|
| 432 | | p_libvlc_global->p_module_bank->b_cache_delete = b_cache_delete; |
|---|
| | 430 | p_module_bank->b_cache_delete = b_cache_delete; |
|---|
| 433 | 431 | } |
|---|
| 434 | 432 | free( psz_language ); |
|---|
| … | … | |
| 450 | 448 | |
|---|
| 451 | 449 | msg_Dbg( p_libvlc, "module bank initialized, found %i modules", |
|---|
| 452 | | vlc_internals( p_libvlc_global->p_module_bank )->i_children ); |
|---|
| | 450 | vlc_internals( p_module_bank )->i_children ); |
|---|
| 453 | 451 | |
|---|
| 454 | 452 | /* Check for help on modules */ |
|---|
| r647d6d8 |
r135e63d |
|
| 141 | 141 | VLC_COMMON_MEMBERS |
|---|
| 142 | 142 | |
|---|
| 143 | | module_bank_t * p_module_bank; ///< The module bank |
|---|
| 144 | | |
|---|
| 145 | 143 | char * psz_vlcpath; |
|---|
| 146 | 144 | } libvlc_global_data_t; |
|---|
| 147 | 145 | |
|---|
| | 146 | /** |
|---|
| | 147 | * The module bank |
|---|
| | 148 | */ |
|---|
| | 149 | extern module_bank_t *p_module_bank; |
|---|
| 148 | 150 | |
|---|
| 149 | 151 | libvlc_global_data_t *vlc_global (void); |
|---|
| rf3c2c88 |
r135e63d |
|
| 875 | 875 | * hack is brought to you by Courmisch. */ |
|---|
| 876 | 876 | if (i_type == VLC_OBJECT_MODULE) |
|---|
| 877 | | return vlc_list_find ((vlc_object_t *)vlc_global ()->p_module_bank, |
|---|
| | 877 | return vlc_list_find ((vlc_object_t *)p_module_bank, |
|---|
| 878 | 878 | i_type, FIND_CHILD); |
|---|
| 879 | 879 | return vlc_list_find (p_this->p_libvlc, i_type, FIND_CHILD); |
|---|
| r66741df |
r135e63d |
|
| 106 | 106 | module_cache_t **pp_cache = 0; |
|---|
| 107 | 107 | int32_t i_file_size, i_marker; |
|---|
| 108 | | libvlc_global_data_t *p_libvlc_global = vlc_global(); |
|---|
| 109 | 108 | |
|---|
| 110 | 109 | if( !psz_cachedir ) /* XXX: this should never happen */ |
|---|
| … | … | |
| 122 | 121 | free( psz_cachedir ); |
|---|
| 123 | 122 | |
|---|
| 124 | | if( p_libvlc_global->p_module_bank->b_cache_delete ) |
|---|
| | 123 | if( p_module_bank->b_cache_delete ) |
|---|
| 125 | 124 | { |
|---|
| 126 | 125 | #if !defined( UNDER_CE ) |
|---|
| … | … | |
| 225 | 224 | } |
|---|
| 226 | 225 | |
|---|
| 227 | | p_libvlc_global->p_module_bank->i_loaded_cache = 0; |
|---|
| | 226 | p_module_bank->i_loaded_cache = 0; |
|---|
| 228 | 227 | if (fread( &i_cache, 1, sizeof(i_cache), file ) != sizeof(i_cache) ) |
|---|
| 229 | 228 | { |
|---|
| … | … | |
| 235 | 234 | |
|---|
| 236 | 235 | if( i_cache ) |
|---|
| 237 | | pp_cache = p_libvlc_global->p_module_bank->pp_loaded_cache = |
|---|
| | 236 | pp_cache = p_module_bank->pp_loaded_cache = |
|---|
| 238 | 237 | malloc( i_cache * sizeof(void *) ); |
|---|
| 239 | 238 | |
|---|
| … | … | |
| 266 | 265 | |
|---|
| 267 | 266 | pp_cache[i] = malloc( sizeof(module_cache_t) ); |
|---|
| 268 | | p_libvlc_global->p_module_bank->i_loaded_cache++; |
|---|
| | 267 | p_module_bank->i_loaded_cache++; |
|---|
| 269 | 268 | |
|---|
| 270 | 269 | /* Load common info */ |
|---|
| … | … | |
| 332 | 331 | |
|---|
| 333 | 332 | /* TODO: cleanup */ |
|---|
| 334 | | p_libvlc_global->p_module_bank->i_loaded_cache = 0; |
|---|
| | 333 | p_module_bank->i_loaded_cache = 0; |
|---|
| 335 | 334 | |
|---|
| 336 | 335 | fclose( file ); |
|---|
| … | … | |
| 474 | 473 | module_cache_t **pp_cache; |
|---|
| 475 | 474 | uint32_t i_file_size = 0; |
|---|
| 476 | | libvlc_global_data_t *p_libvlc_global = vlc_global(); |
|---|
| 477 | 475 | |
|---|
| 478 | 476 | if( !psz_cachedir ) /* XXX: this should never happen */ |
|---|
| … | … | |
| 531 | 529 | goto error; |
|---|
| 532 | 530 | |
|---|
| 533 | | i_cache = p_libvlc_global->p_module_bank->i_cache; |
|---|
| 534 | | pp_cache = p_libvlc_global->p_module_bank->pp_cache; |
|---|
| | 531 | i_cache = p_module_bank->i_cache; |
|---|
| | 532 | pp_cache = p_module_bank->pp_cache; |
|---|
| 535 | 533 | |
|---|
| 536 | 534 | if (fwrite( &i_cache, sizeof (i_cache), 1, file) != 1) |
|---|
| … | … | |
| 726 | 724 | module_cache_t **pp_cache; |
|---|
| 727 | 725 | int i_cache, i; |
|---|
| 728 | | libvlc_global_data_t *p_libvlc_global = vlc_global(); |
|---|
| 729 | | |
|---|
| 730 | | pp_cache = p_libvlc_global->p_module_bank->pp_loaded_cache; |
|---|
| 731 | | i_cache = p_libvlc_global->p_module_bank->i_loaded_cache; |
|---|
| | 726 | |
|---|
| | 727 | pp_cache = p_module_bank->pp_loaded_cache; |
|---|
| | 728 | i_cache = p_module_bank->i_loaded_cache; |
|---|
| 732 | 729 | |
|---|
| 733 | 730 | for( i = 0; i < i_cache; i++ ) |
|---|
| r5c4ceb8 |
r135e63d |
|
| 91 | 91 | #include "modules/builtin.h" |
|---|
| 92 | 92 | |
|---|
| | 93 | module_bank_t *p_module_bank; |
|---|
| | 94 | |
|---|
| 93 | 95 | /***************************************************************************** |
|---|
| 94 | 96 | * Local prototypes |
|---|
| … | … | |
| 118 | 120 | { |
|---|
| 119 | 121 | module_bank_t *p_bank = NULL; |
|---|
| 120 | | libvlc_global_data_t *p_libvlc_global = vlc_global(); |
|---|
| 121 | 122 | |
|---|
| 122 | 123 | vlc_mutex_t *lock = var_AcquireMutex( "libvlc" ); |
|---|
| 123 | 124 | |
|---|
| 124 | | if( p_libvlc_global->p_module_bank == NULL ) |
|---|
| | 125 | if( p_module_bank == NULL ) |
|---|
| 125 | 126 | { |
|---|
| 126 | 127 | p_bank = vlc_custom_create( p_this, sizeof(module_bank_t), |
|---|
| … | … | |
| 133 | 134 | |
|---|
| 134 | 135 | /* Everything worked, attach the object */ |
|---|
| 135 | | p_libvlc_global->p_module_bank = p_bank; |
|---|
| 136 | | vlc_object_attach( p_bank, p_libvlc_global ); |
|---|
| | 136 | p_module_bank = p_bank; |
|---|
| 137 | 137 | |
|---|
| 138 | 138 | /* Fills the module bank structure with the main module infos. |
|---|
| … | … | |
| 144 | 144 | } |
|---|
| 145 | 145 | else |
|---|
| 146 | | p_libvlc_global->p_module_bank->i_usage++; |
|---|
| | 146 | p_module_bank->i_usage++; |
|---|
| 147 | 147 | |
|---|
| 148 | 148 | vlc_mutex_unlock( lock ); |
|---|
| … | … | |
| 161 | 161 | { |
|---|
| 162 | 162 | module_t * p_next = NULL; |
|---|
| 163 | | libvlc_global_data_t *p_libvlc_global = vlc_global(); |
|---|
| 164 | 163 | |
|---|
| 165 | 164 | vlc_mutex_t *lock = var_AcquireMutex( "libvlc" ); |
|---|
| 166 | | if( !p_libvlc_global->p_module_bank ) |
|---|
| | 165 | if( !p_module_bank ) |
|---|
| 167 | 166 | { |
|---|
| 168 | 167 | vlc_mutex_unlock( lock ); |
|---|
| 169 | 168 | return; |
|---|
| 170 | 169 | } |
|---|
| 171 | | if( --p_libvlc_global->p_module_bank->i_usage ) |
|---|
| | 170 | if( --p_module_bank->i_usage ) |
|---|
| 172 | 171 | { |
|---|
| 173 | 172 | vlc_mutex_unlock( lock ); |
|---|
| … | … | |
| 180 | 179 | |
|---|
| 181 | 180 | #ifdef HAVE_DYNAMIC_PLUGINS |
|---|
| 182 | | # define p_bank p_libvlc_global->p_module_bank |
|---|
| | 181 | # define p_bank p_module_bank |
|---|
| 183 | 182 | if( p_bank->b_cache ) CacheSave( p_this ); |
|---|
| 184 | 183 | while( p_bank->i_loaded_cache-- ) |
|---|
| … | … | |
| 213 | 212 | #endif |
|---|
| 214 | 213 | |
|---|
| 215 | | vlc_object_detach( p_libvlc_global->p_module_bank ); |
|---|
| 216 | | |
|---|
| 217 | | while( vlc_internals( p_libvlc_global->p_module_bank )->i_children ) |
|---|
| 218 | | { |
|---|
| 219 | | p_next = (module_t *)vlc_internals( p_libvlc_global->p_module_bank )->pp_children[0]; |
|---|
| | 214 | while( vlc_internals( p_module_bank )->i_children ) |
|---|
| | 215 | { |
|---|
| | 216 | p_next = (module_t *)vlc_internals( p_module_bank )->pp_children[0]; |
|---|
| 220 | 217 | DeleteModule( p_next, true ); |
|---|
| 221 | 218 | } |
|---|
| 222 | 219 | |
|---|
| 223 | | vlc_object_release( p_libvlc_global->p_module_bank ); |
|---|
| 224 | | p_libvlc_global->p_module_bank = NULL; |
|---|
| | 220 | vlc_object_release( p_module_bank ); |
|---|
| | 221 | p_module_bank = NULL; |
|---|
| 225 | 222 | } |
|---|
| 226 | 223 | |
|---|
| … | … | |
| 234 | 231 | void __module_LoadBuiltins( vlc_object_t * p_this ) |
|---|
| 235 | 232 | { |
|---|
| 236 | | libvlc_global_data_t *p_libvlc_global = vlc_global(); |
|---|
| 237 | | |
|---|
| 238 | 233 | vlc_mutex_t *lock = var_AcquireMutex( "libvlc" ); |
|---|
| 239 | | if( p_libvlc_global->p_module_bank->b_builtins ) |
|---|
| | 234 | if( p_module_bank->b_builtins ) |
|---|
| 240 | 235 | { |
|---|
| 241 | 236 | vlc_mutex_unlock( lock ); |
|---|
| 242 | 237 | return; |
|---|
| 243 | 238 | } |
|---|
| 244 | | p_libvlc_global->p_module_bank->b_builtins = true; |
|---|
| | 239 | p_module_bank->b_builtins = true; |
|---|
| 245 | 240 | vlc_mutex_unlock( lock ); |
|---|
| 246 | 241 | |
|---|
| … | … | |
| 260 | 255 | { |
|---|
| 261 | 256 | #ifdef HAVE_DYNAMIC_PLUGINS |
|---|
| 262 | | libvlc_global_data_t *p_libvlc_global = vlc_global(); |
|---|
| 263 | | |
|---|
| 264 | 257 | vlc_mutex_t *lock = var_AcquireMutex( "libvlc" ); |
|---|
| 265 | | if( p_libvlc_global->p_module_bank->b_plugins ) |
|---|
| | 258 | if( p_module_bank->b_plugins ) |
|---|
| 266 | 259 | { |
|---|
| 267 | 260 | vlc_mutex_unlock( lock ); |
|---|
| 268 | 261 | return; |
|---|
| 269 | 262 | } |
|---|
| 270 | | p_libvlc_global->p_module_bank->b_plugins = true; |
|---|
| | 263 | p_module_bank->b_plugins = true; |
|---|
| 271 | 264 | vlc_mutex_unlock( lock ); |
|---|
| 272 | 265 | |
|---|
| … | … | |
| 274 | 267 | |
|---|
| 275 | 268 | if( config_GetInt( p_this, "plugins-cache" ) ) |
|---|
| 276 | | p_libvlc_global->p_module_bank->b_cache = true; |
|---|
| 277 | | |
|---|
| 278 | | if( p_libvlc_global->p_module_bank->b_cache || |
|---|
| 279 | | p_libvlc_global->p_module_bank->b_cache_delete ) CacheLoad( p_this ); |
|---|
| | 269 | p_module_bank->b_cache = true; |
|---|
| | 270 | |
|---|
| | 271 | if( p_module_bank->b_cache || |
|---|
| | 272 | p_module_bank->b_cache_delete ) CacheLoad( p_this ); |
|---|
| 280 | 273 | |
|---|
| 281 | 274 | AllocateAllPlugins( p_this ); |
|---|
| … | … | |
| 1189 | 1182 | if( p_module ) |
|---|
| 1190 | 1183 | { |
|---|
| 1191 | | libvlc_global_data_t *p_libvlc_global = vlc_global(); |
|---|
| 1192 | | |
|---|
| 1193 | 1184 | /* Everything worked fine ! |
|---|
| 1194 | 1185 | * The module is ready to be added to the list. */ |
|---|
| … | … | |
| 1198 | 1189 | p_module->psz_object_name, p_module->psz_longname ); */ |
|---|
| 1199 | 1190 | |
|---|
| 1200 | | vlc_object_attach( p_module, p_libvlc_global->p_module_bank ); |
|---|
| 1201 | | |
|---|
| 1202 | | if( !p_libvlc_global->p_module_bank->b_cache ) |
|---|
| | 1191 | vlc_object_attach( p_module, p_module_bank ); |
|---|
| | 1192 | |
|---|
| | 1193 | if( !p_module_bank->b_cache ) |
|---|
| 1203 | 1194 | return 0; |
|---|
| 1204 | 1195 | |
|---|
| 1205 | | #define p_bank p_libvlc_global->p_module_bank |
|---|
| | 1196 | #define p_bank p_module_bank |
|---|
| 1206 | 1197 | /* Add entry to cache */ |
|---|
| 1207 | 1198 | p_bank->pp_cache = |
|---|
| … | … | |
| 1364 | 1355 | p_module->psz_object_name, p_module->psz_longname ); */ |
|---|
| 1365 | 1356 | |
|---|
| 1366 | | vlc_object_attach( p_module, vlc_global()->p_module_bank ); |
|---|
| | 1357 | vlc_object_attach( p_module, p_module_bank ); |
|---|
| 1367 | 1358 | |
|---|
| 1368 | 1359 | return 0; |
|---|