X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_vlm.h;h=0f721dd17e44f59e54cd232f38e5cea99d02b46e;hb=95ab5e447b45927a418241b4d9f88e6a6df1c14b;hp=1e7fa244d1d9d1e8b2b9fbdd7e1e5aa3f4e65465;hpb=562ab59b24114e526144b59b5967224de432412a;p=vlc diff --git a/include/vlc_vlm.h b/include/vlc_vlm.h index 1e7fa244d1..0f721dd17e 100644 --- a/include/vlc_vlm.h +++ b/include/vlc_vlm.h @@ -1,7 +1,7 @@ /***************************************************************************** * vlc_vlm.h: VLM interface plugin ***************************************************************************** - * Copyright (C) 2000, 2001 VideoLAN + * Copyright (C) 2000, 2001 the VideoLAN team * $Id$ * * Authors: Simon Latapie @@ -29,39 +29,57 @@ enum { VOD_TYPE = 0, - BROADCAST_TYPE = 1, + BROADCAST_TYPE, + SCHEDULE_TYPE, }; typedef struct +{ + /* instance name */ + char *psz_name; + + /* "playlist" index */ + int i_index; + + input_item_t item; + input_thread_t *p_input; + +} vlm_media_instance_t; + +struct vlm_media_t { vlc_bool_t b_enabled; int i_type; /* name "media" is reserved */ char *psz_name; + input_item_t item; + /* "playlist" */ int i_input; char **input; - /* only for broadcast */ - vlc_bool_t b_loop; - - /* "playlist" index */ - int i_index; + int i_option; + char **option; char *psz_output; - int i_option; - char **option; + /* only for broadcast */ + vlc_bool_t b_loop; - /* global options for all inputs */ - input_item_t item; - input_thread_t *p_input; + /* only for vod */ + vod_media_t *vod_media; + char *psz_vod_output; + char *psz_mux; -} vlm_media_t; + /* actual input instances */ + int i_instance; + vlm_media_instance_t **instance; +}; -typedef struct + +struct vlm_schedule_t { /* names "schedule" is reserved */ char *psz_name; @@ -79,7 +97,7 @@ typedef struct i_repeat < 0 : endless repeat */ int i_repeat; -} vlm_schedule_t; +}; /* ok, here is the structure of a vlm_message: The parent node is ( name_of_the_command , NULL ), or @@ -101,28 +119,31 @@ struct vlm_t vlc_mutex_t lock; -#if 0 - int i_vod; - vlm_media_t **vod; - - int i_broadcast; - vlm_media_t **broadcast; -#endif - int i_media; vlm_media_t **media; + int i_vod; + vod_t *vod; + int i_schedule; vlm_schedule_t **schedule; }; #define vlm_New( a ) __vlm_New( VLC_OBJECT(a) ) - VLC_EXPORT( vlm_t *, __vlm_New, ( vlc_object_t * ) ); -VLC_EXPORT( void, vlm_Delete, ( vlm_t * ) ); - -VLC_EXPORT( int, vlm_ExecuteCommand, ( vlm_t *, char *, vlm_message_t **) ); -VLC_EXPORT( void, vlm_MessageDelete, ( vlm_message_t* ) ); +VLC_EXPORT( void, vlm_Delete, ( vlm_t * ) ); +VLC_EXPORT( int, vlm_ExecuteCommand, ( vlm_t *, char *, vlm_message_t ** ) ); +VLC_EXPORT( void, vlm_MessageDelete, ( vlm_message_t * ) ); +VLC_EXPORT( vlm_media_t *, vlm_MediaNew, ( vlm_t *, char *, int ) ); +VLC_EXPORT( void, vlm_MediaDelete, ( vlm_t *, vlm_media_t *, char * ) ); +VLC_EXPORT( int, vlm_MediaSetup, ( vlm_t *, vlm_media_t *, char *, char * ) ); +VLC_EXPORT( int, vlm_MediaControl, ( vlm_t *, vlm_media_t *, char *, char *, char * ) ); +VLC_EXPORT( vlm_schedule_t *, vlm_ScheduleNew, ( vlm_t *, char * ) ); +VLC_EXPORT( void, vlm_ScheduleDelete, ( vlm_t *, vlm_schedule_t *, char * ) ); +VLC_EXPORT( int, vlm_ScheduleSetup, ( vlm_schedule_t *, char *, char * ) ); +VLC_EXPORT( int, vlm_MediaVodControl, ( void *, vod_media_t *, char *, int, va_list ) ); +VLC_EXPORT( int, vlm_Save, ( vlm_t *, char * ) ); +VLC_EXPORT( int, vlm_Load, ( vlm_t *, char * ) ); #endif