/* * * 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" #define REGISTER_PORTAL(klass) \ m_interfaces.insert(klass::interface(), new klass(m_connection)); #define DESTROY_PORTAL(klass) \ delete m_interfaces[klass::interface()]; #define ADDCHILD(x) addChildNode(TQString(x)); #define REGISTER_OBJECT(x) registerObject(m_connection,TQString(x)); #define ADDNODE(x,y) \ ADDCHILD(x) \ REGISTER_OBJECT(y) /* * Root Node */ RootNodeService::RootNodeService(TQT_DBusConnection &connection ) : DBusBaseNode(), m_connection(connection) { ADDNODE("org","/") } 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) { ADDNODE("trinitydesktop","/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) { ADDNODE("hardwarecontrol","/org/trinitydesktop") } TrinityDesktopNodeService::~TrinityDesktopNodeService(){ DESTROY_PORTAL(PropertiesService); DESTROY_PORTAL(BrightnessService); DESTROY_PORTAL(CPUGovernorService); DESTROY_PORTAL(InputEventsService); DESTROY_PORTAL(PowerService); } 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); REGISTER_PORTAL(PropertiesService); REGISTER_PORTAL(BrightnessService); REGISTER_PORTAL(CPUGovernorService); REGISTER_PORTAL(InputEventsService); REGISTER_PORTAL(PowerService); REGISTER_OBJECT(DBUS_HWCTRL_SERVICE_PATH) } HardwareControlNodeService::~HardwareControlNodeService(){ } TQT_DBusObjectBase* HardwareControlNodeService::createInterface(const TQString& interfaceName) { return (TQT_DBusObjectBase*) m_interfaces[interfaceName]; }