1 /*****************************************************************************
2  * vlc_vout_osd.h: vout OSD
3  *****************************************************************************
4  * Copyright (C) 1999-2010 VLC authors and VideoLAN
5  * Copyright (C) 2004-2005 M2X
6  * $Id: a07cd9073156d9ce0d5363543bcc3fd98a6de8f8 $
7  *
8  * Authors: Jean-Paul Saman <jpsaman #_at_# m2x dot nl>
9  *          Gildas Bazin <gbazin@videolan.org>
10  *
11  * This program is free software; you can redistribute it and/or modify it
12  * under the terms of the GNU Lesser General Public License as published by
13  * the Free Software Foundation; either version 2.1 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Lesser General Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * along with this program; if not, write to the Free Software Foundation,
23  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
24  *****************************************************************************/
25 
26 #ifndef VLC_VOUT_OSD_H
27 #define VLC_VOUT_OSD_H 1
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 /**
34  * \defgroup osd On-screen display
35  * \ingroup spu
36  * @{
37  * \file
38  * Overlay text and widgets
39  */
40 
41 /**
42  * OSD menu position and picture type defines
43  */
44 enum
45 {
46     /* Icons */
47     OSD_PLAY_ICON = 1,
48     OSD_PAUSE_ICON,
49     OSD_SPEAKER_ICON,
50     OSD_MUTE_ICON,
51     /* Sliders */
52     OSD_HOR_SLIDER,
53     OSD_VERT_SLIDER,
54 };
55 
56 VLC_API int vout_OSDEpg( vout_thread_t *, input_item_t * );
57 
58 /**
59  * \brief Write an informative message if the OSD option is enabled.
60  * \param vout The vout on which the message will be displayed
61  * \param channel Subpicture channel
62  * \param position Position of the text
63  * \param duration Duration of the text being displayed
64  * \param text Text to be displayed
65  */
66 VLC_API void vout_OSDText( vout_thread_t *vout, int channel, int position, mtime_t duration, const char *text );
67 
68 /**
69  * \brief Write an informative message at the default location,
70  *        for the default duration and only if the OSD option is enabled.
71  * \param vout The vout on which the message will be displayed
72  * \param channel Subpicture channel
73  * \param format printf style formatting
74  *
75  * Provided for convenience.
76  */
77 VLC_API void vout_OSDMessage( vout_thread_t *, int, const char *, ... ) VLC_FORMAT( 3, 4 );
78 
79 /**
80  * Display a slider on the video output.
81  * \param p_this    The object that called the function.
82  * \param i_channel Subpicture channel
83  * \param i_postion Current position in the slider
84  * \param i_type    Types are: OSD_HOR_SLIDER and OSD_VERT_SLIDER.
85  */
86 VLC_API void vout_OSDSlider( vout_thread_t *, int, int , short );
87 
88 /**
89  * Display an Icon on the video output.
90  * \param p_this    The object that called the function.
91  * \param i_channel Subpicture channel
92  * \param i_type    Types are: OSD_PLAY_ICON, OSD_PAUSE_ICON, OSD_SPEAKER_ICON, OSD_MUTE_ICON
93  */
94 VLC_API void vout_OSDIcon( vout_thread_t *, int, short );
95 
96 /** @} */
97 #ifdef __cplusplus
98 }
99 #endif
100 
101 #endif /* VLC_VOUT_OSD_H */
102 
103