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

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * playlist.h:  Playlist import module common functions
  3.  *****************************************************************************
  4.  * Copyright (C) 2004 the VideoLAN team
  5.  * $Id: 13803f6bb580d1c4017006295a5342a16e5bda8f $
  6.  *
  7.  * Authors: Sigmund Augdal Helberg <dnumgis@videolan.org>
  8.  *
  9.  * This program is free software; you can redistribute it and/or modify
  10.  * it under the terms of the GNU General Public License as published by
  11.  * the Free Software Foundation; either version 2 of the License, or
  12.  * (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  22.  *****************************************************************************/
  23. #include <vlc_input.h>
  24. char *ProcessMRL( char *, char * );
  25. char *FindPrefix( demux_t * );
  26. int Import_Old ( vlc_object_t * );
  27. int Import_Native ( vlc_object_t * );
  28. void Close_Native ( vlc_object_t * );
  29. int Import_M3U ( vlc_object_t * );
  30. void Close_M3U ( vlc_object_t * );
  31. int Import_RAM ( vlc_object_t * );
  32. void Close_RAM ( vlc_object_t * );
  33. int Import_PLS ( vlc_object_t * );
  34. void Close_PLS ( vlc_object_t * );
  35. int Import_B4S ( vlc_object_t * );
  36. void Close_B4S ( vlc_object_t * );
  37. int Import_DVB ( vlc_object_t * );
  38. void Close_DVB ( vlc_object_t * );
  39. int Import_podcast ( vlc_object_t * );
  40. void Close_podcast ( vlc_object_t * );
  41. int Import_xspf ( vlc_object_t * );
  42. void Close_xspf ( vlc_object_t * );
  43. int Import_Shoutcast ( vlc_object_t * );
  44. void Close_Shoutcast ( vlc_object_t * );
  45. int Import_ASX ( vlc_object_t * );
  46. void Close_ASX ( vlc_object_t * );
  47. int Import_SGIMB ( vlc_object_t * );
  48. void Close_SGIMB ( vlc_object_t * );
  49. int Import_QTL ( vlc_object_t * );
  50. void Close_QTL ( vlc_object_t * );
  51. int Import_GVP ( vlc_object_t * );
  52. void Close_GVP ( vlc_object_t * );
  53. int Import_IFO ( vlc_object_t * );
  54. void Close_IFO ( vlc_object_t * );
  55. int Import_VideoPortal ( vlc_object_t * );
  56. void Close_VideoPortal ( vlc_object_t * );
  57. int Import_iTML ( vlc_object_t * );
  58. void Close_iTML ( vlc_object_t * );
  59. #define INIT_PLAYLIST_STUFF 
  60.     input_thread_t *p_input_thread = (input_thread_t *)vlc_object_find( p_demux, VLC_OBJECT_INPUT, FIND_PARENT ); 
  61.     input_item_t *p_current_input = input_GetItem( p_input_thread );
  62. #define HANDLE_PLAY_AND_RELEASE 
  63.     vlc_object_release( p_input_thread );
  64. #define STANDARD_DEMUX_INIT_MSG( msg ) do { 
  65.     DEMUX_INIT_COMMON();                    
  66.     msg_Dbg( p_demux, "%s", msg ); } while(0)
  67. #define DEMUX_BY_EXTENSION_MSG( ext, msg ) 
  68.     demux_t *p_demux = (demux_t *)p_this; 
  69.     if( !demux_IsPathExtension( p_demux, ext ) ) 
  70.         return VLC_EGENERIC; 
  71.     STANDARD_DEMUX_INIT_MSG( msg );
  72. #define DEMUX_BY_EXTENSION_OR_FORCED_MSG( ext, module, msg ) 
  73.     demux_t *p_demux = (demux_t *)p_this; 
  74.     if( !demux_IsPathExtension( p_demux, ext ) && !demux_IsForced( p_demux, module ) ) 
  75.         return VLC_EGENERIC; 
  76.     STANDARD_DEMUX_INIT_MSG( msg );
  77. #define CHECK_PEEK( zepeek, size ) do { 
  78.     if( stream_Peek( p_demux->s , &zepeek, size ) < size ){ 
  79.         msg_Dbg( p_demux, "not enough data" ); return VLC_EGENERIC; } } while(0)
  80. #define POKE( peek, stuff, size ) (strncasecmp( (const char *)peek, stuff, size )==0)