18 #ifndef _TDEHARDWAREDEVICES_H
19 #define _TDEHARDWAREDEVICES_H
24 #include <tqptrlist.h>
28 #include <tqstringlist.h>
30 #include "tdelibs_export.h"
31 #include "kicontheme.h"
33 #include "tdehwcommontypes.h"
36 #include "tdegenericdevice.h"
37 #include "kiconloader.h"
45 #include "tdestoragedevice.h"
46 #include "tdecpudevice.h"
47 #include "tdebatterydevice.h"
48 #include "tdemainspowerdevice.h"
49 #include "tdenetworkdevice.h"
50 #include "tdebacklightdevice.h"
51 #include "tdemonitordevice.h"
52 #include "tdesensordevice.h"
53 #include "tderootsystemdevice.h"
54 #include "tdeeventdevice.h"
55 #include "tdeinputdevice.h"
56 #include "tdecryptographiccarddevice.h"
67 class TDEGenericDevice;
68 class TDEStorageDevice;
69 class TDENetworkDevice;
70 class TDEBacklightDevice;
71 class TDEMonitorDevice;
72 class TDESensorDevice;
73 class TDERootSystemDevice;
76 class TQSocketNotifier;
78 typedef TQPtrList<TDEGenericDevice> TDEGenericHardwareList;
79 typedef TQMap<TQString, TQString> TDEDeviceIDMap;
80 typedef TQDict<TDECPUDevice> TDECPUDeviceCache;
82 class TDECORE_EXPORT TDEHardwareDevices :
public TQObject
95 ~TDEHardwareDevices();
107 bool queryHardwareInformation();
113 TDEGenericHardwareList listAllPhysicalDevices();
120 TDEGenericHardwareList listByDeviceClass(TDEGenericDeviceType::TDEGenericDeviceType cl);
126 TDEGenericDevice* findBySystemPath(TQString syspath);
132 TDEGenericDevice* findByUniqueID(TQString uid);
138 TDEGenericDevice* findByDeviceNode(TQString devnode);
144 TDEStorageDevice* findDiskByUID(TQString uid);
150 TDECPUDevice* findCPUBySystemPath(TQString syspath,
bool inCache);
160 TQString findPCIDeviceName(TQString vendorid, TQString modelid, TQString subvendorid, TQString submodelid);
170 TQString findUSBDeviceName(TQString vendorid, TQString modelid, TQString subvendorid, TQString submodelid);
177 TQString findPNPDeviceName(TQString pnpid);
184 TQString findMonitorManufacturerName(TQString dpyid);
191 TQString getFriendlyDeviceTypeStringFromType(TDEGenericDeviceType::TDEGenericDeviceType query);
199 TQPixmap getDeviceTypeIconFromType(TDEGenericDeviceType::TDEGenericDeviceType query,
TDEIcon::StdSizes size);
205 TDERootSystemDevice* rootSystemDevice();
216 void rescanDeviceInformation(TDEGenericDevice* hwdevice, udev_device* dev = NULL,
bool regenerateDeviceTree =
true);
225 void setTriggerlessHardwareUpdatesEnabled(
bool enable);
234 void setBatteryUpdatesEnabled(
bool enable);
241 static TQString bytesToFriendlySizeString(
double bytes);
244 void hardwareAdded(TDEGenericDevice*);
245 void hardwareRemoved(TDEGenericDevice*);
246 void hardwareUpdated(TDEGenericDevice*);
253 void eventDeviceKeyPressed(
unsigned int keycode, TDEEventDevice* device);
256 void processHotPluggedHardware();
257 void processModifiedMounts();
258 void processModifiedCPUs();
259 void processBatteryDevices();
260 void processStatelessDevices();
261 void processEventDeviceKeyPressed(
unsigned int keycode, TDEEventDevice* edevice);
264 void updateBlacklists(TDEGenericDevice* hwdevice, udev_device* dev);
267 TDEGenericDevice *classifyUnknownDevice(udev_device* dev, TDEGenericDevice* existingdevice=0,
bool force_full_classification=
true);
268 TDEGenericDevice *classifyUnknownDeviceByExternalRules(udev_device* dev, TDEGenericDevice* existingdevice=0,
bool classifySubDevices=
false);
269 void updateExistingDeviceInformation(TDEGenericDevice *device, udev_device *dev=NULL);
271 void updateParentDeviceInformation();
272 void updateParentDeviceInformation(TDEGenericDevice* hwdevice);
274 void addCoreSystemDevices();
280 TQByteArray getEDID(TQString path);
286 TQPair<TQString,TQString> getEDIDMonitorName(TQString path);
288 struct udev *m_udevStruct;
289 struct udev_monitor *m_udevMonitorStruct;
290 TDEGenericHardwareList m_deviceList;
293 TQTimer* m_cpuWatchTimer;
294 TQTimer* m_batteryWatchTimer;
295 TQTimer* m_deviceWatchTimer;
297 TQSocketNotifier* m_devScanNotifier;
298 TQSocketNotifier* m_mountScanNotifier;
300 TQMap<TQString, bool> m_mountTable;
301 TQStringList m_cpuInfo;
303 TDEDeviceIDMap* pci_id_map;
304 TDEDeviceIDMap* usb_id_map;
305 TDEDeviceIDMap* pnp_id_map;
306 TDEDeviceIDMap* dpy_id_map;
308 TDECPUDeviceCache m_cpuByPathCache;
310 friend class TDEGenericDevice;
311 friend class TDEStorageDevice;
312 friend class TDECPUDevice;
KSimpleDirWatch is a basic copy of KDirWatch but with the TDEIO linking requirement removed.
StdSizes
These are the standard sizes for icons.