MythTV master
mythscreensaver.cpp
Go to the documentation of this file.
1// Qt
2#include <QtGlobal>
3#include <QGuiApplication>
4
5// MythTV
6#include "libmythbase/mythconfig.h"
7
8#include "mythmainwindow.h"
9#include "mythscreensaver.h"
10
11#if CONFIG_DRM
13#endif
14
15#if CONFIG_QTDBUS
17#endif
18
19#ifdef Q_OS_DARWIN
21#endif
22
23#ifdef Q_OS_ANDROID
25#endif
26
27#if CONFIG_WAYLANDEXTRAS
29#endif
30
31#if CONFIG_X11
34#endif
35
43 [[maybe_unused]] MythDisplay* mDisplay)
44{
45#if CONFIG_QTDBUS
46 m_screenSavers.push_back(new MythScreenSaverDBus(this));
47#endif
48#if CONFIG_X11
50 if (display)
51 {
52 m_screenSavers.push_back(new MythScreenSaverX11(this));
53 delete display;
54 }
55#elif defined(Q_OS_DARWIN)
56 m_screenSavers.push_back(new MythScreenSaverOSX(this));
57#endif
58#ifdef ANDROID
59 m_screenSavers.push_back(new MythScreenSaverAndroid(this));
60#endif
61#if CONFIG_DRM
62 MythScreenSaverDRM* drmsaver = MythScreenSaverDRM::Create(this, mDisplay);
63 if (drmsaver)
64 m_screenSavers.push_back(drmsaver);
65#endif
66#if CONFIG_WAYLANDEXTRAS
67 if (QGuiApplication::platformName().toLower().contains("wayland"))
68 m_screenSavers.push_back(new MythScreenSaverWayland(this, MainWin));
69#endif
70
71 for (auto * screensaver : m_screenSavers)
72 {
73 connect(this, &MythScreenSaverControl::Disable, screensaver, &MythScreenSaver::Disable);
74 connect(this, &MythScreenSaverControl::Reset, screensaver, &MythScreenSaver::Reset);
75 connect(this, &MythScreenSaverControl::Restore, screensaver, &MythScreenSaver::Restore);
76 }
77}
78
80{
81 for (auto * screensaver : m_screenSavers)
82 if (screensaver->Asleep())
83 return true;
84 return false;
85}
MythScreenSaverControl(MythMainWindow *MainWin, MythDisplay *mDisplay)
std::vector< MythScreenSaver * > m_screenSavers
static MythScreenSaverDRM * Create(QObject *Parent, MythDisplay *mDisplay)
virtual void Restore()=0
virtual void Reset()=0
virtual void Disable()=0
static MythXDisplay * OpenMythXDisplay(bool Warn=true)