Commit f7c6d4e7 authored by Antoine Cellerier's avatar Antoine Cellerier

Register variables as callback. Don't store module specific variables in...

Register variables as callback. Don't store module specific variables in p_libvlc_global. They don't belong there.
parent 8c4abae0
...@@ -329,36 +329,22 @@ static int Create( vlc_object_t *p_this ) ...@@ -329,36 +329,22 @@ static int Create( vlc_object_t *p_this )
p_vout->pf_display = NULL; p_vout->pf_display = NULL;
p_vout->pf_control = Control; 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 ) if( !p_logo_list->psz_filename || !*p_logo_list->psz_filename )
{ {
msg_Err( p_this, "logo file not specified" ); msg_Err( p_this, "logo file not specified" );
return 0; return 0;
} }
var_Create( p_this, "logo-position", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT ); p_sys->pos = var_CreateGetIntegerCommand( p_this, "logo-position" );
var_Get( p_this, "logo-position", &val ); p_sys->posx = var_CreateGetIntegerCommand( p_this, "logo-x" );
p_sys->pos = val.i_int; p_sys->posy = var_CreateGetIntegerCommand( p_this, "logo-y" );
p_logo_list->i_delay = __MAX( __MIN(
var_Create( p_this, "logo-x", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT ); var_CreateGetIntegerCommand( p_this, "logo-delay" ) , 60000 ), 0 );
var_Get( p_this, "logo-x", &val ); p_logo_list->i_repeat = var_CreateGetIntegerCommand( p_this, "logo-repeat");
p_sys->posx = val.i_int; p_logo_list->i_alpha = __MAX( __MIN(
var_CreateGetIntegerCommand( p_this, "logo-transparency" ), 255 ), 0 );
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 );
LoadLogoList( p_vout, p_logo_list ); LoadLogoList( p_vout, p_logo_list );
...@@ -732,7 +718,7 @@ static int CreateFilter( vlc_object_t *p_this ) ...@@ -732,7 +718,7 @@ static int CreateFilter( vlc_object_t *p_this )
/* Hook used for callback variables */ /* Hook used for callback variables */
p_logo_list->psz_filename = 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 ) if( !p_logo_list->psz_filename || !*p_logo_list->psz_filename )
{ {
msg_Err( p_this, "logo file not specified" ); msg_Err( p_this, "logo file not specified" );
...@@ -741,15 +727,15 @@ static int CreateFilter( vlc_object_t *p_this ) ...@@ -741,15 +727,15 @@ static int CreateFilter( vlc_object_t *p_this )
return VLC_EGENERIC; return VLC_EGENERIC;
} }
p_sys->posx = var_CreateGetInteger( p_filter->p_libvlc_global , "logo-x" ); p_sys->posx = var_CreateGetIntegerCommand( p_filter, "logo-x" );
p_sys->posy = var_CreateGetInteger( p_filter->p_libvlc_global , "logo-y" ); p_sys->posy = var_CreateGetIntegerCommand( p_filter, "logo-y" );
p_sys->pos = var_CreateGetInteger( p_filter->p_libvlc_global , "logo-position" ); p_sys->pos = var_CreateGetIntegerCommand( p_filter, "logo-position" );
p_logo_list->i_alpha = __MAX( __MIN( var_CreateGetInteger( p_logo_list->i_alpha = __MAX( __MIN( var_CreateGetIntegerCommand(
p_filter->p_libvlc_global, "logo-transparency"), 255 ), 0 ); p_filter, "logo-transparency"), 255 ), 0 );
p_logo_list->i_delay = 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 = 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-file", LogoCallback, p_sys );
var_AddCallback( p_filter->p_libvlc_global, "logo-x", LogoCallback, p_sys ); var_AddCallback( p_filter->p_libvlc_global, "logo-x", LogoCallback, p_sys );
......
...@@ -192,7 +192,7 @@ static int CreateFilter( vlc_object_t *p_this ) ...@@ -192,7 +192,7 @@ static int CreateFilter( vlc_object_t *p_this )
p_filter->p_cfg ); p_filter->p_cfg );
#define CREATE_VAR( stor, type, var ) \ #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 ); var_AddCallback( p_filter, var, MarqueeCallback, p_sys );
CREATE_VAR( i_xoff, Integer, "marq-x" ); CREATE_VAR( i_xoff, Integer, "marq-x" );
......
...@@ -305,24 +305,17 @@ static int CreateFilter( vlc_object_t *p_this ) ...@@ -305,24 +305,17 @@ static int CreateFilter( vlc_object_t *p_this )
#define GET_VAR( name, min, max ) \ #define GET_VAR( name, min, max ) \
p_sys->i_##name = __MIN( max, __MAX( min, \ p_sys->i_##name = __MIN( max, __MAX( min, \
var_CreateGetInteger( p_filter, CFG_PREFIX #name ) ) ); \ var_CreateGetIntegerCommand( p_filter, CFG_PREFIX #name ) ) ); \
var_Destroy( p_filter, CFG_PREFIX #name ); \ var_AddCallback( p_filter, CFG_PREFIX #name, MosaicCallback, p_sys );
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 );
GET_VAR( width, 0, INT_MAX ); GET_VAR( width, 0, INT_MAX );
GET_VAR( height, 0, INT_MAX ); GET_VAR( height, 0, INT_MAX );
GET_VAR( xoffset, 0, INT_MAX ); GET_VAR( xoffset, 0, INT_MAX );
GET_VAR( yoffset, 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 ) if( p_sys->i_align == 3 || p_sys->i_align == 7 )
p_sys->i_align = 5; 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( borderw, 0, INT_MAX );
GET_VAR( borderh, 0, INT_MAX ); GET_VAR( borderh, 0, INT_MAX );
...@@ -333,11 +326,9 @@ static int CreateFilter( vlc_object_t *p_this ) ...@@ -333,11 +326,9 @@ static int CreateFilter( vlc_object_t *p_this )
GET_VAR( delay, 100, INT_MAX ); GET_VAR( delay, 100, INT_MAX );
p_sys->i_delay *= 1000; p_sys->i_delay *= 1000;
p_sys->b_ar = var_CreateGetBool( p_filter, CFG_PREFIX "keep-aspect-ratio" ); p_sys->b_ar = var_CreateGetBoolCommand( p_filter,
var_Destroy( p_filter, CFG_PREFIX "keep-aspect-ratio" ); CFG_PREFIX "keep-aspect-ratio" );
var_Create( p_libvlc_global, CFG_PREFIX "keep-aspect-ratio", VLC_VAR_INTEGER ); var_AddCallback( p_filter, CFG_PREFIX "keep-aspect-ratio", MosaicCallback,
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 ); p_sys );
p_sys->b_keep = var_CreateGetBool( p_filter, CFG_PREFIX "keep-picture" ); p_sys->b_keep = var_CreateGetBool( p_filter, CFG_PREFIX "keep-picture" );
...@@ -348,10 +339,8 @@ static int CreateFilter( vlc_object_t *p_this ) ...@@ -348,10 +339,8 @@ static int CreateFilter( vlc_object_t *p_this )
p_sys->i_order_length = 0; p_sys->i_order_length = 0;
p_sys->ppsz_order = NULL; p_sys->ppsz_order = NULL;
psz_order = var_CreateGetString( p_filter, CFG_PREFIX "order" ); psz_order = var_CreateGetStringCommand( p_filter, CFG_PREFIX "order" );
var_AddCallback( p_filter, CFG_PREFIX "order", MosaicCallback, p_sys );
var_Create( p_libvlc_global, CFG_PREFIX "order", VLC_VAR_STRING);
var_AddCallback( p_libvlc_global, CFG_PREFIX "order", MosaicCallback, p_sys );
if( psz_order[0] != 0 ) if( psz_order[0] != 0 )
{ {
...@@ -371,26 +360,20 @@ static int CreateFilter( vlc_object_t *p_this ) ...@@ -371,26 +360,20 @@ static int CreateFilter( vlc_object_t *p_this )
} }
/* Manage specific offsets for substreams */ /* Manage specific offsets for substreams */
psz_offsets = var_CreateGetString( p_filter, CFG_PREFIX "offsets" ); psz_offsets = var_CreateGetStringCommand( p_filter, CFG_PREFIX "offsets" );
var_Destroy( p_filter, CFG_PREFIX "offsets" );
p_sys->i_offsets_length = 0; p_sys->i_offsets_length = 0;
p_sys->pi_x_offsets = NULL; p_sys->pi_x_offsets = NULL;
p_sys->pi_y_offsets = NULL; p_sys->pi_y_offsets = NULL;
mosaic_ParseSetOffsets( (vlc_object_t *) p_filter, p_sys, psz_offsets ); mosaic_ParseSetOffsets( (vlc_object_t *) p_filter, p_sys, psz_offsets );
var_Create( p_libvlc_global, CFG_PREFIX "offsets", VLC_VAR_STRING); var_AddCallback( p_filter, CFG_PREFIX "offsets", MosaicCallback, p_sys );
var_SetString( p_libvlc_global, CFG_PREFIX "offsets", psz_offsets );
var_AddCallback( p_libvlc_global, CFG_PREFIX "offsets", MosaicCallback, p_sys );
/* Bluescreen specific stuff */ /* Bluescreen specific stuff */
GET_VAR( bsu, 0x00, 0xff ); GET_VAR( bsu, 0x00, 0xff );
GET_VAR( bsv, 0x00, 0xff ); GET_VAR( bsv, 0x00, 0xff );
GET_VAR( bsut, 0x00, 0xff ); GET_VAR( bsut, 0x00, 0xff );
GET_VAR( bsvt, 0x00, 0xff ); GET_VAR( bsvt, 0x00, 0xff );
p_sys->b_bs = var_CreateGetBool( p_filter, CFG_PREFIX "bs" ); p_sys->b_bs = var_CreateGetBoolCommand( p_filter, CFG_PREFIX "bs" );
var_Destroy( p_filter, CFG_PREFIX "bs" ); var_AddCallback( p_filter, CFG_PREFIX "bs", MosaicCallback, p_sys );
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 );
if( p_sys->b_bs && p_sys->b_keep ) if( p_sys->b_bs && p_sys->b_keep )
{ {
msg_Warn( p_filter, CFG_PREFIX "keep-picture needs to be disabled for" msg_Warn( p_filter, CFG_PREFIX "keep-picture needs to be disabled for"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment