• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdecore
 

tdecore

  • tdecore
  • tdehw
tdegenericdevice.cpp
1 /* This file is part of the TDE libraries
2  Copyright (C) 2012 Timothy Pearson <kb9vqf@pearsoncomputing.net>
3  (C) 2013 Golubev Alexander <fatzer2@gmail.com>
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Library General Public
7  License version 2 as published by the Free Software Foundation.
8 
9  This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  Library General Public License for more details.
13 
14  You should have received a copy of the GNU Library General Public License
15  along with this library; see the file COPYING.LIB. If not, write to
16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  Boston, MA 02110-1301, USA.
18 */
19 
20 #include "tdegenericdevice.h"
21 
22 #include <tqpixmap.h>
23 
24 #include "tdeglobal.h"
25 #include "tdelocale.h"
26 
27 #include "tdehardwaredevices.h"
28 
29 #include "config.h"
30 
31 TDEGenericDevice::TDEGenericDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn) : TQObject() {
32  m_deviceType = dt;
33  m_deviceName = dn;
34 
35  m_parentDevice = 0;
36  m_friendlyName = TQString::null;
37  m_blacklistedForUpdate = false;
38 }
39 
40 TDEGenericDevice::~TDEGenericDevice() {
41 }
42 
43 TDEGenericDeviceType::TDEGenericDeviceType TDEGenericDevice::type() {
44  return m_deviceType;
45 }
46 
47 TQString TDEGenericDevice::name() {
48  return m_deviceName;
49 }
50 
51 void TDEGenericDevice::internalSetName(TQString dn) {
52  m_deviceName = dn;
53 }
54 
55 TQString TDEGenericDevice::vendorName() {
56  return m_vendorName;
57 }
58 
59 void TDEGenericDevice::internalSetVendorName(TQString vn) {
60  m_vendorName = vn;
61 }
62 
63 TQString TDEGenericDevice::vendorModel() {
64  return m_vendorModel;
65 }
66 
67 void TDEGenericDevice::internalSetVendorModel(TQString vm) {
68  m_vendorModel = vm;
69 }
70 
71 TQString TDEGenericDevice::serialNumber() {
72  return m_serialNumber;
73 }
74 
75 void TDEGenericDevice::internalSetSerialNumber(TQString sn) {
76  m_serialNumber = sn;
77 }
78 
79 TQString TDEGenericDevice::systemPath() {
80  if (!m_systemPath.endsWith("/")) {
81  m_systemPath += "/";
82  }
83  return m_systemPath;
84 }
85 
86 void TDEGenericDevice::internalSetSystemPath(TQString sp) {
87  m_systemPath = sp;
88 }
89 
90 TQString TDEGenericDevice::deviceNode() {
91  return m_deviceNode;
92 }
93 
94 void TDEGenericDevice::internalSetDeviceNode(TQString dn) {
95  m_deviceNode = dn;
96 }
97 
98 TQString TDEGenericDevice::deviceBus() {
99  return m_deviceBus;
100 }
101 
102 void TDEGenericDevice::internalSetDeviceBus(TQString db) {
103  m_deviceBus = db;
104 }
105 
106 TQString TDEGenericDevice::uniqueID() {
107  m_uniqueID = m_systemPath+m_deviceNode;
108  return m_uniqueID;
109 }
110 
111 TQString TDEGenericDevice::vendorID() {
112  return m_vendorID;
113 }
114 
115 void TDEGenericDevice::internalSetVendorID(TQString id) {
116  m_vendorID = id;
117  m_vendorID.replace("0x", "");
118 }
119 
120 TQString TDEGenericDevice::modelID() {
121  return m_modelID;
122 }
123 
124 void TDEGenericDevice::internalSetModelID(TQString id) {
125  m_modelID = id;
126  m_modelID.replace("0x", "");
127 }
128 
129 TQString TDEGenericDevice::vendorEncoded() {
130  return m_vendorenc;
131 }
132 
133 void TDEGenericDevice::internalSetVendorEncoded(TQString id) {
134  m_vendorenc = id;
135 }
136 
137 TQString TDEGenericDevice::modelEncoded() {
138  return m_modelenc;
139 }
140 
141 void TDEGenericDevice::internalSetModelEncoded(TQString id) {
142  m_modelenc = id;
143 }
144 
145 TQString TDEGenericDevice::subVendorID() {
146  return m_subvendorID;
147 }
148 
149 void TDEGenericDevice::internalSetSubVendorID(TQString id) {
150  m_subvendorID = id;
151  m_subvendorID.replace("0x", "");
152 }
153 
154 TQString TDEGenericDevice::PCIClass() {
155  return m_pciClass;
156 }
157 
158 void TDEGenericDevice::internalSetPCIClass(TQString cl) {
159  m_pciClass = cl;
160  m_pciClass.replace("0x", "");
161 }
162 
163 TQString TDEGenericDevice::moduleAlias() {
164  return m_modAlias;
165 }
166 
167 void TDEGenericDevice::internalSetModuleAlias(TQString ma) {
168  m_modAlias = ma;
169 }
170 
171 TQString TDEGenericDevice::deviceDriver() {
172  return m_deviceDriver;
173 }
174 
175 void TDEGenericDevice::internalSetDeviceDriver(TQString dr) {
176  m_deviceDriver = dr;
177 }
178 
179 TQString TDEGenericDevice::subsystem() {
180  return m_subsystem;
181 }
182 
183 void TDEGenericDevice::internalSetSubsystem(TQString ss) {
184  m_subsystem = ss;
185 }
186 
187 TQString TDEGenericDevice::subModelID() {
188  return m_submodelID;
189 }
190 
191 void TDEGenericDevice::internalSetSubModelID(TQString id) {
192  m_submodelID = id;
193  m_submodelID.replace("0x", "");
194 }
195 
196 void TDEGenericDevice::internalSetParentDevice(TDEGenericDevice* pd) {
197  m_parentDevice = pd;
198 }
199 
200 TDEGenericDevice* TDEGenericDevice::parentDevice() {
201  return m_parentDevice;
202 }
203 
204 TQPixmap TDEGenericDevice::icon(TDEIcon::StdSizes size) {
205  return TDEGlobal::hardwareDevices()->getDeviceTypeIconFromType(type(), size);
206 }
207 
208 bool TDEGenericDevice::blacklistedForUpdate() {
209  return m_blacklistedForUpdate;
210 }
211 
212 void TDEGenericDevice::internalSetBlacklistedForUpdate(bool bl) {
213  m_blacklistedForUpdate = bl;
214 }
215 
216 TQString TDEGenericDevice::friendlyDeviceType() {
217  return TDEGlobal::hardwareDevices()->getFriendlyDeviceTypeStringFromType(type());
218 }
219 
220 TQString TDEGenericDevice::busID() {
221  TQString busid = m_systemPath;
222  busid = busid.remove(0, busid.findRev("/")+1);
223  busid = busid.remove(0, busid.find(":")+1);
224  return busid;
225 }
226 
227 TQString TDEGenericDevice::friendlyName() {
228  if (m_friendlyName.isNull()) {
229  if (type() == TDEGenericDeviceType::RootSystem) {
230  m_friendlyName = "Linux System";
231  }
232  else if (type() == TDEGenericDeviceType::Root) {
233  TQString friendlyDriverName = systemPath();
234  friendlyDriverName.truncate(friendlyDriverName.length()-1);
235  friendlyDriverName.remove(0, friendlyDriverName.findRev("/")+1);
236  m_friendlyName = friendlyDriverName;
237  }
238  else if (m_modAlias.lower().startsWith("pci")) {
239  m_friendlyName = TDEGlobal::hardwareDevices()->findPCIDeviceName(m_vendorID, m_modelID, m_subvendorID, m_submodelID);
240  }
241  else if (m_modAlias.lower().startsWith("usb")) {
242  m_friendlyName = TDEGlobal::hardwareDevices()->findUSBDeviceName(m_vendorID, m_modelID, m_subvendorID, m_submodelID);
243  }
244  else {
245  TQString acpigentype = systemPath();
246  acpigentype.truncate(acpigentype.length()-1);
247  acpigentype.remove(0, acpigentype.findRev("/")+1);
248  TQString pnpgentype = acpigentype;
249  pnpgentype.truncate(pnpgentype.find(":"));
250  if (pnpgentype.startsWith("PNP")) {
251  m_friendlyName = TDEGlobal::hardwareDevices()->findPNPDeviceName(pnpgentype);
252  }
253  else if (acpigentype.startsWith("device:")) {
254  acpigentype.remove(0, acpigentype.findRev(":")+1);
255  acpigentype.prepend("0x");
256  m_friendlyName = i18n("ACPI Node %1").arg(acpigentype.toUInt(0,0));
257  }
258  }
259  }
260 
261  if (m_friendlyName.isNull()) {
262  // Could not identify based on model/vendor codes
263  // Try to construct something from the model/vendor strings if they are available
264  if (!m_vendorName.isNull() && !m_vendorModel.isNull()) {
265  m_friendlyName = m_vendorName + " " + m_vendorModel;
266  }
267  }
268 
269  if (m_friendlyName.isNull()) {
270  // Could not identify based on model/vendor
271  // Guess by type
272  if (type() == TDEGenericDeviceType::CPU) {
273  m_friendlyName = name();
274  }
275  else if (type() == TDEGenericDeviceType::Event) {
276  if (m_systemPath.contains("PNP0C0D")) {
277  m_friendlyName = i18n("ACPI Lid Switch");
278  }
279  else if (m_systemPath.contains("PNP0C0E") || m_systemPath.contains("/LNXSLPBN")) {
280  m_friendlyName = i18n("ACPI Sleep Button");
281  }
282  else if (m_systemPath.contains("PNP0C0C") || m_systemPath.contains("/LNXPWRBN")) {
283  m_friendlyName = i18n("ACPI Power Button");
284  }
285  else if (m_parentDevice) {
286  // Use parent node name
287  return m_parentDevice->friendlyName();
288  }
289  else {
290  m_friendlyName = i18n("Generic Event Device");
291  }
292  }
293  else if (type() == TDEGenericDeviceType::Input) {
294  if (m_systemPath.contains("PNP0C0D")) {
295  m_friendlyName = i18n("ACPI Lid Switch");
296  }
297  else if (m_systemPath.contains("PNP0C0E") || m_systemPath.contains("/LNXSLPBN")) {
298  m_friendlyName = i18n("ACPI Sleep Button");
299  }
300  else if (m_systemPath.contains("PNP0C0C") || m_systemPath.contains("/LNXPWRBN")) {
301  m_friendlyName = i18n("ACPI Power Button");
302  }
303  else if (m_parentDevice) {
304  // Use parent node name
305  return m_parentDevice->friendlyName();
306  }
307  else {
308  m_friendlyName = i18n("Generic Input Device");
309  }
310  }
311  // Guess by driver
312  else if (!m_deviceDriver.isNull()) {
313  TQString friendlyDriverName = m_deviceDriver.lower();
314  friendlyDriverName[0] = friendlyDriverName[0].upper();
315  m_friendlyName = i18n("Generic %1 Device").arg(friendlyDriverName);
316  }
317  else if (m_systemPath.lower().startsWith("/sys/devices/virtual")) {
318  TQString friendlyDriverName = systemPath();
319  friendlyDriverName.truncate(friendlyDriverName.length()-1);
320  friendlyDriverName.remove(0, friendlyDriverName.findRev("/")+1);
321  if (!friendlyDriverName.isNull()) {
322  m_friendlyName = i18n("Virtual Device %1").arg(friendlyDriverName);
323  }
324  else {
325  m_friendlyName = i18n("Unknown Virtual Device");
326  }
327  }
328  else {
329  // I really have no idea what this peripheral is; say so!
330  m_friendlyName = i18n("Unknown Device") + " " + name();
331  }
332  }
333 
334  return m_friendlyName;
335 }
336 
337 TQString TDEGenericDevice::detailedFriendlyName() {
338  return friendlyName();
339 }
340 
341 #include "tdegenericdevice.moc"
TDEIcon::StdSizes
StdSizes
These are the standard sizes for icons.
Definition: kicontheme.h:112
TDELocale::i18n
TQString i18n(const char *text)
i18n is the function that does everything you need to translate a string.
Definition: tdelocale.cpp:1976
KStdAction::name
const char * name(StdAction id)
tdelocale.h

tdecore

Skip menu "tdecore"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

tdecore

Skip menu "tdecore"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdecore by doxygen 1.9.1
This website is maintained by Timothy Pearson.