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"
66 class TDEGenericDevice;
67 class TDEStorageDevice;
68 class TDENetworkDevice;
69 class TDEBacklightDevice;
70 class TDEMonitorDevice;
71 class TDESensorDevice;
72 class TDERootSystemDevice;
75 class TQSocketNotifier;
77 typedef TQPtrList<TDEGenericDevice> TDEGenericHardwareList;
78 typedef TQMap<TQString, TQString> TDEDeviceIDMap;
79 typedef TQDict<TDECPUDevice> TDECPUDeviceCache;
81 class TDECORE_EXPORT TDEHardwareDevices :
public TQObject
94 ~TDEHardwareDevices();
106 bool queryHardwareInformation();
112 TDEGenericHardwareList listAllPhysicalDevices();
119 TDEGenericHardwareList listByDeviceClass(TDEGenericDeviceType::TDEGenericDeviceType cl);
125 TDEGenericDevice* findBySystemPath(TQString syspath);
131 TDEGenericDevice* findByUniqueID(TQString uid);
137 TDEGenericDevice* findByDeviceNode(TQString devnode);
143 TDEStorageDevice* findDiskByUID(TQString uid);
149 TDECPUDevice* findCPUBySystemPath(TQString syspath,
bool inCache);
159 TQString findPCIDeviceName(TQString vendorid, TQString modelid, TQString subvendorid, TQString submodelid);
169 TQString findUSBDeviceName(TQString vendorid, TQString modelid, TQString subvendorid, TQString submodelid);
176 TQString findPNPDeviceName(TQString pnpid);
183 TQString findMonitorManufacturerName(TQString dpyid);
190 TQString getFriendlyDeviceTypeStringFromType(TDEGenericDeviceType::TDEGenericDeviceType query);
198 TQPixmap getDeviceTypeIconFromType(TDEGenericDeviceType::TDEGenericDeviceType query,
TDEIcon::StdSizes size);
204 TDERootSystemDevice* rootSystemDevice();
211 void rescanDeviceInformation(TDEGenericDevice* hwdevice);
221 void rescanDeviceInformation(TDEGenericDevice* hwdevice,
bool regenerateDeviceTree);
230 void setTriggerlessHardwareUpdatesEnabled(
bool enable);
239 void setBatteryUpdatesEnabled(
bool enable);
246 static TQString bytesToFriendlySizeString(
double bytes);
249 void hardwareAdded(TDEGenericDevice*);
250 void hardwareRemoved(TDEGenericDevice*);
251 void hardwareUpdated(TDEGenericDevice*);
252 void mountTableModified();
253 void hardwareEvent(TDEHardwareEvent::TDEHardwareEvent, TQString uuid);
260 void eventDeviceKeyPressed(
unsigned int keycode, TDEEventDevice* device);
263 void processHotPluggedHardware();
264 void processModifiedMounts();
265 void processModifiedCPUs();
266 void processBatteryDevices();
267 void processStatelessDevices();
268 void processEventDeviceKeyPressed(
unsigned int keycode, TDEEventDevice* edevice);
271 void updateBlacklists(TDEGenericDevice* hwdevice, udev_device* dev);
274 TDEGenericDevice *classifyUnknownDevice(udev_device* dev, TDEGenericDevice* existingdevice=0,
bool force_full_classification=
true);
275 TDEGenericDevice *classifyUnknownDeviceByExternalRules(udev_device* dev, TDEGenericDevice* existingdevice=0,
bool classifySubDevices=
false);
276 void updateExistingDeviceInformation(TDEGenericDevice* existingdevice, udev_device* dev=NULL);
278 void updateParentDeviceInformation();
279 void updateParentDeviceInformation(TDEGenericDevice* hwdevice);
281 void addCoreSystemDevices();
287 TQByteArray getEDID(TQString path);
293 TQPair<TQString,TQString> getEDIDMonitorName(TQString path);
295 struct udev *m_udevStruct;
296 struct udev_monitor *m_udevMonitorStruct;
297 TDEGenericHardwareList m_deviceList, m_deviceListPrc;
300 TQTimer* m_cpuWatchTimer;
301 TQTimer* m_batteryWatchTimer;
302 TQTimer* m_deviceWatchTimer;
304 TQSocketNotifier* m_devScanNotifier;
305 TQSocketNotifier* m_mountScanNotifier;
307 TQMap<TQString, bool> m_mountTable;
308 TQStringList m_cpuInfo;
310 TDEDeviceIDMap* pci_id_map;
311 TDEDeviceIDMap* usb_id_map;
312 TDEDeviceIDMap* pnp_id_map;
313 TDEDeviceIDMap* dpy_id_map;
315 TDECPUDeviceCache m_cpuByPathCache;
317 TDEGenericDevice *hwdevicePrc;
319 friend class TDEGenericDevice;
320 friend class TDEStorageDevice;
321 friend class TDECPUDevice;
324 #endif // _TDEHARDWAREDEVICES_H
StdSizes
These are the standard sizes for icons.
KSimpleDirWatch is a basic copy of KDirWatch but with the TDEIO linking requirement removed...