cmd_playlist.cpp
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:4k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * cmd_playlist.cpp
  3.  *****************************************************************************
  4.  * Copyright (C) 2003 the VideoLAN team
  5.  * $Id: 34f50f9ec3999d68619b7b47f8296eb987a04e4d $
  6.  *
  7.  * Authors: Cyril Deguet     <asmax@via.ecp.fr>
  8.  *          Olivier Teulière <ipkiss@via.ecp.fr>
  9.  *
  10.  * This program is free software; you can redistribute it and/or modify
  11.  * it under the terms of the GNU General Public License as published by
  12.  * the Free Software Foundation; either version 2 of the License, or
  13.  * (at your option) any later version.
  14.  *
  15.  * This program is distributed in the hope that it will be useful,
  16.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.  * GNU General Public License for more details.
  19.  *
  20.  * You should have received a copy of the GNU General Public License
  21.  * along with this program; if not, write to the Free Software
  22.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  23.  *****************************************************************************/
  24. #include "cmd_playlist.hpp"
  25. #include <vlc_playlist.h>
  26. #include "../src/vlcproc.hpp"
  27. #include "../utils/var_bool.hpp"
  28. void CmdPlaylistDel::execute()
  29. {
  30.     m_rList.delSelected();
  31. }
  32. void CmdPlaylistNext::execute()
  33. {
  34.     playlist_t *pPlaylist = getIntf()->p_sys->p_playlist;
  35.     if( pPlaylist != NULL )
  36.     {
  37.         playlist_Next( pPlaylist );
  38.     }
  39. }
  40. void CmdPlaylistPrevious::execute()
  41. {
  42.     playlist_t *pPlaylist = getIntf()->p_sys->p_playlist;
  43.     if( pPlaylist != NULL )
  44.     {
  45.         playlist_Prev( pPlaylist );
  46.     }
  47. }
  48. void CmdPlaylistRandom::execute()
  49. {
  50.     playlist_t *pPlaylist = getIntf()->p_sys->p_playlist;
  51.     if( pPlaylist != NULL )
  52.     {
  53.         vlc_value_t val;
  54.         val.b_bool = m_value;
  55.         var_Set( pPlaylist , "random", val);
  56.     }
  57. }
  58. void CmdPlaylistLoop::execute()
  59. {
  60.     playlist_t *pPlaylist = getIntf()->p_sys->p_playlist;
  61.     if( pPlaylist != NULL )
  62.     {
  63.         vlc_value_t val;
  64.         val.b_bool = m_value;
  65.         var_Set( pPlaylist , "loop", val);
  66.     }
  67. }
  68. void CmdPlaylistRepeat::execute()
  69. {
  70.     playlist_t *pPlaylist = getIntf()->p_sys->p_playlist;
  71.     if( pPlaylist != NULL )
  72.     {
  73.         vlc_value_t val;
  74.         val.b_bool = m_value;
  75.         var_Set( pPlaylist , "repeat", val);
  76.     }
  77. }
  78. void CmdPlaylistLoad::execute()
  79. {
  80.     playlist_t *pPlaylist = getIntf()->p_sys->p_playlist;
  81.     if( pPlaylist != NULL )
  82.         playlist_Import( pPlaylist, m_file.c_str() );
  83. }
  84. void CmdPlaylistSave::execute()
  85. {
  86.     playlist_t *pPlaylist = getIntf()->p_sys->p_playlist;
  87.     if( pPlaylist != NULL )
  88.     {
  89.         static const char psz_xspf[] = "export-xspf",
  90.                           psz_m3u[] = "export-m3u",
  91.                           psz_html[] = "export-html";
  92.         const char *psz_module;
  93.         if( m_file.find( ".xsp", 0 ) != string::npos )
  94.             psz_module = psz_xspf;
  95.         else if( m_file.find( "m3u", 0 ) != string::npos )
  96.             psz_module = psz_m3u;
  97.         else if( m_file.find( "html", 0 ) != string::npos )
  98.             psz_module = psz_html;
  99.         else
  100.         {
  101.             msg_Err( getIntf(), "Impossible to recognise the file type" );
  102.             return;
  103.         }
  104.         playlist_Export( pPlaylist, m_file.c_str(), pPlaylist->p_local_category, psz_module );
  105.     }
  106. }
  107. void CmdPlaylistFirst::execute()
  108. {
  109.     playlist_t *pPlaylist = getIntf()->p_sys->p_playlist;
  110.     playlist_Lock( pPlaylist );
  111.     playlist_Control( pPlaylist, PLAYLIST_PLAY, pl_Locked );
  112.     playlist_Unlock( pPlaylist );
  113. }