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  /* actual input instances */
56 
57 typedef struct
58 {
59  /* names "schedule" is reserved */
60  char *psz_name;
61  bool b_enabled;
62  /* list of commands to execute on date */
63  int i_command;
64  char **command;
65 
66  /* the date of 1st execution */
67  time_t date;
68 
69  /* if != 0, repeat period in seconds */
70  time_t period;
71  /* number of times you have to repeat
72  i_repeat < 0 : endless repeat */
73  int i_repeat;
75 
76 
77 struct vlm_t
78 {
79  struct vlc_object_t obj;
80 
85  unsigned users;
86 
87  /* tell vlm thread there is work to do */
89  bool exiting;
90  /* */
91  int64_t i_id;
92 
93  /* Media list */
94  int i_media;
96 
97  /* Schedule list */
100 };
101 
102 int vlm_ControlInternal( vlm_t *p_vlm, int i_query, ... );
103 int ExecuteCommand( vlm_t *, const char *, vlm_message_t ** );
105 
106 #endif
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:89
Condition variable.
Definition: vlc_threads.h:320
Mutex.
Definition: vlc_threads.h:193
VLC object common members.
Definition: vlc_objects.h:45
struct vlc_object_marker * obj
Definition: vlc_objects.h:49
Definition: player.h:132
Definition: player.h:231
Thread handle.
Definition: vlc_threads.h:158
Definition: vlm_internal.h:32
vlc_player_listener_id * listener
Definition: vlm_internal.h:42
char * psz_name
Definition: vlm_internal.h:34
vlc_object_t * p_parent
Definition: vlm_internal.h:39
vlc_player_t * player
Definition: vlm_internal.h:41
int i_index
Definition: vlm_internal.h:37
input_item_t * p_item
Definition: vlm_internal.h:40
Definition: vlm_internal.h:48
vlm_media_t cfg
Definition: vlm_internal.h:50
int i_instance
Definition: vlm_internal.h:53
vlm_media_instance_sys_t ** instance
Definition: vlm_internal.h:54
VLM media.
Definition: vlc_vlm.h:45
Definition: vlc_vlm.h:177
Definition: vlm_internal.h:58
int i_command
Definition: vlm_internal.h:63
char * psz_name
Definition: vlm_internal.h:60
char ** command
Definition: vlm_internal.h:64
time_t date
Definition: vlm_internal.h:67
bool b_enabled
Definition: vlm_internal.h:61
time_t period
Definition: vlm_internal.h:70
int i_repeat
Definition: vlm_internal.h:73
Definition: vlm_internal.h:78
vlc_mutex_t lock
Definition: vlm_internal.h:81
bool input_state_changed
Definition: vlm_internal.h:88
vlm_schedule_sys_t ** schedule
Definition: vlm_internal.h:99
bool exiting
Definition: vlm_internal.h:89
int i_media
Definition: vlm_internal.h:94
struct vlc_object_t obj
Definition: vlm_internal.h:79
vlm_media_sys_t ** media
Definition: vlm_internal.h:95
vlc_mutex_t lock_manage
Definition: vlm_internal.h:83
vlc_cond_t wait_manage
Definition: vlm_internal.h:84
unsigned users
Definition: vlm_internal.h:85
vlc_thread_t thread
Definition: vlm_internal.h:82
int64_t i_id
Definition: vlm_internal.h:91
int i_schedule
Definition: vlm_internal.h:98
VLC Player API.
VLC stream manager interface.
int ExecuteCommand(vlm_t *, const char *, vlm_message_t **)
void vlm_ScheduleDelete(vlm_t *vlm, vlm_schedule_sys_t *sched)
int vlm_ControlInternal(vlm_t *p_vlm, int i_query,...)
Definition: vlm.c:968