VLC  2.1.0-git
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
vlm_internal.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * vlm_internal.h: Internal vlm structures
3  *****************************************************************************
4  * Copyright (C) 1998-2006 VLC authors and VideoLAN
5  * $Id: 286912d083e69ccdf8ec1ba378fabca716d05988 $
6  *
7  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
8  *
9  * This program is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public License
20  * along with this program; if not, write to the Free Software Foundation,
21  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23 
24 #ifndef LIBVLC_VLM_INTERNAL_H
25 #define LIBVLC_VLM_INTERNAL_H 1
26 
27 #include <vlc_vlm.h>
28 #include "input_interface.h"
29 
30 /* Private */
31 typedef struct
32 {
33  /* instance name */
34  char *psz_name;
35 
36  /* "playlist" index */
37  int i_index;
38 
40 
45 
47 
48 
49 typedef struct
50 {
52 
53  struct
54  {
57  } vod;
58 
59  /* actual input instances */
63 
64 typedef struct
65 {
66  /* names "schedule" is reserved */
67  char *psz_name;
68  bool b_enabled;
69  /* list of commands to execute on date */
70  int i_command;
71  char **command;
72 
73  /* the date of 1st execution */
75 
76  /* if != 0 repeat schedule every (period) */
78  /* number of times you have to repeat
79  i_repeat < 0 : endless repeat */
80  int i_repeat;
82 
83 
84 struct vlm_t
85 {
87 
92  unsigned users;
93 
94  /* tell vlm thread there is work to do */
96  /* */
97  int64_t i_id;
98 
99  /* Vod server (used by media) */
101 
102  /* Media list */
103  int i_media;
105 
106  /* Schedule list */
109 };
110 
111 int64_t vlm_Date(void);
112 int vlm_ControlInternal( vlm_t *p_vlm, int i_query, ... );
113 int ExecuteCommand( vlm_t *, const char *, vlm_message_t ** );
114 void vlm_ScheduleDelete( vlm_t *vlm, vlm_schedule_sys_t *sched );
115 
116 #endif