input_item_t *p_item )
{
int i;
- if( p_playlist->status.p_item && p_playlist->status.p_item->p_input == p_item )
+ if( p_playlist->status.p_item &&
+ p_playlist->status.p_item->p_input == p_item )
{
return p_playlist->status.p_item;
}
for( i = 0 ; i < p_playlist->i_all_size; i++ )
{
-msg_Err( p_playlist, "%p, %p", p_item, p_playlist->pp_all_items[i]->p_input );
- if( p_playlist->pp_all_items[i]->p_input == p_item )
+ if( p_playlist->pp_all_items[i]->p_input->i_id == p_item->i_id )
{
return p_playlist->pp_all_items[i];
}
{
playlist_LiveSearchUpdate( p_playlist, p_item, psz_string );
}
- /* Todo: Filter on all fields */
- if( strcasestr( p_item->p_input->psz_name, psz_string ) )
+#define META_MATCHES( field ) ( p_item->p_input->p_meta && \
+ p_item->p_input->p_meta->psz_##field && \
+ strcasestr( p_item->p_input->p_meta->psz_##field, psz_string ) )
+ if( strcasestr( p_item->p_input->psz_name, psz_string ) ||
+ META_MATCHES( artist ) || META_MATCHES( album ) )
p_item->i_flags &= ~PLAYLIST_DBL_FLAG;
else
p_item->i_flags |= PLAYLIST_DBL_FLAG;