VLC  4.0.0-dev
vlc_inhibit.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * vlc_inhibit.h: VLC screen saver inhibition
3  *****************************************************************************
4  * Copyright (C) 2009 RĂ©mi Denis-Courmont
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation; either version 2.1 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
19  *****************************************************************************/
20 
21 /**
22  * \file
23  * This file defines the interface for screen-saver inhibition modules
24  */
25 
26 #ifndef VLC_INHIBIT_H
27 # define VLC_INHIBIT_H 1
28 
29 typedef struct vlc_inhibit vlc_inhibit_t;
30 typedef struct vlc_inhibit_sys vlc_inhibit_sys_t;
31 
32 struct vout_window_t;
33 
35 {
36  VLC_INHIBIT_NONE=0 /*< No inhibition */,
37  VLC_INHIBIT_SUSPEND=0x1 /*< Processor is in use - do not suspend */,
38  VLC_INHIBIT_DISPLAY=0x2 /*< Display is in use - do not blank/lock */,
39 #define VLC_INHIBIT_AUDIO (VLC_INHIBIT_SUSPEND)
40 #define VLC_INHIBIT_VIDEO (VLC_INHIBIT_SUSPEND|VLC_INHIBIT_DISPLAY)
41 };
42 
43 struct vlc_inhibit
44 {
45  struct vlc_object_t obj;
46 
48  void (*inhibit) (vlc_inhibit_t *, unsigned flags);
49 };
50 
51 static inline struct vout_window_t *vlc_inhibit_GetWindow(vlc_inhibit_t *ih)
52 {
53  return (struct vout_window_t *)vlc_object_parent(ih);
54 }
55 
56 static inline void vlc_inhibit_Set (vlc_inhibit_t *ih, unsigned flags)
57 {
58  ih->inhibit (ih, flags);
59 }
60 
61 #endif
void(* inhibit)(vlc_inhibit_t *, unsigned flags)
Definition: vlc_inhibit.h:49
vlc_inhibit_flags
Definition: vlc_inhibit.h:35
static void vlc_inhibit_Set(vlc_inhibit_t *ih, unsigned flags)
Definition: vlc_inhibit.h:57
Definition: vlc_inhibit.h:37
vlc_inhibit_sys_t * p_sys
Definition: vlc_inhibit.h:48
Definition: vlc_inhibit.h:39
Definition: vlc_inhibit.h:38
static struct vout_window_t * vlc_inhibit_GetWindow(vlc_inhibit_t *ih)
Definition: vlc_inhibit.h:52
Window object.
Definition: vlc_vout_window.h:336
VLC object common members.
Definition: vlc_objects.h:43
#define vlc_object_parent(o)
Definition: vlc_objects.h:159
Definition: vlc_inhibit.h:44
struct vlc_inhibit_sys vlc_inhibit_sys_t
Definition: vlc_inhibit.h:31