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;
315 #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...