/* * * HardwareControl DBus Service implementation * * Copyright (C) 2020 Emanoil Kotsev * * * 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 #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]; }