1 /*
2 SPDX-FileCopyrightText: 2020 David Redondo <kde@david-redondo.de>
3
4 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
5 */
6
7 #include "cpu.h"
8
9 #include <KLocalizedString>
10
BaseCpuObject(const QString & id,const QString & name,KSysGuard::SensorContainer * parent)11 BaseCpuObject::BaseCpuObject(const QString &id, const QString &name, KSysGuard::SensorContainer *parent)
12 : SensorObject(id, name, parent)
13 {
14 }
15
makeSensors()16 void BaseCpuObject::makeSensors()
17 {
18 m_usage = new KSysGuard::SensorProperty(QStringLiteral("usage"), this);
19 m_system = new KSysGuard::SensorProperty(QStringLiteral("system"), this);
20 m_user = new KSysGuard::SensorProperty(QStringLiteral("user"), this);
21 m_wait = new KSysGuard::SensorProperty(QStringLiteral("wait"), this);
22 auto n = new KSysGuard::SensorProperty(QStringLiteral("name"), i18nc("@title", "Name"), name(), this);
23 n->setVariantType(QVariant::String);
24 }
25
26
initialize()27 void BaseCpuObject::initialize()
28 {
29 makeSensors();
30
31 m_usage->setPrefix(name());
32 m_usage->setName(i18nc("@title", "Total Usage"));
33 m_usage->setShortName(i18nc("@title, Short for 'Total Usage'", "Usage"));
34 m_usage->setUnit(KSysGuard::UnitPercent);
35 m_usage->setVariantType(QVariant::Double);
36 m_usage->setMax(100);
37
38 m_system->setPrefix(name());
39 m_system->setName(i18nc("@title", "System Usage"));
40 m_system->setShortName(i18nc("@title, Short for 'System Usage'", "System"));
41 m_system->setUnit(KSysGuard::UnitPercent);
42 m_system->setVariantType(QVariant::Double);
43 m_system->setMax(100);
44
45 m_user->setPrefix(name());
46 m_user->setName(i18nc("@title", "User Usage"));
47 m_user->setShortName(i18nc("@title, Short for 'User Usage'", "User"));
48 m_user->setUnit(KSysGuard::UnitPercent);
49 m_user->setVariantType(QVariant::Double);
50 m_user->setMax(100);
51
52 m_wait->setPrefix(name());
53 m_wait->setName(i18nc("@title", "Wait Usage"));
54 m_wait->setShortName(i18nc("@title, Short for 'Wait Load'", "Wait"));
55 m_wait->setUnit(KSysGuard::UnitPercent);
56 m_wait->setVariantType(QVariant::Double);
57 m_wait->setMax(100);
58 }
59
60
CpuObject(const QString & id,const QString & name,KSysGuard::SensorContainer * parent)61 CpuObject::CpuObject(const QString &id, const QString &name, KSysGuard::SensorContainer *parent)
62 : BaseCpuObject(id, name, parent)
63 {
64 }
65
makeSensors()66 void CpuObject::makeSensors()
67 {
68 BaseCpuObject::makeSensors();
69
70 m_frequency = new KSysGuard::SensorProperty(QStringLiteral("frequency"), this);
71 m_temperature = new KSysGuard::SensorProperty(QStringLiteral("temperature"), this);
72 }
73
initialize()74 void CpuObject::initialize()
75 {
76 BaseCpuObject::initialize();
77
78 m_frequency->setPrefix(name());
79 m_frequency->setName(i18nc("@title", "Current Frequency"));
80 m_frequency->setShortName(i18nc("@title, Short for 'Current Frequency'", "Frequency"));
81 m_frequency->setDescription(i18nc("@info", "Current frequency of the CPU"));
82 m_frequency->setVariantType(QVariant::Double);
83 m_frequency->setUnit(KSysGuard::Unit::UnitMegaHertz);
84
85 m_temperature->setPrefix(name());
86 m_temperature->setName(i18nc("@title", "Current Temperature"));
87 m_temperature->setShortName(i18nc("@title, Short for Current Temperatur", "Temperature"));
88 m_temperature->setVariantType(QVariant::Double);
89 m_temperature->setUnit(KSysGuard::Unit::UnitCelsius);
90 }
91
92
AllCpusObject(KSysGuard::SensorContainer * parent)93 AllCpusObject::AllCpusObject(KSysGuard::SensorContainer *parent)
94 : BaseCpuObject(QStringLiteral("all"), i18nc("@title", "All"), parent)
95 {
96 }
97
makeSensors()98 void AllCpusObject::makeSensors()
99 {
100 BaseCpuObject::makeSensors();
101
102 m_cpuCount = new KSysGuard::SensorProperty(QStringLiteral("cpuCount"), this);
103 m_coreCount = new KSysGuard::SensorProperty(QStringLiteral("coreCount"), this);
104 }
105
initialize()106 void AllCpusObject::initialize()
107 {
108 BaseCpuObject::initialize();
109
110 m_usage->setPrefix(QStringLiteral());
111 m_system->setPrefix(QStringLiteral());
112 m_user->setPrefix(QStringLiteral());
113 m_wait->setPrefix(QStringLiteral());
114
115 m_cpuCount->setName(i18nc("@title", "Number of CPUs"));
116 m_cpuCount->setShortName(i18nc("@title, Short fort 'Number of CPUs'", "CPUs"));
117 m_cpuCount->setDescription(i18nc("@info", "Number of physical CPUs installed in the system"));
118
119 m_coreCount->setName(i18nc("@title", "Number of Cores"));
120 m_coreCount->setShortName(i18nc("@title, Short fort 'Number of Cores'", "Cores"));
121 m_coreCount->setDescription(i18nc("@info", "Number of CPU cores across all physical CPUS"));
122 }
123
setCounts(unsigned int cpuCount,unsigned int coreCount)124 void AllCpusObject::setCounts(unsigned int cpuCount, unsigned int coreCount)
125 {
126 m_cpuCount->setValue(cpuCount);
127 m_coreCount->setValue(coreCount);
128 }
129