- (void)manage
{
playlist_t * p_playlist;
+ input_thread_t * p_input = NULL;
/* new thread requires a new pool */
NSAutoreleasePool * o_pool = [[NSAutoreleasePool alloc] init];
{
vlc_mutex_lock( &p_intf->change_lock );
- if( p_intf->p_sys->p_input == NULL )
+ if( !p_input )
{
- p_intf->p_sys->p_input = playlist_CurrentInput( p_playlist );
+ p_input = playlist_CurrentInput( p_playlist );
/* Refresh the interface */
- if( p_intf->p_sys->p_input )
+ if( p_input )
{
msg_Dbg( p_intf, "input has changed, refreshing interface" );
p_intf->p_sys->b_input_update = true;
}
}
- else if( !vlc_object_alive (p_intf->p_sys->p_input) || p_intf->p_sys->p_input->b_dead )
+ else if( !vlc_object_alive (p_input) || p_input->b_dead )
{
/* input stopped */
p_intf->p_sys->b_intf_update = true;
p_intf->p_sys->i_play_status = END_S;
msg_Dbg( p_intf, "input has stopped, refreshing interface" );
- vlc_object_release( p_intf->p_sys->p_input );
- p_intf->p_sys->p_input = NULL;
+ vlc_object_release( p_input );
+ p_input = NULL;
}
/* Manage volume status */
vlc_object_unlock( p_intf );
[o_pool release];
+ if( p_input ) vlc_object_release( p_input );
+
var_DelCallback( p_playlist, "playlist-current", PlaylistChanged, self );
var_DelCallback( p_playlist, "intf-change", PlaylistChanged, self );
var_DelCallback( p_playlist, "item-change", PlaylistChanged, self );