2 #include <QDBusConnection>
3 #include <QDBusInterface>
16 #define LOC QString("ScreenSaverDBus: ")
18 const std::string
kApp =
"MythTV";
19 const std::string
kReason =
"Watching TV";
25 "org.freedesktop.ScreenSaver",
26 "org.freedesktop.PowerManagement.Inhibit",
27 "org.mate.SessionManager",
28 "org.gnome.SessionManager",
31 const std::array<const QString,NUM_DBUS_METHODS>
kDbusPath {
33 "/org/freedesktop/PowerManagement",
34 "/org/mate/SessionManager",
35 "/org/gnome/SessionManager",
53 const QString &dbusInterface, QDBusConnection *bus)
55 m_interface(new QDBusInterface(dbusService, dbusPath , dbusInterface, *
m_bus)),
60 LOG(VB_GENERAL, LOG_DEBUG,
LOC +
61 QString(
"Could not connect to dbus service %1: %2")
62 .arg(dbusService,
m_interface->lastError().message()));
66 LOG(VB_GENERAL, LOG_INFO,
LOC +
"Created for DBus service: " + dbusService);
81 if (msg.type() == QDBusMessage::ReplyMessage)
83 QList<QVariant> replylist = msg.arguments();
84 QVariant reply = replylist.first();
87 LOG(VB_GENERAL, LOG_INFO,
LOC +
88 QString(
"Successfully inhibited screensaver via %1. cookie %2. nom nom")
94 if (errout !=
nullptr)
96 *errout = msg.errorMessage();
100 LOG(VB_GENERAL, LOG_WARNING,
LOC +
101 QString(
"Failed to disable screensaver via %1: %2")
116 LOG(VB_GENERAL, LOG_INFO,
LOC + QString(
"Screensaver uninhibited via %1")
138 m_bus(QDBusConnection::sessionBus())
144 if (!ssdbp->isValid())
153 ssdbp->Inhibit(&dbuserr);
155 if (!dbuserr.isEmpty())
157 LOG(VB_GENERAL, LOG_DEBUG,
LOC +
158 QString(
"Error testing disable screensaver via %1: %2")
177 interface->Inhibit();
183 interface->UnInhibit();
194 [](
auto * interface){ return interface->m_inhibited; } );