00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _VLC_VLM_H
00026 #define _VLC_VLM_H 1
00027
00028
00029 enum
00030 {
00031 VOD_TYPE = 0,
00032 BROADCAST_TYPE,
00033 SCHEDULE_TYPE,
00034 };
00035
00036 typedef struct
00037 {
00038
00039 char *psz_name;
00040
00041
00042 int i_index;
00043
00044 input_item_t item;
00045 input_thread_t *p_input;
00046
00047 } vlm_media_instance_t;
00048
00049 struct vlm_media_t
00050 {
00051 vlc_bool_t b_enabled;
00052 int i_type;
00053
00054
00055 char *psz_name;
00056 input_item_t item;
00057
00058
00059 int i_input;
00060 char **input;
00061
00062 int i_option;
00063 char **option;
00064
00065 char *psz_output;
00066
00067
00068 vlc_bool_t b_loop;
00069
00070
00071 vod_media_t *vod_media;
00072 char *psz_vod_output;
00073 char *psz_mux;
00074
00075
00076 int i_instance;
00077 vlm_media_instance_t **instance;
00078
00079 };
00080
00081
00082 struct vlm_schedule_t
00083 {
00084
00085 char *psz_name;
00086 vlc_bool_t b_enabled;
00087
00088 int i_command;
00089 char **command;
00090
00091
00092 mtime_t i_date;
00093
00094
00095 mtime_t i_period;
00096
00097
00098 int i_repeat;
00099
00100 };
00101
00102
00103
00104
00105
00106 struct vlm_message_t
00107 {
00108 char *psz_name;
00109 char *psz_value;
00110
00111 int i_child;
00112 vlm_message_t **child;
00113 };
00114
00115
00116 struct vlm_t
00117 {
00118 VLC_COMMON_MEMBERS
00119
00120 vlc_mutex_t lock;
00121
00122 int i_media;
00123 vlm_media_t **media;
00124
00125 int i_vod;
00126 vod_t *vod;
00127
00128 int i_schedule;
00129 vlm_schedule_t **schedule;
00130 };
00131
00132
00133 #define vlm_New( a ) __vlm_New( VLC_OBJECT(a) )
00134 VLC_EXPORT( vlm_t *, __vlm_New, ( vlc_object_t * ) );
00135 VLC_EXPORT( void, vlm_Delete, ( vlm_t * ) );
00136 VLC_EXPORT( int, vlm_ExecuteCommand, ( vlm_t *, char *, vlm_message_t ** ) );
00137 VLC_EXPORT( void, vlm_MessageDelete, ( vlm_message_t * ) );
00138 VLC_EXPORT( vlm_media_t *, vlm_MediaNew, ( vlm_t *, char *, int ) );
00139 VLC_EXPORT( void, vlm_MediaDelete, ( vlm_t *, vlm_media_t *, char * ) );
00140 VLC_EXPORT( int, vlm_MediaSetup, ( vlm_t *, vlm_media_t *, char *, char * ) );
00141 VLC_EXPORT( int, vlm_MediaControl, ( vlm_t *, vlm_media_t *, char *, char *, char * ) );
00142 VLC_EXPORT( vlm_schedule_t *, vlm_ScheduleNew, ( vlm_t *, char * ) );
00143 VLC_EXPORT( void, vlm_ScheduleDelete, ( vlm_t *, vlm_schedule_t *, char * ) );
00144 VLC_EXPORT( int, vlm_ScheduleSetup, ( vlm_schedule_t *, char *, char * ) );
00145 VLC_EXPORT( int, vlm_MediaVodControl, ( void *, vod_media_t *, char *, int, va_list ) );
00146 VLC_EXPORT( int, vlm_Save, ( vlm_t *, char * ) );
00147 VLC_EXPORT( int, vlm_Load, ( vlm_t *, char * ) );
00148
00149 #endif