From f7c6d4e73c3d6cb67dc35030643ad7d6e510851c Mon Sep 17 00:00:00 2001 From: Antoine Cellerier Date: Sat, 24 Mar 2007 18:30:39 +0000 Subject: [PATCH] Register variables as callback. Don't store module specific variables in p_libvlc_global. They don't belong there. --- modules/video_filter/logo.c | 50 +++++++++++++---------------------- modules/video_filter/marq.c | 2 +- modules/video_filter/mosaic.c | 41 +++++++++------------------- 3 files changed, 31 insertions(+), 62 deletions(-) diff --git a/modules/video_filter/logo.c b/modules/video_filter/logo.c index e712d3352d..5e63e56b26 100644 --- a/modules/video_filter/logo.c +++ b/modules/video_filter/logo.c @@ -329,36 +329,22 @@ static int Create( vlc_object_t *p_this ) p_vout->pf_display = NULL; p_vout->pf_control = Control; - p_logo_list->psz_filename = var_CreateGetString( p_this , "logo-file" ); + p_logo_list->psz_filename = var_CreateGetStringCommand( p_this, + "logo-file" ); if( !p_logo_list->psz_filename || !*p_logo_list->psz_filename ) { msg_Err( p_this, "logo file not specified" ); return 0; } - var_Create( p_this, "logo-position", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT ); - var_Get( p_this, "logo-position", &val ); - p_sys->pos = val.i_int; - - var_Create( p_this, "logo-x", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT ); - var_Get( p_this, "logo-x", &val ); - p_sys->posx = val.i_int; - - var_Create( p_this, "logo-y", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT ); - var_Get( p_this, "logo-y", &val ); - p_sys->posy = val.i_int; - - var_Create( p_this, "logo-delay", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT ); - var_Get( p_this, "logo-delay", &val ); - p_logo_list->i_delay = __MAX( __MIN( val.i_int, 60000 ), 0 ); - - var_Create( p_this, "logo-repeat", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT ); - var_Get( p_this, "logo-repeat", &val ); - p_logo_list->i_repeat = val.i_int; - - var_Create(p_this, "logo-transparency", VLC_VAR_INTEGER|VLC_VAR_DOINHERIT); - var_Get( p_this, "logo-transparency", &val ); - p_logo_list->i_alpha = __MAX( __MIN( val.i_int, 255 ), 0 ); + p_sys->pos = var_CreateGetIntegerCommand( p_this, "logo-position" ); + p_sys->posx = var_CreateGetIntegerCommand( p_this, "logo-x" ); + p_sys->posy = var_CreateGetIntegerCommand( p_this, "logo-y" ); + p_logo_list->i_delay = __MAX( __MIN( + var_CreateGetIntegerCommand( p_this, "logo-delay" ) , 60000 ), 0 ); + p_logo_list->i_repeat = var_CreateGetIntegerCommand( p_this, "logo-repeat"); + p_logo_list->i_alpha = __MAX( __MIN( + var_CreateGetIntegerCommand( p_this, "logo-transparency" ), 255 ), 0 ); LoadLogoList( p_vout, p_logo_list ); @@ -732,7 +718,7 @@ static int CreateFilter( vlc_object_t *p_this ) /* Hook used for callback variables */ p_logo_list->psz_filename = - var_CreateGetString( p_filter->p_libvlc_global , "logo-file" ); + var_CreateGetStringCommand( p_filter->p_libvlc_global , "logo-file" ); if( !p_logo_list->psz_filename || !*p_logo_list->psz_filename ) { msg_Err( p_this, "logo file not specified" ); @@ -741,15 +727,15 @@ static int CreateFilter( vlc_object_t *p_this ) return VLC_EGENERIC; } - p_sys->posx = var_CreateGetInteger( p_filter->p_libvlc_global , "logo-x" ); - p_sys->posy = var_CreateGetInteger( p_filter->p_libvlc_global , "logo-y" ); - p_sys->pos = var_CreateGetInteger( p_filter->p_libvlc_global , "logo-position" ); - p_logo_list->i_alpha = __MAX( __MIN( var_CreateGetInteger( - p_filter->p_libvlc_global, "logo-transparency"), 255 ), 0 ); + p_sys->posx = var_CreateGetIntegerCommand( p_filter, "logo-x" ); + p_sys->posy = var_CreateGetIntegerCommand( p_filter, "logo-y" ); + p_sys->pos = var_CreateGetIntegerCommand( p_filter, "logo-position" ); + p_logo_list->i_alpha = __MAX( __MIN( var_CreateGetIntegerCommand( + p_filter, "logo-transparency"), 255 ), 0 ); p_logo_list->i_delay = - var_CreateGetInteger( p_filter->p_libvlc_global , "logo-delay" ); + var_CreateGetIntegerCommand( p_filter, "logo-delay" ); p_logo_list->i_repeat = - var_CreateGetInteger( p_filter->p_libvlc_global , "logo-repeat" ); + var_CreateGetIntegerCommand( p_filter, "logo-repeat" ); var_AddCallback( p_filter->p_libvlc_global, "logo-file", LogoCallback, p_sys ); var_AddCallback( p_filter->p_libvlc_global, "logo-x", LogoCallback, p_sys ); diff --git a/modules/video_filter/marq.c b/modules/video_filter/marq.c index f71ffd1242..34c7329cdd 100644 --- a/modules/video_filter/marq.c +++ b/modules/video_filter/marq.c @@ -192,7 +192,7 @@ static int CreateFilter( vlc_object_t *p_this ) p_filter->p_cfg ); #define CREATE_VAR( stor, type, var ) \ - p_sys->stor = var_CreateGet##type( p_filter, var ); \ + p_sys->stor = var_CreateGet##type##Command( p_filter, var ); \ var_AddCallback( p_filter, var, MarqueeCallback, p_sys ); CREATE_VAR( i_xoff, Integer, "marq-x" ); diff --git a/modules/video_filter/mosaic.c b/modules/video_filter/mosaic.c index ad0b3fb17b..2cc941898d 100644 --- a/modules/video_filter/mosaic.c +++ b/modules/video_filter/mosaic.c @@ -305,24 +305,17 @@ static int CreateFilter( vlc_object_t *p_this ) #define GET_VAR( name, min, max ) \ p_sys->i_##name = __MIN( max, __MAX( min, \ - var_CreateGetInteger( p_filter, CFG_PREFIX #name ) ) ); \ - var_Destroy( p_filter, CFG_PREFIX #name ); \ - var_Create( p_libvlc_global, CFG_PREFIX #name, VLC_VAR_INTEGER ); \ - var_SetInteger( p_libvlc_global, CFG_PREFIX #name, p_sys->i_##name ); \ - var_AddCallback( p_libvlc_global, CFG_PREFIX #name, MosaicCallback, p_sys ); + var_CreateGetIntegerCommand( p_filter, CFG_PREFIX #name ) ) ); \ + var_AddCallback( p_filter, CFG_PREFIX #name, MosaicCallback, p_sys ); GET_VAR( width, 0, INT_MAX ); GET_VAR( height, 0, INT_MAX ); GET_VAR( xoffset, 0, INT_MAX ); GET_VAR( yoffset, 0, INT_MAX ); - p_sys->i_align = __MIN( 10, __MAX( 0, var_CreateGetInteger( p_filter, CFG_PREFIX "align" ) ) ); + GET_VAR( align, 0, 10 ); if( p_sys->i_align == 3 || p_sys->i_align == 7 ) p_sys->i_align = 5; - var_Destroy( p_filter, CFG_PREFIX "align" ); - var_Create( p_libvlc_global, CFG_PREFIX "align", VLC_VAR_INTEGER ); - var_SetInteger( p_libvlc_global, CFG_PREFIX "align", p_sys->i_align ); - var_AddCallback( p_libvlc_global, CFG_PREFIX "align", MosaicCallback, p_sys ); GET_VAR( borderw, 0, INT_MAX ); GET_VAR( borderh, 0, INT_MAX ); @@ -333,11 +326,9 @@ static int CreateFilter( vlc_object_t *p_this ) GET_VAR( delay, 100, INT_MAX ); p_sys->i_delay *= 1000; - p_sys->b_ar = var_CreateGetBool( p_filter, CFG_PREFIX "keep-aspect-ratio" ); - var_Destroy( p_filter, CFG_PREFIX "keep-aspect-ratio" ); - var_Create( p_libvlc_global, CFG_PREFIX "keep-aspect-ratio", VLC_VAR_INTEGER ); - var_SetBool( p_libvlc_global, CFG_PREFIX "keep-aspect-ratio", p_sys->b_ar ); - var_AddCallback( p_libvlc_global, CFG_PREFIX "keep-aspect-ratio", MosaicCallback, + p_sys->b_ar = var_CreateGetBoolCommand( p_filter, + CFG_PREFIX "keep-aspect-ratio" ); + var_AddCallback( p_filter, CFG_PREFIX "keep-aspect-ratio", MosaicCallback, p_sys ); p_sys->b_keep = var_CreateGetBool( p_filter, CFG_PREFIX "keep-picture" ); @@ -348,10 +339,8 @@ static int CreateFilter( vlc_object_t *p_this ) p_sys->i_order_length = 0; p_sys->ppsz_order = NULL; - psz_order = var_CreateGetString( p_filter, CFG_PREFIX "order" ); - - var_Create( p_libvlc_global, CFG_PREFIX "order", VLC_VAR_STRING); - var_AddCallback( p_libvlc_global, CFG_PREFIX "order", MosaicCallback, p_sys ); + psz_order = var_CreateGetStringCommand( p_filter, CFG_PREFIX "order" ); + var_AddCallback( p_filter, CFG_PREFIX "order", MosaicCallback, p_sys ); if( psz_order[0] != 0 ) { @@ -371,26 +360,20 @@ static int CreateFilter( vlc_object_t *p_this ) } /* Manage specific offsets for substreams */ - psz_offsets = var_CreateGetString( p_filter, CFG_PREFIX "offsets" ); - var_Destroy( p_filter, CFG_PREFIX "offsets" ); + psz_offsets = var_CreateGetStringCommand( p_filter, CFG_PREFIX "offsets" ); p_sys->i_offsets_length = 0; p_sys->pi_x_offsets = NULL; p_sys->pi_y_offsets = NULL; mosaic_ParseSetOffsets( (vlc_object_t *) p_filter, p_sys, psz_offsets ); - var_Create( p_libvlc_global, CFG_PREFIX "offsets", VLC_VAR_STRING); - var_SetString( p_libvlc_global, CFG_PREFIX "offsets", psz_offsets ); - var_AddCallback( p_libvlc_global, CFG_PREFIX "offsets", MosaicCallback, p_sys ); + var_AddCallback( p_filter, CFG_PREFIX "offsets", MosaicCallback, p_sys ); /* Bluescreen specific stuff */ GET_VAR( bsu, 0x00, 0xff ); GET_VAR( bsv, 0x00, 0xff ); GET_VAR( bsut, 0x00, 0xff ); GET_VAR( bsvt, 0x00, 0xff ); - p_sys->b_bs = var_CreateGetBool( p_filter, CFG_PREFIX "bs" ); - var_Destroy( p_filter, CFG_PREFIX "bs" ); - var_Create( p_libvlc_global, CFG_PREFIX "bs", VLC_VAR_INTEGER ); - var_SetBool( p_libvlc_global, CFG_PREFIX "bs", p_sys->b_bs ); - var_AddCallback( p_libvlc_global, CFG_PREFIX "bs", MosaicCallback, p_sys ); + p_sys->b_bs = var_CreateGetBoolCommand( p_filter, CFG_PREFIX "bs" ); + var_AddCallback( p_filter, CFG_PREFIX "bs", MosaicCallback, p_sys ); if( p_sys->b_bs && p_sys->b_keep ) { msg_Warn( p_filter, CFG_PREFIX "keep-picture needs to be disabled for" -- 2.20.1