/**************************************************************************
 *       media_list_(item|will)_* (private) (Event callback)
 **************************************************************************/
static void
media_list_item_added( const libvlc_event_t * p_event, void * user_data )
{
    libvlc_media_t * p_md;
    libvlc_media_list_view_t * p_mlv = user_data;
    int index = p_event->u.media_list_item_added.index;
    p_md = p_event->u.media_list_item_added.item;
    libvlc_media_list_view_item_added( p_mlv, p_md, index );
}
Esempio n. 2
0
/**************************************************************************
 *       ml_item_added  (private) (Callback from media_list_view item_added)
 **************************************************************************/
static void
ml_item_added( const libvlc_event_t * p_event, libvlc_media_list_view_t * p_mlv )
{
    int index = vlc_array_count( &p_mlv->p_this_view_data->array );
    libvlc_media_t * p_md = p_event->u.media_list_item_added.item;
    libvlc_media_retain( p_md );
    trace("appending item at index %d\n", index);

    libvlc_media_list_view_will_add_item( p_mlv, p_md, index );
    vlc_array_append( &p_mlv->p_this_view_data->array, p_md );
    libvlc_media_list_view_item_added( p_mlv, p_md, index );
}
static void
media_list_item_added( const libvlc_event_t * p_event, void * user_data )
{
    libvlc_media_t * p_md;
    libvlc_media_list_view_t * p_mlv = user_data;
    int index;
    p_md = p_event->u.media_list_item_added.item;
    index = index_of_item( p_mlv, p_md );
    trace("%d\n", index);
    if( index >= 0)
        libvlc_media_list_view_item_added( p_mlv, p_md, index );
    libvlc_event_attach( p_md->p_event_manager, libvlc_MediaSubItemAdded,
                         items_subitems_added, p_mlv, NULL );
                         
}
/**************************************************************************
 *       media_list_(item|will)_* (private) (Event callback)
 **************************************************************************/
static void
items_subitems_added( const libvlc_event_t * p_event, void * user_data )
{
    libvlc_media_t * p_md;
    libvlc_media_list_view_t * p_mlv = user_data;
    int index;
    p_md = p_event->p_obj;
    if( !item_is_already_added( p_md ) )
    {
        index = index_of_item( p_mlv, p_md );
        trace("%d\n", index);
        if( index >= 0 )
        {
            libvlc_media_list_view_will_add_item( p_mlv, p_md, index );
            libvlc_media_list_view_item_added( p_mlv, p_md, index );
        }
    }
    else
    {
        trace("item already added\n");
    }
}