/* */
vlc_mutex_t lock;
bool b_change;
+ struct
+ {
+ int i_cols;
+ int i_rows;
+ bool b_blackslot;
+ } change;
};
#define SHUFFLE_WIDTH 81
p_sys->pi_order = NULL;
vlc_mutex_init( &p_sys->lock );
- p_sys->i_rows = var_CreateGetIntegerCommand( p_filter, CFG_PREFIX "rows" );
- p_sys->i_cols = var_CreateGetIntegerCommand( p_filter, CFG_PREFIX "cols" );
- p_sys->b_blackslot = var_CreateGetBoolCommand( p_filter, CFG_PREFIX "black-slot" );
+ p_sys->change.i_rows =
+ var_CreateGetIntegerCommand( p_filter, CFG_PREFIX "rows" );
+ p_sys->change.i_cols =
+ var_CreateGetIntegerCommand( p_filter, CFG_PREFIX "cols" );
+ p_sys->change.b_blackslot =
+ var_CreateGetBoolCommand( p_filter, CFG_PREFIX "black-slot" );
p_sys->b_change = true;
var_AddCallback( p_filter, CFG_PREFIX "rows", PuzzleCallback, p_sys );
var_AddCallback( p_filter, CFG_PREFIX "black-slot", PuzzleCallback, p_sys );
p_filter->pf_video_filter = Filter;
- p_filter->pf_mouse = Mouse;
+ p_filter->pf_video_mouse = Mouse;
return VLC_SUCCESS;
}
vlc_mutex_lock( &p_sys->lock );
if( p_sys->b_change )
{
+ p_sys->i_rows = p_sys->change.i_rows;
+ p_sys->i_cols = p_sys->change.i_cols;
+ p_sys->b_blackslot = p_sys->change.b_blackslot;
p_sys->b_change = false;
+
Shuffle( p_sys );
}
vlc_mutex_unlock( &p_sys->lock );
vlc_mutex_lock( &p_sys->lock );
if( !strcmp( psz_var, CFG_PREFIX "rows" ) )
{
- p_sys->i_rows = __MAX( 1, newval.i_int );
+ p_sys->change.i_rows = __MAX( 1, newval.i_int );
}
else if( !strcmp( psz_var, CFG_PREFIX "cols" ) )
{
- p_sys->i_cols = __MAX( 1, newval.i_int );
+ p_sys->change.i_cols = __MAX( 1, newval.i_int );
}
else if( !strcmp( psz_var, CFG_PREFIX "black-slot" ) )
{
- p_sys->b_blackslot = newval.b_bool;
+ p_sys->change.b_blackslot = newval.b_bool;
}
p_sys->b_change = true;
vlc_mutex_unlock( &p_sys->lock );
{
const int i_count = p_sys->i_cols * p_sys->i_rows;
- if( p_sys->b_blackslot )
+ if( !p_sys->b_blackslot )
return true;
int d = 0;
}
p_sys->b_finished = IsFinished( p_sys );
- } while( p_sys->b_finished || IsValid( p_sys ) );
+ } while( p_sys->b_finished || !IsValid( p_sys ) );
if( p_sys->b_blackslot )
{