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