Commit 2b5eb318 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Don't reregister the same callbacks over and over again

parent 77bea349
...@@ -108,6 +108,10 @@ static void ManageSlider ( intf_thread_t * ); ...@@ -108,6 +108,10 @@ static void ManageSlider ( intf_thread_t * );
static void ReadDir ( intf_thread_t * ); static void ReadDir ( intf_thread_t * );
static void start_color_and_pairs ( intf_thread_t * ); static void start_color_and_pairs ( intf_thread_t * );
static playlist_t *pl_Get( intf_thread_t *p_intf )
{
return p_intf->p_sys->p_playlist;
}
/***************************************************************************** /*****************************************************************************
* Module descriptor * Module descriptor
...@@ -180,6 +184,7 @@ struct pl_item_t ...@@ -180,6 +184,7 @@ struct pl_item_t
struct intf_sys_t struct intf_sys_t
{ {
input_thread_t *p_input; input_thread_t *p_input;
playlist_t *p_playlist;
bool b_color; bool b_color;
bool b_color_started; bool b_color_started;
...@@ -335,12 +340,8 @@ static void Close( vlc_object_t *p_this ) ...@@ -335,12 +340,8 @@ static void Close( vlc_object_t *p_this )
{ {
intf_thread_t *p_intf = (intf_thread_t *)p_this; intf_thread_t *p_intf = (intf_thread_t *)p_this;
intf_sys_t *p_sys = p_intf->p_sys; intf_sys_t *p_sys = p_intf->p_sys;
playlist_t *p_playlist = pl_Get( p_intf );
int i; int i;
var_DelCallback( p_playlist, "intf-change", PlaylistChanged, p_intf );
var_DelCallback( p_playlist, "item-append", PlaylistChanged, p_intf );
PlaylistDestroy( p_intf ); PlaylistDestroy( p_intf );
for( i = 0; i < p_sys->i_dir_entries; i++ ) for( i = 0; i < p_sys->i_dir_entries; i++ )
...@@ -384,6 +385,7 @@ static void Run( intf_thread_t *p_intf ) ...@@ -384,6 +385,7 @@ static void Run( intf_thread_t *p_intf )
{ {
intf_sys_t *p_sys = p_intf->p_sys; intf_sys_t *p_sys = p_intf->p_sys;
playlist_t *p_playlist = pl_Yield( p_intf ); playlist_t *p_playlist = pl_Yield( p_intf );
p_sys->p_playlist = p_playlist;
int i_key; int i_key;
time_t t_last_refresh; time_t t_last_refresh;
...@@ -396,15 +398,14 @@ static void Run( intf_thread_t *p_intf ) ...@@ -396,15 +398,14 @@ static void Run( intf_thread_t *p_intf )
* force building of the playlist array * force building of the playlist array
*/ */
PlaylistRebuild( p_intf ); PlaylistRebuild( p_intf );
var_AddCallback( p_playlist, "intf-change", PlaylistChanged, p_intf );
var_AddCallback( p_playlist, "item-append", PlaylistChanged, p_intf );
while( !intf_ShouldDie( p_intf ) ) while( !intf_ShouldDie( p_intf ) )
{ {
msleep( INTF_IDLE_SLEEP ); msleep( INTF_IDLE_SLEEP );
/* Update the input */ /* Update the input */
var_AddCallback( p_playlist, "intf-change", PlaylistChanged, p_intf );
var_AddCallback( p_playlist, "item-append", PlaylistChanged, p_intf );
PL_LOCK; PL_LOCK;
if( p_sys->p_input == NULL ) if( p_sys->p_input == NULL )
{ {
...@@ -458,6 +459,8 @@ static void Run( intf_thread_t *p_intf ) ...@@ -458,6 +459,8 @@ static void Run( intf_thread_t *p_intf )
Redraw( p_intf, &t_last_refresh ); Redraw( p_intf, &t_last_refresh );
} }
} }
var_DelCallback( p_playlist, "intf-change", PlaylistChanged, p_intf );
var_DelCallback( p_playlist, "item-append", PlaylistChanged, p_intf );
} }
/* following functions are local */ /* following functions are local */
......
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