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
include
vlc_vod.h
Go to the documentation of this file.
1
/*****************************************************************************
2
* vlc_vod.h: interface for VoD server modules
3
*****************************************************************************
4
* Copyright (C) 2000, 2001 VLC authors and VideoLAN
5
* $Id: 2f094338a9ca3ea9e8236863bda9f549abe53687 $
6
*
7
* Author: Gildas Bazin <gbazin@videolan.org>
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 VLC_VOD_H
25
#define VLC_VOD_H 1
26
27
/**
28
* \file
29
* This file defines an interface for VOD server modules in vlc
30
*/
31
32
/**
33
* \defgroup vod Video On Demand (VOD)
34
* \ingroup server
35
* Video On Demand (VOD) functionality is provided from VLM.
36
* @{
37
*/
38
39
struct
vod_t
40
{
41
VLC_COMMON_MEMBERS
42
43
/* Module properties */
44
module_t
*
p_module
;
45
vod_sys_t
*
p_sys
;
46
47
vod_media_t
* (*pf_media_new) (
vod_t
*,
const
char
*,
input_item_t
* );
48
void (*
pf_media_del
) (
vod_t
*,
vod_media_t
* );
49
50
/* Owner properties */
51
int (*
pf_media_control
) (
void
*,
vod_media_t
*,
const
char
*, int, va_list );
52
void
*
p_data
;
53
};
54
55
static
inline
int
vod_MediaControl
(
vod_t
*p_vod,
vod_media_t
*p_media,
56
const
char
*psz_id,
int
i_query, ... )
57
{
58
va_list args;
59
int
i_result;
60
61
if
( !p_vod->
pf_media_control
)
return
VLC_EGENERIC
;
62
63
va_start( args, i_query );
64
i_result = p_vod->
pf_media_control
( p_vod->
p_data
, p_media, psz_id,
65
i_query, args );
66
va_end( args );
67
return
i_result;
68
}
69
70
enum
vod_query_e
71
{
72
VOD_MEDIA_PLAY
,
/* arg1= char *, arg2= int64_t *, res= */
73
VOD_MEDIA_PAUSE
,
/* arg1= int64_t * res= */
74
VOD_MEDIA_STOP
,
/* arg1= res=can fail */
75
VOD_MEDIA_SEEK
,
/* arg1= double res= */
76
VOD_MEDIA_REWIND
,
/* arg1= double res= */
77
VOD_MEDIA_FORWARD
,
/* arg1= double res= */
78
};
79
80
/**
81
* @}
82
*/
83
84
#endif
Generated by
1.8.1.2