MythTV  master
mythscreensaverwayland.cpp
Go to the documentation of this file.
1 // MythTV
3 #include "mythmainwindow.h"
6 // NOLINTNEXTLINE(bugprone-suspicious-include)
8 
9 #define LOC QString("ScreenSaverWayland: ")
10 
12  : MythScreenSaver(Parent),
13  m_window(MainWindow)
14 {
16 }
17 
19 {
20  if (m_inhibitor)
22  if (m_manager)
24  delete m_device;
25 }
26 
35 {
36  if (!m_device)
38 
40  return;
41 
42  if (!m_manager)
43  {
44  // We're looking for just the inhibit manager interface
46 
47  // Search for it
48  wl_registry* registry = wl_display_get_registry(m_device->m_display);
49  wl_registry_add_listener(registry, &MythWaylandExtras::kRegistryListener, &m_registry);
50  wl_display_roundtrip(m_device->m_display);
51 
52  // Did we find it
53  m_manager = static_cast<zwp_idle_inhibit_manager_v1*>(m_registry.at(&zwp_idle_inhibit_manager_v1_interface));
54  }
55 
56  if (m_manager)
57  LOG(VB_GENERAL, LOG_INFO, LOC + "Ready");
58  else
59  LOG(VB_GENERAL, LOG_WARNING, LOC + "Setup failed (no compositor support?)");
60 }
61 
63 {
64  if (m_inhibitor || !m_manager)
65  return;
67  LOG(VB_GENERAL, LOG_INFO, LOC + "Screensaver inhibited");
68 }
69 
71 {
72  if (m_inhibitor)
74  m_inhibitor = nullptr;
75  LOG(VB_GENERAL, LOG_INFO, LOC + "Uninhibited screensaver");
76 }
77 
79 {
80  Restore();
81 }
82 
84 {
85  return false;
86 }
MythScreenSaverWayland::~MythScreenSaverWayland
~MythScreenSaverWayland() override
Definition: mythscreensaverwayland.cpp:18
LOC
#define LOC
Definition: mythscreensaverwayland.cpp:9
MythWaylandDevice::m_surface
wl_surface * m_surface
Definition: mythwaylandextras.h:36
MythMainWindow::SignalWindowReady
void SignalWindowReady()
MythScreenSaverWayland::Asleep
bool Asleep() override
Definition: mythscreensaverwayland.cpp:83
LOG
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
Definition: mythlogging.h:39
MythScreenSaver
Base Class for screensavers.
Definition: mythscreensaver.h:14
mythlogging.h
MythWaylandDevice
A simple wrapper to retrieve the major Wayland objects from the Qt Wayland native interface.
Definition: mythwaylandextras.h:27
MythScreenSaverWayland::m_registry
MythWaylandRegistry m_registry
Definition: mythscreensaverwayland.h:29
MythScreenSaverWayland::m_manager
zwp_idle_inhibit_manager_v1 * m_manager
Definition: mythscreensaverwayland.h:31
mythscreensaverwayland.h
MythScreenSaverWayland::m_window
MythMainWindow * m_window
Definition: mythscreensaverwayland.h:28
zwp_idle_inhibit_manager_v1_create_inhibitor
static struct zwp_idle_inhibitor_v1 * zwp_idle_inhibit_manager_v1_create_inhibitor(struct zwp_idle_inhibit_manager_v1 *zwp_idle_inhibit_manager_v1, struct wl_surface *surface)
Definition: idle_inhibit_unstable_v1.h:174
idle_inhibit_unstable_v1.c
MythScreenSaverWayland::Restore
void Restore() override
Definition: mythscreensaverwayland.cpp:70
MythScreenSaverWayland::m_inhibitor
zwp_idle_inhibitor_v1 * m_inhibitor
Definition: mythscreensaverwayland.h:32
MythScreenSaverWayland::Disable
void Disable() override
Definition: mythscreensaverwayland.cpp:62
idle_inhibit_unstable_v1.h
MythScreenSaverWayland::m_device
MythWaylandDevice * m_device
Definition: mythscreensaverwayland.h:30
MythScreenSaverWayland::MythScreenSaverWayland
MythScreenSaverWayland(QObject *Parent, MythMainWindow *MainWindow)
Definition: mythscreensaverwayland.cpp:11
MythWaylandDevice::m_display
wl_display * m_display
Definition: mythwaylandextras.h:34
zwp_idle_inhibit_manager_v1_destroy
static void zwp_idle_inhibit_manager_v1_destroy(struct zwp_idle_inhibit_manager_v1 *zwp_idle_inhibit_manager_v1)
Definition: idle_inhibit_unstable_v1.h:160
zwp_idle_inhibitor_v1_destroy
static void zwp_idle_inhibitor_v1_destroy(struct zwp_idle_inhibitor_v1 *zwp_idle_inhibitor_v1)
Definition: idle_inhibit_unstable_v1.h:218
MythWaylandExtras::kRegistryListener
static const struct wl_registry_listener kRegistryListener
Definition: mythwaylandextras.h:24
mythmainwindow.h
MythScreenSaverWayland::Reset
void Reset() override
Definition: mythscreensaverwayland.cpp:78
MythMainWindow
Definition: mythmainwindow.h:28
zwp_idle_inhibit_manager_v1_interface
const struct wl_interface zwp_idle_inhibit_manager_v1_interface
Definition: idle_inhibit_unstable_v1.c:49
MythScreenSaverWayland::WindowReady
void WindowReady()
Signalled when MythMainWindow has completed initialisation.
Definition: mythscreensaverwayland.cpp:34