diff options
Diffstat (limited to 'tdecore/tdehw/hwlibdaemons/tdedbus/hardwarecontrolService.cpp')
-rw-r--r-- | tdecore/tdehw/hwlibdaemons/tdedbus/hardwarecontrolService.cpp | 123 |
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]; +} + + |