17#include <X11/extensions/dpms.h>
20#define LOC QString("ScreenSaverX11: ")
38 LOG(VB_GENERAL, LOG_INFO,
LOC +
"XScreenSaver support enabled");
50 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Failed to open connection to X11 server");
55 CARD16 power_level = 0;
66 LOG(VB_GENERAL, LOG_INFO,
LOC +
"DPMS is active.");
68 LOG(VB_GENERAL, LOG_INFO,
LOC +
"DPMS is disabled.");
72 LOG(VB_GENERAL, LOG_INFO,
LOC +
"DPMS is not supported.");
91 LOG(VB_PLAYBACK, LOG_DEBUG,
LOC +
"StopTimer");
98 LOG(VB_PLAYBACK, LOG_DEBUG,
LOC +
"StartTimer");
105 LOG(VB_PLAYBACK, LOG_DEBUG,
LOC +
"ResetTimer -- begin");
112 LOG(VB_PLAYBACK, LOG_DEBUG,
LOC +
"ResetTimer -- end");
128 LOG(VB_GENERAL, LOG_INFO,
LOC + QString(
"DPMS Deactivated %1").arg(status));
139 LOG(VB_GENERAL, LOG_INFO,
LOC + QString(
"DPMS Reactivated %1").arg(status));
162 LOG(VB_GENERAL, LOG_INFO,
LOC +
"Uninhibited screensaver");
166 LOG(VB_GENERAL, LOG_WARNING,
LOC +
"Failed to re-enable screensaver");
184 LOG(VB_PLAYBACK, LOG_INFO,
LOC +
"Calling xscreensaver-command -deactivate");
185 myth_system(
"xscreensaver-command -deactivate >&- 2>&- &",
244 LOG(VB_GENERAL, LOG_WARNING,
LOC +
"Failed to reset screensaver");
246 LOG(VB_GENERAL, LOG_WARNING,
LOC +
"Failed to disable screensaver");
248 LOG(VB_GENERAL, LOG_INFO,
LOC +
"Inhibited X11 screensaver");
276 bool need_xsync =
false;
277 Display *dsp =
nullptr;
283 XResetScreenSaver(dsp);
292 DPMSForceLevel(dsp, DPMSModeOn);
308 BOOL on =
static_cast<BOOL
>(
false);
309 CARD16 power_level = DPMSModeOn;
314 return (power_level != DPMSModeOn);
std::enable_if_t< std::chrono::__is_duration< T >::value, T > GetDurSetting(const QString &key, T defaultval=T::zero())
MythScreenSaverX11(QObject *Parent)
~MythScreenSaverX11() override
class ScreenSaverX11Private * m_priv
Base Class for screensavers.
void Sync(bool Flush=false)
static MythXDisplay * OpenMythXDisplay(bool Warn=true)
ScreenSaverState()=default
std::chrono::seconds m_timeoutInterval
bool m_dpmsdeactivated
true if we disabled DPMS
bool m_xscreensaverRunning
bool IsScreenSaverRunning() const
ScreenSaverX11Private(MythScreenSaverX11 *Parent)
void RestoreScreenSaver()
bool DeactivatedDPMS() const
QDateTime m_lastDeactivated
bool IsDPMSEnabled() const
MythCoreContext * gCoreContext
This global variable contains the MythCoreContext instance for the app.
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
@ kMSDontBlockInputDevs
avoid blocking LIRC & Joystick Menu
@ kMSProcessEvents
process events while waiting
@ kMSRunBackground
run child in the background
@ kMSDontDisableDrawing
avoid disabling UI drawing
uint myth_system(const QString &command, uint flags, std::chrono::seconds timeout)
QDateTime current(bool stripped)
Returns current Date and Time in UTC.