X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_vod.h;h=9b136108f2b844a971087a407f249ed3f5c5cf9b;hb=c60652e38ac6afd74bd8225e9dae5406f13aaa4f;hp=05a79a896fcb214c263e8ebd95ef551e8d71729a;hpb=e9097e4f6da79a7f780ef17488b35b37d3973be7;p=vlc diff --git a/include/vlc_vod.h b/include/vlc_vod.h index 05a79a896f..9b136108f2 100644 --- a/include/vlc_vod.h +++ b/include/vlc_vod.h @@ -1,7 +1,7 @@ /***************************************************************************** * vlc_vod.h: interface for VoD server modules ***************************************************************************** - * Copyright (C) 2000, 2001 VideoLAN + * Copyright (C) 2000, 2001 the VideoLAN team * $Id$ * * Author: Gildas Bazin @@ -18,11 +18,23 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ -#ifndef _VLC_VOD_H -#define _VLC_VOD_H 1 +#ifndef VLC_VOD_H +#define VLC_VOD_H 1 + +/** + * \file + * This file defines an interface for VOD server modules in vlc + */ + +/** + * \defgroup vod Video On Demand (VOD) + * \ingroup server + * Video On Demand (VOD) functionality is provided from VLM. + * @{ + */ struct vod_t { @@ -32,11 +44,43 @@ struct vod_t module_t *p_module; vod_sys_t *p_sys; - vod_media_t * (*pf_media_new) ( vod_t *, char *, input_item_t * ); + vod_media_t * (*pf_media_new) ( vod_t *, const char *, input_item_t * ); void (*pf_media_del) ( vod_t *, vod_media_t * ); int (*pf_media_add_es)( vod_t *, vod_media_t *, es_format_t * ); void (*pf_media_del_es)( vod_t *, vod_media_t *, es_format_t * ); + /* Owner properties */ + int (*pf_media_control) ( void *, vod_media_t *, const char *, int, va_list ); + void *p_data; +}; + +static inline int vod_MediaControl( vod_t *p_vod, vod_media_t *p_media, + const char *psz_id, int i_query, ... ) +{ + va_list args; + int i_result; + + if( !p_vod->pf_media_control ) return VLC_EGENERIC; + + va_start( args, i_query ); + i_result = p_vod->pf_media_control( p_vod->p_data, p_media, psz_id, + i_query, args ); + va_end( args ); + return i_result; +} + +enum vod_query_e +{ + VOD_MEDIA_PLAY, /* arg1= char * res= */ + VOD_MEDIA_PAUSE, /* arg1= res= */ + VOD_MEDIA_STOP, /* arg1= res=can fail */ + VOD_MEDIA_SEEK, /* arg1= double res= */ + VOD_MEDIA_REWIND, /* arg1= double res= */ + VOD_MEDIA_FORWARD, /* arg1= double res= */ }; +/** + * @} + */ + #endif