diff --git a/tdecore/tdehw/hwlibdaemons/tdedbus/BrightnessService.h b/tdecore/tdehw/hwlibdaemons/tdedbus/BrightnessService.h index 42f4381b4..3d40d7698 100644 --- a/tdecore/tdehw/hwlibdaemons/tdedbus/BrightnessService.h +++ b/tdecore/tdehw/hwlibdaemons/tdedbus/BrightnessService.h @@ -30,6 +30,7 @@ class BrightnessService: public org::trinitydesktop::hardwarecontrol::BrightnessInterface, public DeviceServiceBase { + public: BrightnessService(TQT_DBusConnection&); virtual ~BrightnessService(); diff --git a/tdecore/tdehw/hwlibdaemons/tdedbus/CPUGovernorService.h b/tdecore/tdehw/hwlibdaemons/tdedbus/CPUGovernorService.h index bbd8d9f95..7824d6c81 100644 --- a/tdecore/tdehw/hwlibdaemons/tdedbus/CPUGovernorService.h +++ b/tdecore/tdehw/hwlibdaemons/tdedbus/CPUGovernorService.h @@ -28,6 +28,7 @@ class CPUGovernorService: public org::trinitydesktop::hardwarecontrol::CPUGovernorInterface, public DeviceServiceBase { + public: CPUGovernorService(TQT_DBusConnection&); virtual ~CPUGovernorService(); diff --git a/tdecore/tdehw/hwlibdaemons/tdedbus/DeviceServiceBase.cpp b/tdecore/tdehw/hwlibdaemons/tdedbus/DeviceServiceBase.cpp index 579f7cd45..6930c1343 100644 --- a/tdecore/tdehw/hwlibdaemons/tdedbus/DeviceServiceBase.cpp +++ b/tdecore/tdehw/hwlibdaemons/tdedbus/DeviceServiceBase.cpp @@ -24,6 +24,7 @@ #include #include +#include "common.h" #include #include "DeviceServiceBase.h" @@ -37,8 +38,7 @@ DeviceServiceBase::DeviceServiceBase(TQT_DBusConnection &conn) DeviceServiceBase::~DeviceServiceBase() { - if (m_connection) - delete m_connection; + DEL(m_connection) } bool DeviceServiceBase::canSetDeviceValue(const TQString& device, TQT_DBusError& error) { diff --git a/tdecore/tdehw/hwlibdaemons/tdedbus/HardwareControl.cpp b/tdecore/tdehw/hwlibdaemons/tdedbus/HardwareControl.cpp index ce054004d..18747da95 100644 --- a/tdecore/tdehw/hwlibdaemons/tdedbus/HardwareControl.cpp +++ b/tdecore/tdehw/hwlibdaemons/tdedbus/HardwareControl.cpp @@ -23,6 +23,7 @@ #include #include +#include "common.h" #include "HardwareControl.h" #define DBUS_HWCTRL_SERVICE_NAME "org.trinitydesktop.hardwarecontrol" @@ -83,26 +84,10 @@ void HardwareControl::slotDbusSignal(const TQT_DBusMessage& message) { void HardwareControl::dbusConnectionClose() { - if(rootService) - { - delete rootService; - rootService=0; - } - if(orgService) - { - delete orgService; - orgService=0; - } - if(trinitydesktopService) - { - delete trinitydesktopService; - trinitydesktopService=0; - } - if(hardwarecontrolService) - { - delete hardwarecontrolService; - hardwarecontrolService=0; - } + DEL(rootService) + DEL(orgService) + DEL(trinitydesktopService) + DEL(hardwarecontrolService) if(m_connection.isConnected()) { m_connection.disconnect(this, TQ_SLOT(slotDbusSignal(const TQT_DBusMessage&))); diff --git a/tdecore/tdehw/hwlibdaemons/tdedbus/InputEventsService.cpp b/tdecore/tdehw/hwlibdaemons/tdedbus/InputEventsService.cpp index 458df9467..60b797e86 100644 --- a/tdecore/tdehw/hwlibdaemons/tdedbus/InputEventsService.cpp +++ b/tdecore/tdehw/hwlibdaemons/tdedbus/InputEventsService.cpp @@ -29,6 +29,7 @@ #include +#include "common.h" #include "InputEventsService.h" #define BITS_PER_LONG (sizeof(long) * 8) @@ -43,8 +44,7 @@ InputEventsService::InputEventsService(TQT_DBusConnection &conn) InputEventsService::~InputEventsService() { - if (m_connection) - delete m_connection; + DEL(m_connection) } /*! diff --git a/tdecore/tdehw/hwlibdaemons/tdedbus/InputEventsService.h b/tdecore/tdehw/hwlibdaemons/tdedbus/InputEventsService.h index 4e3595ec0..b3dad943b 100644 --- a/tdecore/tdehw/hwlibdaemons/tdedbus/InputEventsService.h +++ b/tdecore/tdehw/hwlibdaemons/tdedbus/InputEventsService.h @@ -28,6 +28,7 @@ class InputEventsService: public org::trinitydesktop::hardwarecontrol::InputEventsInterface { + public: InputEventsService(TQT_DBusConnection&); virtual ~InputEventsService(); diff --git a/tdecore/tdehw/hwlibdaemons/tdedbus/PowerService.h b/tdecore/tdehw/hwlibdaemons/tdedbus/PowerService.h index 964004acd..aa37d22b8 100644 --- a/tdecore/tdehw/hwlibdaemons/tdedbus/PowerService.h +++ b/tdecore/tdehw/hwlibdaemons/tdedbus/PowerService.h @@ -28,6 +28,7 @@ class PowerService: public org::trinitydesktop::hardwarecontrol::PowerInterface, public DeviceServiceBase { + public: PowerService(TQT_DBusConnection&); virtual ~PowerService(); diff --git a/tdecore/tdehw/hwlibdaemons/tdedbus/PropertiesService.h b/tdecore/tdehw/hwlibdaemons/tdedbus/PropertiesService.h index c0f080ddc..d9cc3f9f6 100644 --- a/tdecore/tdehw/hwlibdaemons/tdedbus/PropertiesService.h +++ b/tdecore/tdehw/hwlibdaemons/tdedbus/PropertiesService.h @@ -31,6 +31,7 @@ class PropertiesService: public org::freedesktop::DBus::PropertiesInterface { + public: PropertiesService(TQT_DBusConnection&); virtual ~PropertiesService(); diff --git a/tdecore/tdehw/hwlibdaemons/tdedbus/common.h b/tdecore/tdehw/hwlibdaemons/tdedbus/common.h new file mode 100644 index 000000000..a10395d93 --- /dev/null +++ b/tdecore/tdehw/hwlibdaemons/tdedbus/common.h @@ -0,0 +1,25 @@ +/* + * common.h + * + * Created on: Apr 12, 2025 + * Author: emanoil + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#ifndef TDE_HWLIBDAEMONS_COMMON_H_ +#define TDE_HWLIBDAEMONS_COMMON_H_ + +#define DEL(x) if (x) { delete x; x = nullptr; } + +#endif /* TDE_HWLIBDAEMONS_COMMON_H_ */ diff --git a/tdecore/tdehw/hwlibdaemons/tdedbus/hardwarecontrolService.cpp b/tdecore/tdehw/hwlibdaemons/tdedbus/hardwarecontrolService.cpp index 849d650dd..e07201a1f 100644 --- a/tdecore/tdehw/hwlibdaemons/tdedbus/hardwarecontrolService.cpp +++ b/tdecore/tdehw/hwlibdaemons/tdedbus/hardwarecontrolService.cpp @@ -42,14 +42,27 @@ */ #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) { - addChildNode(TQString("org")); - registerObject(m_connection,TQString("/")); + ADDNODE("org","/") } RootNodeService::~RootNodeService(){ @@ -66,8 +79,7 @@ TQT_DBusObjectBase* RootNodeService::createInterface(const TQString& interfaceNa OrgNodeService::OrgNodeService(TQT_DBusConnection &connection ) : DBusBaseNode(), m_connection(connection) { - addChildNode(TQString("trinitydesktop")); - registerObject(m_connection,TQString("/org")); + ADDNODE("trinitydesktop","/org") } OrgNodeService::~OrgNodeService(){ @@ -84,11 +96,15 @@ TQT_DBusObjectBase* OrgNodeService::createInterface(const TQString& interfaceNam TrinityDesktopNodeService::TrinityDesktopNodeService(TQT_DBusConnection &connection ) : DBusBaseNode(), m_connection(connection) { - addChildNode(TQString("hardwarecontrol")); - registerObject(m_connection,TQString("/org/trinitydesktop")); + 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) @@ -104,12 +120,12 @@ HardwareControlNodeService::HardwareControlNodeService(TQT_DBusConnection &conn) 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)); + REGISTER_PORTAL(PropertiesService); + REGISTER_PORTAL(BrightnessService); + REGISTER_PORTAL(CPUGovernorService); + REGISTER_PORTAL(InputEventsService); + REGISTER_PORTAL(PowerService); + REGISTER_OBJECT(DBUS_HWCTRL_SERVICE_PATH) } HardwareControlNodeService::~HardwareControlNodeService(){