From 8fb2978ca04635f273e725708962d06c00a59af9 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Tue, 3 Apr 2012 13:38:06 -0500 Subject: Build device structure in TDE hardware library Repair potential segfault in same due to ptrlist copying --- tdecore/tdehardwaredevices.h | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'tdecore/tdehardwaredevices.h') diff --git a/tdecore/tdehardwaredevices.h b/tdecore/tdehardwaredevices.h index 5f594a8ab..bab5bd064 100644 --- a/tdecore/tdehardwaredevices.h +++ b/tdecore/tdehardwaredevices.h @@ -41,6 +41,7 @@ // Keep readGenericDeviceTypeFromString() in tdehardwaredevices.cpp in sync with this enum namespace TDEGenericDeviceType { enum TDEGenericDeviceType { + Root, CPU, GPU, RAM, @@ -269,6 +270,16 @@ class TDECORE_EXPORT TDEGenericDevice */ TQString &modelID(); + /** + * @param a TDEGenericDevice* with the parent device, if any + */ + void setParentDevice(TDEGenericDevice* pd); + + /** + * @return a TDEGenericDevice* with the parent device, if any + */ + TDEGenericDevice* parentDevice(); + /** * @param a TQString with the model ID, if any */ @@ -286,6 +297,7 @@ class TDECORE_EXPORT TDEGenericDevice TQString m_vendorID; TQString m_modelID; bool m_blacklistedForUpdate; + TDEGenericDevice* m_parentDevice; // Internal use only! TQStringList m_externalSubtype; @@ -506,7 +518,14 @@ class TDECORE_EXPORT TDEHardwareDevices : public TQObject * List all hardware capabilities on all devices * @return TQPtrList containing all known hardware devices */ - TQPtrList &listAllPhysicalDevices(); + TQPtrList listAllPhysicalDevices(); + + /** + * List all hardware capabilities on all devices + * @param a TDEGenericDeviceType::TDEGenericDeviceType specifying the device class + * @return TQPtrList containing all known hardware devices + */ + TQPtrList listByDeviceClass(TDEGenericDeviceType::TDEGenericDeviceType cl); /** * Return the device with system path @arg syspath, or 0 if no device exists for that path @@ -544,6 +563,11 @@ class TDECORE_EXPORT TDEHardwareDevices : public TQObject TDEGenericDevice *classifyUnknownDevice(udev_device* dev, TDEGenericDevice* existingdevice=0, bool force_full_classification=true); TDEGenericDevice *classifyUnknownDeviceByExternalRules(udev_device* dev, TDEGenericDevice* existingdevice=0, bool classifySubDevices=false); + void updateParentDeviceInformation(); + void updateParentDeviceInformation(TDEGenericDevice* hwdevice); + + void addCoreSystemDevices(); + struct udev *m_udevStruct; struct udev_monitor *m_udevMonitorStruct; TDEGenericHardwareList m_deviceList; -- cgit v1.2.1