⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 playlist.cpp

📁 video linux conference
💻 CPP
📖 第 1 页 / 共 3 页
字号:
            playlist_Export( p_playlist, p_arg->psz_results[0], psz_export );        }        if( p_playlist ) vlc_object_release( p_playlist );    }}void Playlist::OnSave(){    char *psz_filters ="M3U file|*.m3u|PLS file|*.pls";    intf_dialog_args_t *p_arg =        (intf_dialog_args_t *)malloc( sizeof(intf_dialog_args_t) );    memset( p_arg, 0, sizeof(intf_dialog_args_t) );    p_arg->psz_title = strdup( "Save playlist" );    p_arg->psz_extensions = strdup( psz_filters );    p_arg->b_save = VLC_TRUE;    p_arg->p_arg = p_intf;    p_arg->pf_callback = OnSaveCB;    p_intf->p_sys->pf_show_dialog( p_intf, INTF_DIALOG_FILE_GENERIC,                                   0, p_arg );}/********************************************************************** * Selection functions **********************************************************************/void Playlist::OnDeleteSelection(){    /* Delete from the end to the beginning, to avoid a shift of indices */    for( long item = ((int) ListView_GetItemCount( hListView ) - 1);         item >= 0; item-- )    {        if( ListView_GetItemState( hListView, item, LVIS_SELECTED ) )        {            DeleteItem( item );        }    }}void Playlist::OnInvertSelection(){    UINT iState;    for( long item = 0; item < ListView_GetItemCount( hListView ); item++ )    {        iState = ListView_GetItemState( hListView, item, LVIS_STATEIMAGEMASK );        ListView_SetItemState( hListView, item, iState ^ LVIS_SELECTED,                               LVIS_STATEIMAGEMASK );    }}void Playlist::OnEnableSelection(){    playlist_t *p_playlist = (playlist_t *)        vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );    if( p_playlist == NULL ) return;    for( long item = ListView_GetItemCount( hListView ) - 1;         item >= 0; item-- )    {        if( ListView_GetItemState( hListView, item, LVIS_SELECTED ) )        {            playlist_item_t *p_item =                playlist_ItemGetByPos( p_playlist, item );            playlist_Enable( p_playlist, p_item );            UpdateItem( item );        }    }    vlc_object_release( p_playlist);}void Playlist::OnDisableSelection(){    playlist_t *p_playlist = (playlist_t *)        vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );    if( p_playlist == NULL ) return;    for( long item = ListView_GetItemCount( hListView ) - 1;         item >= 0; item-- )    {        if( ListView_GetItemState( hListView, item, LVIS_SELECTED ) )        {            /*XXX*/            playlist_item_t *p_item =                playlist_ItemGetByPos( p_playlist, item );            playlist_Disable( p_playlist, p_item );            UpdateItem( item );        }    }    vlc_object_release( p_playlist);}void Playlist::OnSelectAll(){    for( long item = 0; item < ListView_GetItemCount( hListView ); item++ )    {        ListView_SetItemState( hListView, item, LVIS_FOCUSED | LVIS_SELECTED,                               LVIS_STATEIMAGEMASK );    }}void Playlist::OnActivateItem( int i_item ){    playlist_t *p_playlist = (playlist_t *)        vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );    if( p_playlist == NULL ) return;    playlist_Goto( p_playlist, i_item );    vlc_object_release( p_playlist );}void Playlist::ShowInfos( HWND hwnd, int i_item ){    playlist_t *p_playlist = (playlist_t *)        vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );    if( p_playlist == NULL ) return;    vlc_mutex_lock( &p_playlist->object_lock);    playlist_item_t *p_item = playlist_ItemGetByPos( p_playlist, i_item );    vlc_mutex_unlock( &p_playlist->object_lock );    if( p_item )    {        ItemInfoDialog *iteminfo_dialog =            new ItemInfoDialog( p_intf, this, hInst, p_item );        CreateDialogBox( hwnd, iteminfo_dialog );                        UpdateItem( i_item );        delete iteminfo_dialog;    }    vlc_object_release( p_playlist );}/******************************************************************** * Move functions ********************************************************************/void Playlist::OnUp(){    playlist_t *p_playlist = (playlist_t *)        vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );    if( p_playlist == NULL ) return;    /* We use the first selected item, so find it */    long i_item =        ListView_GetNextItem( hListView, -1, LVIS_SELECTED | LVNI_ALL );    if( i_item > 0 && i_item < p_playlist->i_size )    {        playlist_Move( p_playlist , i_item, i_item - 1);        if( i_item > 1 )        {            ListView_SetItemState( hListView, i_item - 1, LVIS_FOCUSED,                                   LVIS_STATEIMAGEMASK );        }        else        {            ListView_SetItemState( hListView, 0, LVIS_FOCUSED,                                   LVIS_STATEIMAGEMASK );        }    }    vlc_object_release( p_playlist );    return;}void Playlist::OnDown(){    playlist_t *p_playlist = (playlist_t *)        vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );    if( p_playlist == NULL ) return;    /* We use the first selected item, so find it */    long i_item =        ListView_GetNextItem( hListView, -1, LVIS_SELECTED | LVNI_ALL );    if( i_item >= 0 && i_item < p_playlist->i_size - 1 )    {        playlist_Move( p_playlist , i_item, i_item + 2 );        ListView_SetItemState( hListView, i_item + 1, LVIS_FOCUSED,                               LVIS_STATEIMAGEMASK );    }    vlc_object_release( p_playlist );    return;}/********************************************************************** * Playlist mode functions **********************************************************************/void Playlist::OnRandom(){    vlc_value_t val;    int bState = SendMessage( hwndTB, TB_GETSTATE, Random_Event, 0 );     val.b_bool = (bState & TBSTATE_CHECKED) ? VLC_TRUE : VLC_FALSE;    playlist_t *p_playlist = (playlist_t *)        vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );    if( p_playlist == NULL ) return;    var_Set( p_playlist , "random", val );    vlc_object_release( p_playlist );}void Playlist::OnLoop (){    vlc_value_t val;    int bState = SendMessage( hwndTB, TB_GETSTATE, Loop_Event, 0 );     val.b_bool = (bState & TBSTATE_CHECKED) ? VLC_TRUE : VLC_FALSE;    playlist_t *p_playlist = (playlist_t *)        vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );    if( p_playlist == NULL ) return;    var_Set( p_playlist , "loop", val );    vlc_object_release( p_playlist );}void Playlist::OnRepeat (){    vlc_value_t val;    int bState = SendMessage( hwndTB, TB_GETSTATE, Repeat_Event, 0 );      val.b_bool = (bState & TBSTATE_CHECKED) ? VLC_TRUE : VLC_FALSE;    playlist_t *p_playlist = (playlist_t *)        vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );    if( p_playlist == NULL ) return;    var_Set( p_playlist , "repeat", val );    vlc_object_release( p_playlist );}/******************************************************************** * Sorting functions ********************************************************************/void Playlist::OnSort( UINT event ){    playlist_t *p_playlist = (playlist_t *)        vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );    if( p_playlist == NULL ) return;    switch( event )    {    case ID_SORT_TITLE:        playlist_SortTitle( p_playlist , ORDER_NORMAL );        break;    case ID_SORT_RTITLE:        playlist_SortTitle( p_playlist , ORDER_REVERSE );        break;    case ID_SORT_AUTHOR:        playlist_SortAuthor(p_playlist , ORDER_NORMAL );        break;    case ID_SORT_RAUTHOR:        playlist_SortAuthor( p_playlist , ORDER_REVERSE );        break;    case ID_SORT_SHUFFLE:        playlist_Sort( p_playlist , SORT_RANDOM, ORDER_NORMAL );        break;    }    vlc_object_release( p_playlist );    b_need_update = VLC_TRUE;    return;}void Playlist::OnColSelect( int iSubItem ){    playlist_t *p_playlist = (playlist_t *)        vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );    if( p_playlist == NULL ) return;    switch( iSubItem )    {    case 0:        if( i_title_sorted != 1 )        {            playlist_SortTitle( p_playlist, ORDER_NORMAL );            i_title_sorted = 1;        }        else        {            playlist_SortTitle( p_playlist, ORDER_REVERSE );            i_title_sorted = -1;        }        break;    case 1:        if( i_author_sorted != 1 )        {            playlist_SortAuthor( p_playlist, ORDER_NORMAL );            i_author_sorted = 1;        }        else        {            playlist_SortAuthor( p_playlist, ORDER_REVERSE );            i_author_sorted = -1;        }        break;    default:        break;    }    vlc_object_release( p_playlist );    b_need_update = VLC_TRUE;    return;}/***************************************************************************** * Popup management functions *****************************************************************************/void Playlist::OnPopupPlay(){    int i_popup_item =        ListView_GetNextItem( hListView, -1, LVIS_SELECTED | LVNI_ALL );    playlist_t *p_playlist = (playlist_t *)        vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );    if( p_playlist == NULL ) return;    if( i_popup_item != -1 )    {        playlist_Goto( p_playlist, i_popup_item );    }    vlc_object_release( p_playlist );}void Playlist::OnPopupDel(){    int i_popup_item =        ListView_GetNextItem( hListView, -1, LVIS_SELECTED | LVNI_ALL );    DeleteItem( i_popup_item );}void Playlist::OnPopupEna(){    int i_popup_item =        ListView_GetNextItem( hListView, -1, LVIS_SELECTED | LVNI_ALL );    playlist_t *p_playlist = (playlist_t *)        vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );    if( p_playlist == NULL ) return;    playlist_item_t *p_item =        playlist_ItemGetByPos( p_playlist, i_popup_item );    if( p_playlist->pp_items[i_popup_item]->b_enabled )        //playlist_IsEnabled( p_playlist, i_popup_item ) )    {        playlist_Disable( p_playlist, p_item );    }    else    {        playlist_Enable( p_playlist, p_item );    }    vlc_object_release( p_playlist);    UpdateItem( i_popup_item );}void Playlist::OnPopupInfo( HWND hwnd ){    int i_popup_item =        ListView_GetNextItem( hListView, -1, LVIS_SELECTED | LVNI_ALL );    ShowInfos( hwnd, i_popup_item );}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -