MythTV  master
mythscreensaver.cpp
Go to the documentation of this file.
1 // Qt
2 #include <QtGlobal>
3 #include <QGuiApplication>
4 
5 // MythTV
6 #include "mythmainwindow.h"
7 #include "mythscreensaver.h"
8 
9 #ifdef USING_DRM
11 #endif
12 
13 #ifdef USING_DBUS
15 #endif
16 
17 #ifdef Q_OS_DARWIN
19 #endif
20 
21 #ifdef Q_OS_ANDROID
23 #endif
24 
25 #ifdef USING_WAYLANDEXTRAS
27 #endif
28 
29 #ifdef USING_X11
31 #include "platforms/mythxdisplay.h"
32 #endif
33 
41  [[maybe_unused]] MythDisplay* mDisplay)
42 {
43 #if defined(USING_DBUS)
44  m_screenSavers.push_back(new MythScreenSaverDBus(this));
45 #endif
46 #if defined(USING_X11)
48  if (display)
49  {
50  m_screenSavers.push_back(new MythScreenSaverX11(this));
51  delete display;
52  }
53 #elif defined(Q_OS_DARWIN)
54  m_screenSavers.push_back(new MythScreenSaverOSX(this));
55 #endif
56 #if defined(ANDROID)
57  m_screenSavers.push_back(new MythScreenSaverAndroid(this));
58 #endif
59 #ifdef USING_DRM
60  MythScreenSaverDRM* drmsaver = MythScreenSaverDRM::Create(this, mDisplay);
61  if (drmsaver)
62  m_screenSavers.push_back(drmsaver);
63 #endif
64 #ifdef USING_WAYLANDEXTRAS
65  if (QGuiApplication::platformName().toLower().contains("wayland"))
66  m_screenSavers.push_back(new MythScreenSaverWayland(this, MainWin));
67 #endif
68 
69  for (auto * screensaver : m_screenSavers)
70  {
71  connect(this, &MythScreenSaverControl::Disable, screensaver, &MythScreenSaver::Disable);
72  connect(this, &MythScreenSaverControl::Reset, screensaver, &MythScreenSaver::Reset);
73  connect(this, &MythScreenSaverControl::Restore, screensaver, &MythScreenSaver::Restore);
74  }
75 }
76 
78 {
79  for (auto * screensaver : m_screenSavers)
80  if (screensaver->Asleep())
81  return true;
82  return false;
83 }
MythScreenSaverX11
Definition: mythscreensaverx11.h:10
mythscreensaverx11.h
MythScreenSaverControl::MythScreenSaverControl
MythScreenSaverControl(MythMainWindow *MainWin, MythDisplay *mDisplay)
Definition: mythscreensaver.cpp:40
MythScreenSaverControl::Reset
void Reset()
MythScreenSaverControl::Restore
void Restore()
MythScreenSaverDRM
Definition: mythscreensaverdrm.h:8
MythXDisplay::OpenMythXDisplay
static MythXDisplay * OpenMythXDisplay(bool Warn=true)
Definition: mythxdisplay.cpp:25
MythScreenSaverAndroid
Definition: mythscreensaverandroid.h:10
mythscreensaverdbus.h
MythScreenSaverControl::Asleep
bool Asleep()
Definition: mythscreensaver.cpp:77
MythScreenSaverDBus
Definition: mythscreensaverdbus.h:10
MythScreenSaverControl::m_screenSavers
std::vector< MythScreenSaver * > m_screenSavers
Definition: mythscreensaver.h:51
mythscreensaver.h
mythscreensaverdrm.h
mythscreensaverandroid.h
MythScreenSaver::Disable
virtual void Disable()=0
mythscreensaverwayland.h
MythDisplay
Definition: mythdisplay.h:22
mythxdisplay.h
mythscreensaverosx.h
MythScreenSaverControl::Disable
void Disable()
MythScreenSaver::Restore
virtual void Restore()=0
MythScreenSaver::Reset
virtual void Reset()=0
MythScreenSaverDRM::Create
static MythScreenSaverDRM * Create(QObject *Parent, MythDisplay *mDisplay)
Definition: mythscreensaverdrm.cpp:7
MythXDisplay
Definition: mythxdisplay.h:15
MythScreenSaverWayland
Definition: mythscreensaverwayland.h:12
MythScreenSaverOSX
Definition: mythscreensaverosx.h:10
mythmainwindow.h
MythMainWindow
Definition: mythmainwindow.h:28