You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
3.7 KiB
C++
140 lines
3.7 KiB
C++
/*
|
|
*
|
|
* 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"
|
|
|
|
#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];
|
|
}
|
|
|
|
|