Commit b9a26cf1 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont
Browse files

Pass input item through playlist item-change rather than its ID

parent ea9c21f4
......@@ -414,13 +414,14 @@ int VlcProc::onItemChange( vlc_object_t *pObj, const char *pVariable,
void *pParam )
{
VlcProc *pThis = (VlcProc*)pParam;
input_item_t *p_item = newval.p_address;
// Update the stream variable
pThis->updateStreamName();
// Create a playtree notify command
CmdPlaytreeUpdate *pCmdTree = new CmdPlaytreeUpdate( pThis->getIntf(),
newVal.i_int );
p_item->i_id );
// Push the command in the asynchronous command queue
AsyncQueue *pQueue = AsyncQueue::instance( pThis->getIntf() );
......
......@@ -183,7 +183,9 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var,
}
else
{
if( newval.i_int != p_intf->p_sys->i_id ) /* "item-change" */
input_item_t *p_item = newval.p_address;
if( p_item->i_id != p_intf->p_sys->i_id ) /* "item-change" */
return VLC_SUCCESS;
/* Some variable bitrate inputs call "item-change callbacks each time
* their length is updated, that is several times per second.
......
......@@ -272,8 +272,7 @@ static void VariablesInit( playlist_t *p_playlist )
var_Create( p_playlist, "intf-change", VLC_VAR_BOOL );
var_SetBool( p_playlist, "intf-change", true );
var_Create( p_playlist, "item-change", VLC_VAR_INTEGER );
var_SetInteger( p_playlist, "item-change", -1 );
var_Create( p_playlist, "item-change", VLC_VAR_ADDRESS );
var_Create( p_playlist, "playlist-item-deleted", VLC_VAR_INTEGER );
var_SetInteger( p_playlist, "playlist-item-deleted", -1 );
......
......@@ -419,7 +419,7 @@ static void *Thread( void *p_data )
{
PL_DEBUG( "found art for %s in cache", psz_name );
input_item_SetArtFetched( p_item, true );
var_SetInteger( p_playlist, "item-change", p_item->i_id );
var_SetAddress( p_playlist, "item-change", p_item );
}
else
{
......
......@@ -117,7 +117,7 @@ static void input_item_changed( const vlc_event_t * p_event,
{
playlist_item_t *p_item = user_data;
VLC_UNUSED( p_event );
var_SetInteger( p_item->p_playlist, "item-change", p_item->p_input->i_id );
var_SetAddress( p_item->p_playlist, "item-change", p_item->p_input );
}
/*****************************************************************************
......@@ -625,7 +625,7 @@ static playlist_item_t *ItemToNode( playlist_t *p_playlist,
}
pl_priv(p_playlist)->b_reset_currently_playing = true;
vlc_cond_signal( &pl_priv(p_playlist)->signal );
var_SetInteger( p_playlist, "item-change", p_item_in_category->p_input->i_id );
var_SetAddress( p_playlist, "item-change", p_item_in_category->p_input );
PL_UNLOCK_IF( !b_locked );
return p_item_in_category;
}
......
......@@ -130,7 +130,7 @@ static void Preparse( playlist_t *p_playlist, input_item_t *p_item )
input_Preparse( VLC_OBJECT(p_playlist), p_item );
input_item_SetPreparsed( p_item, true );
var_SetInteger( p_playlist, "item-change", p_item->i_id );
var_SetAddress( p_playlist, "item-change", p_item );
}
stats_TimerStop( p_playlist, STATS_TIMER_PREPARSE );
......
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