00001 /***************************************************************************** 00002 * vlm_stream.hpp: Representation of a VLM Stream 00003 ***************************************************************************** 00004 * Copyright (C) 1999-2005 the VideoLAN team 00005 * $Id$ 00006 * 00007 * Authors: Clément Stenac <zorglub@videolan.org> 00008 * 00009 * This program is free software; you can redistribute it and/or modify 00010 * it under the terms of the GNU General Public License as published by 00011 * the Free Software Foundation; either version 2 of the License, or 00012 * (at your option) any later version. 00013 * 00014 * This program is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 * GNU General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU General Public License 00020 * along with this program; if not, write to the Free Software 00021 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. 00022 *****************************************************************************/ 00023 00024 /* FIXME : This is not WX-specific and should be moved to core */ 00025 #ifndef _VLM_STREAM_H_ 00026 #define _VLM_STREAM_H_ 00027 00028 #include <vlc_common.h> 00029 #include <vlc_interface.h> 00030 #include <vlc_vlm.h> 00031 00032 #include <string> 00033 using namespace std; 00034 00035 class VLMWrapper; 00036 00037 /** 00038 * This class encapsulates a VLM Stream and provides additional services 00039 */ 00040 class VLMStream 00041 { 00042 public: 00043 VLMStream( intf_thread_t *, vlm_media_t * , VLMWrapper *); 00044 virtual ~VLMStream(); 00045 00046 vlm_media_t *p_media; 00047 00048 00049 void Delete(); 00050 virtual void Disable(); 00051 virtual void Enable(); 00052 00053 /* FIXME: provide accessor */ 00054 VLMWrapper *p_vlm; 00055 protected: 00056 intf_thread_t *p_intf; 00057 friend class VLMWrapper; 00058 private: 00059 }; 00060 00061 /** 00062 * This class encapsulates a VLM Broadcast stream 00063 */ 00064 class VLMBroadcastStream : public VLMStream 00065 { 00066 public: 00067 VLMBroadcastStream( intf_thread_t *, vlm_media_t *, VLMWrapper *); 00068 virtual ~VLMBroadcastStream(); 00069 00070 void Play(); 00071 void Pause(); 00072 void Stop(); 00073 00074 }; 00075 00076 /** 00077 * This class encapsulates a VLM VOD Stream 00078 */ 00079 class VLMVODStream : public VLMStream 00080 { 00081 public: 00082 VLMVODStream( intf_thread_t *, vlm_media_t *, VLMWrapper *); 00083 virtual ~VLMVODStream(); 00084 }; 00085 00086 #endif
1.5.1