00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _VLC_VOD_H
00025 #define _VLC_VOD_H 1
00026
00027 struct vod_t
00028 {
00029 VLC_COMMON_MEMBERS
00030
00031
00032 module_t *p_module;
00033 vod_sys_t *p_sys;
00034
00035 vod_media_t * (*pf_media_new) ( vod_t *, char *, input_item_t * );
00036 void (*pf_media_del) ( vod_t *, vod_media_t * );
00037 int (*pf_media_add_es)( vod_t *, vod_media_t *, es_format_t * );
00038 void (*pf_media_del_es)( vod_t *, vod_media_t *, es_format_t * );
00039
00040
00041 int (*pf_media_control) ( void *, vod_media_t *, char *, int, va_list );
00042 void *p_data;
00043 };
00044
00045 static inline int vod_MediaControl( vod_t *p_vod, vod_media_t *p_media,
00046 char *psz_id, int i_query, ... )
00047 {
00048 va_list args;
00049 int i_result;
00050
00051 if( !p_vod->pf_media_control ) return VLC_EGENERIC;
00052
00053 va_start( args, i_query );
00054 i_result = p_vod->pf_media_control( p_vod->p_data, p_media, psz_id,
00055 i_query, args );
00056 va_end( args );
00057 return i_result;
00058 }
00059
00060 enum vod_query_e
00061 {
00062 VOD_MEDIA_PLAY,
00063 VOD_MEDIA_PAUSE,
00064 VOD_MEDIA_STOP,
00065 VOD_MEDIA_SEEK,
00066 };
00067
00068 #endif