1 /*
2 SPDX-FileCopyrightText: 2007 Christopher Blauvelt <cblauvelt@gmail.com>
3
4 SPDX-License-Identifier: LGPL-2.0-only
5 */
6
7 #include "devicesignalmapmanager.h"
8
DeviceSignalMapManager(QObject * parent)9 DeviceSignalMapManager::DeviceSignalMapManager(QObject *parent)
10 : QObject(parent)
11 {
12 user = parent;
13 }
14
~DeviceSignalMapManager()15 DeviceSignalMapManager::~DeviceSignalMapManager()
16 {
17 }
18
mapDevice(Solid::Battery * battery,const QString & udi)19 void DeviceSignalMapManager::mapDevice(Solid::Battery *battery, const QString &udi)
20 {
21 BatterySignalMapper *map = nullptr;
22 if (!signalmap.contains(Solid::DeviceInterface::Battery)) {
23 map = new BatterySignalMapper(this);
24 signalmap[Solid::DeviceInterface::Battery] = map;
25 connect(map, SIGNAL(deviceChanged(QString, QString, QVariant)), user, SLOT(deviceChanged(QString, QString, QVariant)));
26 } else {
27 map = (BatterySignalMapper *)signalmap[Solid::DeviceInterface::Battery];
28 }
29
30 connect(battery, &Solid::Battery::chargePercentChanged, map, &BatterySignalMapper::chargePercentChanged);
31 connect(battery, &Solid::Battery::chargeStateChanged, map, &BatterySignalMapper::chargeStateChanged);
32 connect(battery, &Solid::Battery::presentStateChanged, map, &BatterySignalMapper::presentStateChanged);
33 map->setMapping(battery, udi);
34 }
35
mapDevice(Solid::StorageAccess * storageaccess,const QString & udi)36 void DeviceSignalMapManager::mapDevice(Solid::StorageAccess *storageaccess, const QString &udi)
37 {
38 StorageAccessSignalMapper *map = nullptr;
39 if (!signalmap.contains(Solid::DeviceInterface::StorageAccess)) {
40 map = new StorageAccessSignalMapper(this);
41 signalmap[Solid::DeviceInterface::StorageAccess] = map;
42 connect(map, SIGNAL(deviceChanged(QString, QString, QVariant)), user, SLOT(deviceChanged(QString, QString, QVariant)));
43 } else {
44 map = (StorageAccessSignalMapper *)signalmap[Solid::DeviceInterface::StorageAccess];
45 }
46
47 connect(storageaccess, &Solid::StorageAccess::accessibilityChanged, map, &StorageAccessSignalMapper::accessibilityChanged);
48 map->setMapping(storageaccess, udi);
49 }
50
unmapDevice(Solid::Battery * battery)51 void DeviceSignalMapManager::unmapDevice(Solid::Battery *battery)
52 {
53 BatterySignalMapper *map = (BatterySignalMapper *)signalmap.value(Solid::DeviceInterface::Battery);
54 if (!map) {
55 return;
56 }
57
58 disconnect(battery, &Solid::Battery::chargePercentChanged, map, &BatterySignalMapper::chargePercentChanged);
59 disconnect(battery, &Solid::Battery::chargeStateChanged, map, &BatterySignalMapper::chargeStateChanged);
60 disconnect(battery, &Solid::Battery::presentStateChanged, map, &BatterySignalMapper::presentStateChanged);
61 }
62
unmapDevice(Solid::StorageAccess * storageaccess)63 void DeviceSignalMapManager::unmapDevice(Solid::StorageAccess *storageaccess)
64 {
65 StorageAccessSignalMapper *map = (StorageAccessSignalMapper *)signalmap.value(Solid::DeviceInterface::StorageAccess);
66 if (!map) {
67 return;
68 }
69
70 disconnect(storageaccess, &Solid::StorageAccess::accessibilityChanged, map, &StorageAccessSignalMapper::accessibilityChanged);
71 }
72