/***************************************************************************** * vlm_internal.h: Internal vlm structures ***************************************************************************** * Copyright (C) 1998-2006 the VideoLAN team * $Id$ * * Authors: Laurent Aimar <fenrir@via.ecp.fr> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * 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., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ #if defined(__PLUGIN__) || defined(__BUILTIN__) || !defined(__LIBVLC__) #endif #ifndef _VLM_INTERNAL_H #define _VLM_INTERNAL_H 1 #include "vlc_vlm.h" /* Private */ typedef struct { /* instance name */ char *psz_name; /* "playlist" index */ int i_index; bool b_sout_keep; input_item_t *p_item; input_thread_t *p_input; sout_instance_t *p_sout; } vlm_media_instance_sys_t; typedef struct { vlm_media_t cfg; struct { input_item_t *p_item; vod_media_t *p_media; } vod; /* actual input instances */ int i_instance; vlm_media_instance_sys_t **instance; } vlm_media_sys_t; typedef struct { /* names "schedule" is reserved */ char *psz_name; bool b_enabled; /* list of commands to execute on date */ int i_command; char **command; /* the date of 1st execution */ mtime_t i_date; /* if != 0 repeat schedule every (period) */ mtime_t i_period; /* number of times you have to repeat i_repeat < 0 : endless repeat */ int i_repeat; } vlm_schedule_sys_t; struct vlm_t { VLC_COMMON_MEMBERS vlc_mutex_t lock; /* */ int64_t i_id; /* Vod server (used by media) */ int i_vod; vod_t *p_vod; /* Media list */ int i_media; vlm_media_sys_t **media; /* Schedule list */ int i_schedule; vlm_schedule_sys_t **schedule; }; int64_t vlm_Date(void); int vlm_ControlInternal( vlm_t *p_vlm, int i_query, ... ); int ExecuteCommand( vlm_t *, const char *, vlm_message_t ** ); void vlm_ScheduleDelete( vlm_t *vlm, vlm_schedule_sys_t *sched ); #endif