summaryrefslogtreecommitdiffstats
path: root/tdecore/tdehw/hwlibdaemons/tdedbus/hardwarecontrolService.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tdecore/tdehw/hwlibdaemons/tdedbus/hardwarecontrolService.cpp')
-rw-r--r--tdecore/tdehw/hwlibdaemons/tdedbus/hardwarecontrolService.cpp123
1 files changed, 123 insertions, 0 deletions
diff --git a/tdecore/tdehw/hwlibdaemons/tdedbus/hardwarecontrolService.cpp b/tdecore/tdehw/hwlibdaemons/tdedbus/hardwarecontrolService.cpp
new file mode 100644
index 000000000..849d650dd
--- /dev/null
+++ b/tdecore/tdehw/hwlibdaemons/tdedbus/hardwarecontrolService.cpp
@@ -0,0 +1,123 @@
+/*
+ *
+ * HardwareControl DBus Service implementation
+ *
+ * Copyright (C) 2020 Emanoil Kotsev <deloptes@gmail.com>
+ *
+ *
+ * This file is part of tdecore/tdehw.
+ *
+ * hardwarecontrol is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * hardwarecontrol is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with tdelibs; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+// TQt includes
+#include <tqdbusobjectpath.h>
+
+#include "hardwarecontrolService.h"
+#include "interfaces/introspectableInterface.h"
+#include "interfaces/propertiesInterface.h"
+
+#include "DeviceServiceBase.h"
+#include "BrightnessService.h"
+#include "CPUGovernorService.h"
+#include "InputEventsService.h"
+#include "PowerService.h"
+#include "PropertiesService.h"
+
+/*!
+ * Implementing node services for /org/trinitydesktop/hardwarecontrol
+ */
+#define DBUS_HWCTRL_SERVICE_PATH "/org/trinitydesktop/hardwarecontrol"
+
+/*
+ * Root Node
+ */
+RootNodeService::RootNodeService(TQT_DBusConnection &connection )
+: DBusBaseNode(), m_connection(connection)
+{
+ addChildNode(TQString("org"));
+ registerObject(m_connection,TQString("/"));
+}
+
+RootNodeService::~RootNodeService(){
+}
+
+TQT_DBusObjectBase* RootNodeService::createInterface(const TQString& interfaceName)
+{
+ return (TQT_DBusObjectBase*) m_interfaces[interfaceName];
+}
+
+/*
+ * Org Node
+ */
+OrgNodeService::OrgNodeService(TQT_DBusConnection &connection )
+: DBusBaseNode(), m_connection(connection)
+{
+ addChildNode(TQString("trinitydesktop"));
+ registerObject(m_connection,TQString("/org"));
+}
+
+OrgNodeService::~OrgNodeService(){
+}
+
+TQT_DBusObjectBase* OrgNodeService::createInterface(const TQString& interfaceName)
+{
+ return (TQT_DBusObjectBase*) m_interfaces[interfaceName];
+}
+
+/*
+ * TrinityDesktop Node
+ */
+TrinityDesktopNodeService::TrinityDesktopNodeService(TQT_DBusConnection &connection )
+: DBusBaseNode(), m_connection(connection)
+{
+ addChildNode(TQString("hardwarecontrol"));
+ registerObject(m_connection,TQString("/org/trinitydesktop"));
+}
+
+TrinityDesktopNodeService::~TrinityDesktopNodeService(){
+}
+
+TQT_DBusObjectBase* TrinityDesktopNodeService::createInterface(const TQString& interfaceName)
+{
+ return (TQT_DBusObjectBase*) m_interfaces[interfaceName];
+}
+
+/*
+ * HardwareControl Node
+ */
+HardwareControlNodeService::HardwareControlNodeService(TQT_DBusConnection &conn)
+: org::trinitydesktop::hardwarecontrolNode(),
+ m_connection(conn)
+{
+ m_interfaces.insert("org.freedesktop.DBus.Introspectable", this);
+ m_interfaces.insert("org.freedesktop.DBus.Properties", new PropertiesService(m_connection));
+ m_interfaces.insert("org.trinitydesktop.hardwarecontrol.Brightness", new BrightnessService(m_connection));
+ m_interfaces.insert("org.trinitydesktop.hardwarecontrol.CPUGovernor", new CPUGovernorService(m_connection));
+ m_interfaces.insert("org.trinitydesktop.hardwarecontrol.InputEvents", new InputEventsService(m_connection));
+ m_interfaces.insert("org.trinitydesktop.hardwarecontrol.Power", new PowerService(m_connection));
+ registerObject(m_connection,TQString(DBUS_HWCTRL_SERVICE_PATH));
+}
+
+HardwareControlNodeService::~HardwareControlNodeService(){
+}
+
+TQT_DBusObjectBase* HardwareControlNodeService::createInterface(const TQString& interfaceName)
+{
+ return (TQT_DBusObjectBase*) m_interfaces[interfaceName];
+}
+
+