add_integer( "mosaic-bsvt", 17, NULL, BLUESCREENVTOL_TEXT,
BLUESCREENVTOL_LONGTEXT, VLC_FALSE );
- var_Create( p_module->p_libvlc, "mosaic-lock", VLC_VAR_MUTEX );
+ var_Create( p_module->p_libvlc_global, "mosaic-lock", VLC_VAR_MUTEX );
vlc_module_end();
{
filter_t *p_filter = (filter_t *)p_this;
filter_sys_t *p_sys;
- libvlc_t *p_libvlc = p_filter->p_libvlc;
+ libvlc_global_data_t *p_libvlc_global = p_filter->p_libvlc_global;
char *psz_order;
int i_index;
vlc_value_t val;
vlc_mutex_init( p_filter, &p_sys->lock );
vlc_mutex_lock( &p_sys->lock );
- var_Get( p_libvlc, "mosaic-lock", &val );
+ var_Get( p_libvlc_global, "mosaic-lock", &val );
p_sys->p_lock = val.p_address;
#define GET_VAR( name, min, max ) \
p_sys->i_##name = __MIN( max, __MAX( min, \
var_CreateGetInteger( p_filter, "mosaic-" #name ) ) ); \
var_Destroy( p_filter, "mosaic-" #name ); \
- var_Create( p_libvlc, "mosaic-" #name, VLC_VAR_INTEGER ); \
- var_SetInteger( p_libvlc, "mosaic-" #name, p_sys->i_##name ); \
- var_AddCallback( p_libvlc, "mosaic-" #name, MosaicCallback, p_sys );
+ var_Create( p_libvlc_global, "mosaic-" #name, VLC_VAR_INTEGER ); \
+ var_SetInteger( p_libvlc_global, "mosaic-" #name, p_sys->i_##name ); \
+ var_AddCallback( p_libvlc_global, "mosaic-" #name, MosaicCallback, p_sys );
GET_VAR( width, 0, INT_MAX );
GET_VAR( height, 0, INT_MAX );
if( p_sys->i_align == 3 || p_sys->i_align == 7 )
p_sys->i_align = 5;
var_Destroy( p_filter, "mosaic-align" );
- var_Create( p_libvlc, "mosaic-align", VLC_VAR_INTEGER );
- var_SetInteger( p_libvlc, "mosaic-align", p_sys->i_align );
- var_AddCallback( p_libvlc, "mosaic-align", MosaicCallback, p_sys );
+ var_Create( p_libvlc_global, "mosaic-align", VLC_VAR_INTEGER );
+ var_SetInteger( p_libvlc_global, "mosaic-align", p_sys->i_align );
+ var_AddCallback( p_libvlc_global, "mosaic-align", MosaicCallback, p_sys );
GET_VAR( vborder, 0, INT_MAX );
GET_VAR( hborder, 0, INT_MAX );
p_sys->b_ar = var_CreateGetBool( p_filter, "mosaic-keep-aspect-ratio" );
var_Destroy( p_filter, "mosaic-keep-aspect-ratio" );
- var_Create( p_libvlc, "mosaic-keep-aspect-ratio", VLC_VAR_INTEGER );
- var_SetBool( p_libvlc, "mosaic-keep-aspect-ratio", p_sys->b_ar );
- var_AddCallback( p_libvlc, "mosaic-keep-aspect-ratio", MosaicCallback,
+ var_Create( p_libvlc_global, "mosaic-keep-aspect-ratio", VLC_VAR_INTEGER );
+ var_SetBool( p_libvlc_global, "mosaic-keep-aspect-ratio", p_sys->b_ar );
+ var_AddCallback( p_libvlc_global, "mosaic-keep-aspect-ratio", MosaicCallback,
p_sys );
p_sys->b_keep = var_CreateGetBool( p_filter, "mosaic-keep-picture" );
p_sys->ppsz_order = NULL;
psz_order = var_CreateGetString( p_filter, "mosaic-order" );
+ var_Create( p_libvlc_global, "mosaic-order", VLC_VAR_STRING);
+ var_AddCallback( p_libvlc_global, "mosaic-order", MosaicCallback, p_sys );
+
if( psz_order[0] != 0 )
{
char *psz_end = NULL;
GET_VAR( bsvt, 0x00, 0xff );
p_sys->b_bs = var_CreateGetBool( p_filter, "mosaic-bs" );
var_Destroy( p_filter, "mosaic-bs" );
- var_Create( p_libvlc, "mosaic-bs", VLC_VAR_INTEGER );
- var_SetBool( p_libvlc, "mosaic-bs", p_sys->b_bs );
- var_AddCallback( p_libvlc, "mosaic-bs", MosaicCallback, p_sys );
+ var_Create( p_libvlc_global, "mosaic-bs", VLC_VAR_INTEGER );
+ var_SetBool( p_libvlc_global, "mosaic-bs", p_sys->b_bs );
+ var_AddCallback( p_libvlc_global, "mosaic-bs", MosaicCallback, p_sys );
if( p_sys->b_bs && p_sys->b_keep )
{
msg_Warn( p_filter, "mosaic-keep-picture needs to be disabled for"
{
filter_t *p_filter = (filter_t*)p_this;
filter_sys_t *p_sys = p_filter->p_sys;
- libvlc_t *p_libvlc = p_filter->p_libvlc;
+ libvlc_global_data_t *p_libvlc_global = p_filter->p_libvlc_global;
int i_index;
vlc_mutex_lock( &p_sys->lock );
free( p_sys->ppsz_order );
}
- var_Destroy( p_libvlc, "mosaic-alpha" );
- var_Destroy( p_libvlc, "mosaic-height" );
- var_Destroy( p_libvlc, "mosaic-align" );
- var_Destroy( p_libvlc, "mosaic-width" );
- var_Destroy( p_libvlc, "mosaic-xoffset" );
- var_Destroy( p_libvlc, "mosaic-yoffset" );
- var_Destroy( p_libvlc, "mosaic-vborder" );
- var_Destroy( p_libvlc, "mosaic-hborder" );
- var_Destroy( p_libvlc, "mosaic-position" );
- var_Destroy( p_libvlc, "mosaic-rows" );
- var_Destroy( p_libvlc, "mosaic-cols" );
- var_Destroy( p_libvlc, "mosaic-keep-aspect-ratio" );
-
- var_Destroy( p_libvlc, "mosaic-bsu" );
- var_Destroy( p_libvlc, "mosaic-bsv" );
- var_Destroy( p_libvlc, "mosaic-bsut" );
- var_Destroy( p_libvlc, "mosaic-bsvt" );
- var_Destroy( p_libvlc, "mosaic-bs" );
+ var_Destroy( p_libvlc_global, "mosaic-alpha" );
+ var_Destroy( p_libvlc_global, "mosaic-height" );
+ var_Destroy( p_libvlc_global, "mosaic-align" );
+ var_Destroy( p_libvlc_global, "mosaic-width" );
+ var_Destroy( p_libvlc_global, "mosaic-xoffset" );
+ var_Destroy( p_libvlc_global, "mosaic-yoffset" );
+ var_Destroy( p_libvlc_global, "mosaic-vborder" );
+ var_Destroy( p_libvlc_global, "mosaic-hborder" );
+ var_Destroy( p_libvlc_global, "mosaic-position" );
+ var_Destroy( p_libvlc_global, "mosaic-rows" );
+ var_Destroy( p_libvlc_global, "mosaic-cols" );
+ var_Destroy( p_libvlc_global, "mosaic-keep-aspect-ratio" );
+
+ var_Destroy( p_libvlc_global, "mosaic-bsu" );
+ var_Destroy( p_libvlc_global, "mosaic-bsv" );
+ var_Destroy( p_libvlc_global, "mosaic-bsut" );
+ var_Destroy( p_libvlc_global, "mosaic-bsvt" );
+ var_Destroy( p_libvlc_global, "mosaic-bs" );
if( p_sys->p_pic ) p_sys->p_pic->pf_release( p_sys->p_pic );
vlc_mutex_unlock( &p_sys->lock );
p_sys->i_cols = __MAX( newval.i_int, 1 );
vlc_mutex_unlock( &p_sys->lock );
}
+ else if( !strcmp( psz_var, "mosaic-order" ) )
+ {
+ char *psz_order;
+ int i_index;
+ vlc_mutex_lock( &p_sys->lock );
+ msg_Dbg( p_this, "Changing mosaic order to %s", newval.psz_string );
+
+ p_sys->i_order_length = 0;
+ p_sys->ppsz_order = NULL;
+ psz_order = newval.psz_string;
+
+ while( p_sys->i_order_length-- )
+ {
+#if 0
+ printf("%d\n", p_sys->ppsz_order);
+#endif
+ free( p_sys->ppsz_order );
+ }
+ if( psz_order[0] != 0 )
+ {
+ char *psz_end = NULL;
+ i_index = 0;
+ do
+ {
+ psz_end = strchr( psz_order, ',' );
+ i_index++;
+ p_sys->ppsz_order = realloc( p_sys->ppsz_order,
+ i_index * sizeof(char *) );
+ p_sys->ppsz_order[i_index - 1] = strndup( psz_order,
+ psz_end - psz_order );
+ psz_order = psz_end+1;
+ } while( NULL != psz_end );
+ p_sys->i_order_length = i_index;
+ }
+
+ vlc_mutex_unlock( &p_sys->lock );
+ }
else if( !strcmp( psz_var, "mosaic-keep-aspect-ratio" ) )
{
vlc_mutex_lock( &p_sys->lock );