18#ifndef _TDEHARDWAREDEVICES_H
19#define _TDEHARDWAREDEVICES_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"
67class TDEGenericDevice;
68class TDEStorageDevice;
69class TDENetworkDevice;
70class TDEBacklightDevice;
71class TDEMonitorDevice;
73class TDERootSystemDevice;
76class TQSocketNotifier;
78typedef TQPtrList<TDEGenericDevice> TDEGenericHardwareList;
79typedef TQMap<TQString, TQString> TDEDeviceIDMap;
80typedef TQDict<TDECPUDevice> TDECPUDeviceCache;
82class 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.