bool b_dead;
vlc_array_t *p_events;
vlc_mutex_t lock;
+ input_thread_t *p_input;
};
typedef struct
p_sys->b_meta_read = false;
p_sys->i_caps = CAPS_NONE;
p_sys->b_dead = false;
+ p_sys->p_input = NULL;
dbus_error_init( &error );
intf_thread_t *p_intf = (intf_thread_t*) p_this;
intf_sys_t *p_sys = p_intf->p_sys;
playlist_t *p_playlist = p_sys->p_playlist;
- input_thread_t *p_input;
var_DelCallback( p_playlist, "item-current", AllCallback, p_intf );
var_DelCallback( p_playlist, "intf-change", AllCallback, p_intf );
var_DelCallback( p_playlist, "repeat", AllCallback, p_intf );
var_DelCallback( p_playlist, "loop", AllCallback, p_intf );
-#if 0
- p_input = ???;
- if ( p_input )
+ if( p_sys->p_input )
{
- var_DelCallback( p_input, "state", AllCallback, p_intf );
- vlc_object_release( p_input );
+ var_DelCallback( p_sys->p_input, "state", AllCallback, p_intf );
+ vlc_object_release( p_sys->p_input );
}
-#endif
+
dbus_connection_unref( p_sys->p_conn );
// Free the events array
if( p_intf->p_sys->b_dead )
return VLC_SUCCESS;
+ if( p_sys->p_input )
+ {
+ var_DelCallback( p_sys->p_input, "state", AllCallback, p_intf );
+ vlc_object_release( p_sys->p_input );
+ p_sys->p_input = NULL;
+ }
+
p_sys->b_meta_read = false;
p_input = playlist_CurrentInput( p_playlist );
TrackChangeSignal( p_sys->p_conn, p_item );
}
-#if 0
+ p_sys->p_input = p_input;
var_AddCallback( p_input, "state", AllCallback, p_intf );
-#endif
+
return VLC_SUCCESS;
}