VLC  4.0.0-dev
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  *
6  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
7  *
8  * This program is free software; you can redistribute it and/or modify it
9  * under the terms of the GNU Lesser General Public License as published by
10  * the Free Software Foundation; either version 2.1 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with this program; if not, write to the Free Software Foundation,
20  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
21  *****************************************************************************/
22 
23 #ifndef LIBVLC_VLM_INTERNAL_H
24 #define LIBVLC_VLM_INTERNAL_H 1
25 
26 #include <vlc_vlm.h>
27 #include <vlc_player.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 
43 
45 
46 
47 typedef struct
48 {
49  struct vlc_object_t obj;
51 
52  struct
53  {
56  } vod;
57 
58  /* actual input instances */
62 
63 typedef struct
64 {
65  /* names "schedule" is reserved */
66  char *psz_name;
67  bool b_enabled;
68  /* list of commands to execute on date */
69  int i_command;
70  char **command;
71 
72  /* the date of 1st execution */
73  time_t date;
74 
75  /* if != 0, repeat period in seconds */
76  time_t period;
77  /* number of times you have to repeat
78  i_repeat < 0 : endless repeat */
79  int i_repeat;
81 
82 
83 struct vlm_t
84 {
85  struct vlc_object_t obj;
86 
91  unsigned users;
92 
93  /* tell vlm thread there is work to do */
95  /* */
96  int64_t i_id;
97 
98  /* Vod server (used by media) */
100 
101  /* Media list */
102  int i_media;
104 
105  /* Schedule list */
108 };
109 
110 int vlm_ControlInternal( vlm_t *p_vlm, int i_query, ... );
111 int ExecuteCommand( vlm_t *, const char *, vlm_message_t ** );
112 void vlm_ScheduleDelete( vlm_t *vlm, vlm_schedule_sys_t *sched );
113 
114 #endif
Definition: vlm_internal.h:31
Definition: vlc_vod.h:36
void vlm_ScheduleDelete(vlm_t *vlm, vlm_schedule_sys_t *sched)
int i_instance
Definition: vlm_internal.h:59
time_t period
Definition: vlm_internal.h:76
struct vlc_object_t obj
Definition: vlm_internal.h:85
Definition: player.h:201
input_item_t * p_item
Definition: vlm_internal.h:40
Definition: vlc_vlm.h:183
bool input_state_changed
Definition: vlm_internal.h:94
struct vod_media_t vod_media_t
Definition: vlc_common.h:438
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:77
pthread_mutex_t vlc_mutex_t
Mutex.
Definition: vlc_threads.h:278
VLC Player API.
Definition: vlm_internal.h:63
VLC stream manager interface.
vlc_mutex_t lock_manage
Definition: vlm_internal.h:89
vlc_player_t * player
Definition: vlm_internal.h:41
vlc_cond_t wait_manage
Definition: vlm_internal.h:90
time_t date
Definition: vlm_internal.h:73
int64_t i_id
Definition: vlm_internal.h:96
vlm_media_sys_t ** media
Definition: vlm_internal.h:103
vlc_mutex_t lock
Definition: vlm_internal.h:87
vlm_schedule_sys_t ** schedule
Definition: vlm_internal.h:107
int i_index
Definition: vlm_internal.h:37
struct vlc_object_marker * obj
Definition: vlc_objects.h:48
vlm_media_t cfg
Definition: vlm_internal.h:50
Definition: player.h:115
Thread handle.
Definition: vlc_threads.h:263
unsigned users
Definition: vlm_internal.h:91
int i_repeat
Definition: vlm_internal.h:79
int vlm_ControlInternal(vlm_t *p_vlm, int i_query,...)
Definition: vlm.c:1317
pthread_cond_t vlc_cond_t
Condition variable.
Definition: vlc_threads.h:290
int i_schedule
Definition: vlm_internal.h:106
char ** command
Definition: vlm_internal.h:70
Definition: vlm_internal.h:83
input_item_t * p_item
Definition: vlm_internal.h:54
vlc_player_listener_id * listener
Definition: vlm_internal.h:42
vlc_thread_t thread
Definition: vlm_internal.h:88
Definition: vlm_internal.h:47
vlc_object_t * p_parent
Definition: vlm_internal.h:39
vod_t * p_vod
Definition: vlm_internal.h:99
bool b_enabled
Definition: vlm_internal.h:67
VLM media.
Definition: vlc_vlm.h:44
int ExecuteCommand(vlm_t *, const char *, vlm_message_t **)
VLC object common members.
Definition: vlc_objects.h:43
vod_media_t * p_media
Definition: vlm_internal.h:55
int i_command
Definition: vlm_internal.h:69
char * psz_name
Definition: vlm_internal.h:34
int i_media
Definition: vlm_internal.h:102
char * psz_name
Definition: vlm_internal.h:66
vlm_media_instance_sys_t ** instance
Definition: vlm_internal.h:60