File indexing completed on 2024-04-21 16:11:00
0001 /* 0002 SPDX-FileCopyrightText: 2022 Aditya Mehra <aix.m@outlook.com> 0003 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0004 */ 0005 0006 #include "controllermanagerdbusinterface.h" 0007 #include "device.h" 0008 #include <QDBusConnection> 0009 #include <QDBusConnectionInterface> 0010 #include <QDBusMessage> 0011 #include <QDBusArgument> 0012 0013 ControllerManagerDBusInterface::ControllerManagerDBusInterface(QObject *parent) 0014 : QObject(parent) 0015 { 0016 QDBusConnection::sessionBus().registerObject("/ControllerManager", this, QDBusConnection::ExportAllSignals | QDBusConnection::ExportAllSlots); 0017 } 0018 0019 ControllerManagerDBusInterface::~ControllerManagerDBusInterface() 0020 { 0021 } 0022 0023 Q_SCRIPTABLE QStringList ControllerManagerDBusInterface::connectedDevices() 0024 { 0025 auto connected_devices = ControllerManager::instance().connectedDevices(); 0026 QStringList deviceList; 0027 for (auto device : connected_devices) { 0028 deviceList << device->getUniqueIdentifier(); 0029 } 0030 0031 return deviceList; 0032 } 0033 0034 Q_SCRIPTABLE QString ControllerManagerDBusInterface::deviceName(const QString &uniqueIdentifier) 0035 { 0036 QVector<Device*> devices = ControllerManager::instance().connectedDevices(); 0037 for (auto device : devices) { 0038 if (device->getUniqueIdentifier() == uniqueIdentifier) { 0039 return device->getName(); 0040 } 0041 } 0042 return QString(); 0043 } 0044 0045 Q_SCRIPTABLE int ControllerManagerDBusInterface::deviceType(const QString &uniqueIdentifier) 0046 { 0047 QVector<Device*> devices = ControllerManager::instance().connectedDevices(); 0048 for (auto device : devices) { 0049 if (device->getUniqueIdentifier() == uniqueIdentifier) { 0050 return device->getDeviceType(); 0051 } 0052 } 0053 0054 return -1; 0055 } 0056 0057 Q_SCRIPTABLE QString ControllerManagerDBusInterface::deviceIconName(const QString &uniqueIdentifier) 0058 { 0059 QVector<Device*> devices = ControllerManager::instance().connectedDevices(); 0060 for (auto device : devices) { 0061 if (device->getUniqueIdentifier() == uniqueIdentifier) { 0062 return device->iconName(); 0063 } 0064 } 0065 return QString(); 0066 } 0067 0068 Q_SCRIPTABLE void ControllerManagerDBusInterface::acquireNoOp() 0069 { 0070 ControllerManager::instance().noopInput(); 0071 } 0072 0073 Q_SCRIPTABLE void ControllerManagerDBusInterface::releaseNoOp() 0074 { 0075 ControllerManager::instance().resetInputSystem(); 0076 }