VLC
2.1.0-git
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
src
input
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
39
bool
b_sout_keep
;
40
41
vlc_object_t
*
p_parent
;
42
input_item_t
*
p_item
;
43
input_thread_t
*
p_input
;
44
input_resource_t
*
p_input_resource
;
45
46
}
vlm_media_instance_sys_t
;
47
48
49
typedef
struct
50
{
51
vlm_media_t
cfg
;
52
53
struct
54
{
55
input_item_t
*
p_item
;
56
vod_media_t
*
p_media
;
57
} vod;
58
59
/* actual input instances */
60
int
i_instance
;
61
vlm_media_instance_sys_t
**
instance
;
62
}
vlm_media_sys_t
;
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 */
74
mtime_t
i_date
;
75
76
/* if != 0 repeat schedule every (period) */
77
mtime_t
i_period
;
78
/* number of times you have to repeat
79
i_repeat < 0 : endless repeat */
80
int
i_repeat
;
81
}
vlm_schedule_sys_t
;
82
83
84
struct
vlm_t
85
{
86
VLC_COMMON_MEMBERS
87
88
vlc_mutex_t
lock
;
89
vlc_thread_t
thread
;
90
vlc_mutex_t
lock_manage
;
91
vlc_cond_t
wait_manage
;
92
unsigned
users
;
93
94
/* tell vlm thread there is work to do */
95
bool
input_state_changed
;
96
/* */
97
int64_t
i_id
;
98
99
/* Vod server (used by media) */
100
vod_t
*
p_vod
;
101
102
/* Media list */
103
int
i_media
;
104
vlm_media_sys_t
**
media
;
105
106
/* Schedule list */
107
int
i_schedule
;
108
vlm_schedule_sys_t
**
schedule
;
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
Generated by
1.8.1.2