summaryrefslogtreecommitdiffstats
path: root/tdecore/tdehardwaredevices.h
diff options
context:
space:
mode:
Diffstat (limited to 'tdecore/tdehardwaredevices.h')
-rw-r--r--tdecore/tdehardwaredevices.h2126
1 files changed, 0 insertions, 2126 deletions
diff --git a/tdecore/tdehardwaredevices.h b/tdecore/tdehardwaredevices.h
deleted file mode 100644
index 531406dc5..000000000
--- a/tdecore/tdehardwaredevices.h
+++ /dev/null
@@ -1,2126 +0,0 @@
-/* This file is part of the TDE libraries
- Copyright (C) 2012 Timothy Pearson <kb9vqf@pearsoncomputing.net>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License version 2 as published by the Free Software Foundation.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-#ifndef _TDEHARDWAREDEVICES_H
-#define _TDEHARDWAREDEVICES_H
-
-// TDE includes
-#include <tqobject.h>
-#include <tqstring.h>
-#include <tqptrlist.h>
-#include <tqstringlist.h>
-#include "kiconloader.h"
-#include "tdelibs_export.h"
-
-// udev includes
-extern "C" {
-#include <libudev.h>
-}
-#include <stdio.h>
-#include <stdlib.h>
-#include <locale.h>
-#include <unistd.h>
-
-/**
- * Hardware Device Access and Monitoring Library
- *
- * @author Timothy Pearson
- */
-
-class TDENetworkConnectionManager;
-
-namespace TDEHardwareEvent {
-enum TDEHardwareEvent {
- HardwareListModified,
- MountTableModified,
- HardwareAdded,
- HardwareRemoved,
- HardwareUpdated,
- Other,
- Last = Other
-};
-};
-
-// Keep readGenericDeviceTypeFromString(), getFriendlyDeviceTypeStringFromType(), and getDeviceTypeIconFromType() in tdehardwaredevices.cpp in sync with this enum
-namespace TDEGenericDeviceType {
-enum TDEGenericDeviceType {
- Root,
- RootSystem,
- CPU,
- GPU,
- RAM,
- Bus,
- I2C,
- MDIO,
- Mainboard,
- Disk,
- SCSI,
- StorageController,
- Mouse,
- Keyboard,
- HID,
- Modem,
- Monitor,
- Network,
- Printer,
- Scanner,
- Sound,
- VideoCapture,
- IEEE1394,
- PCMCIA,
- Camera,
- TextIO,
- Serial,
- Parallel,
- Peripheral,
- Backlight,
- Battery,
- PowerSupply,
- Dock,
- ThermalSensor,
- ThermalControl,
- BlueTooth,
- Bridge,
- Platform,
- Cryptography,
- Event,
- Input,
- PNP,
- OtherACPI,
- OtherUSB,
- OtherMultimedia,
- OtherPeripheral,
- OtherSensor,
- OtherVirtual,
- Other,
- Last = Other
-};
-};
-
-// Keep readDiskDeviceSubtypeFromString() in tdehardwaredevices.cpp in sync with this enum
-namespace TDEDiskDeviceType {
-enum TDEDiskDeviceType {
- Null = 0x00000000,
- MediaDevice = 0x00000001,
- Floppy = 0x00000002,
- CDROM = 0x00000004,
- CDRW = 0x00000008,
- DVDROM = 0x00000010,
- DVDRAM = 0x00000020,
- DVDRW = 0x00000040,
- BDROM = 0x00000080,
- BDRW = 0x00000100,
- Zip = 0x00000200,
- Jaz = 0x00000400,
- Camera = 0x00000800,
- LUKS = 0x00001000,
- OtherCrypted = 0x00002000,
- CDAudio = 0x00004000,
- CDVideo = 0x00008000,
- DVDVideo = 0x00010000,
- BDVideo = 0x00020000,
- Flash = 0x00040000,
- USB = 0x00080000,
- Tape = 0x00100000,
- HDD = 0x00200000,
- Optical = 0x00400000,
- RAM = 0x00800000,
- Loop = 0x01000000,
- CompactFlash = 0x02000000,
- MemoryStick = 0x04000000,
- SmartMedia = 0x08000000,
- SDMMC = 0x10000000,
- UnlockedCrypt = 0x20000000,
- Other = 0x80000000
-};
-
-inline TDEDiskDeviceType operator|(TDEDiskDeviceType a, TDEDiskDeviceType b)
-{
- return static_cast<TDEDiskDeviceType>(static_cast<int>(a) | static_cast<int>(b));
-}
-
-inline TDEDiskDeviceType operator&(TDEDiskDeviceType a, TDEDiskDeviceType b)
-{
- return static_cast<TDEDiskDeviceType>(static_cast<int>(a) & static_cast<int>(b));
-}
-
-inline TDEDiskDeviceType operator~(TDEDiskDeviceType a)
-{
- return static_cast<TDEDiskDeviceType>(~static_cast<int>(a));
-}
-};
-
-namespace TDEDiskDeviceStatus {
-enum TDEDiskDeviceStatus {
- Null = 0x00000000,
- Mountable = 0x00000001,
- Removable = 0x00000002,
- Inserted = 0x00000004,
- Blank = 0x00000008,
- UsedByDevice = 0x00000010,
- UsesDevice = 0x00000020,
- ContainsFilesystem = 0x00000040,
- Hotpluggable = 0x00000080,
- Other = 0x80000000
-};
-
-inline TDEDiskDeviceStatus operator|(TDEDiskDeviceStatus a, TDEDiskDeviceStatus b)
-{
- return static_cast<TDEDiskDeviceStatus>(static_cast<int>(a) | static_cast<int>(b));
-}
-
-inline TDEDiskDeviceStatus operator&(TDEDiskDeviceStatus a, TDEDiskDeviceStatus b)
-{
- return static_cast<TDEDiskDeviceStatus>(static_cast<int>(a) & static_cast<int>(b));
-}
-
-inline TDEDiskDeviceStatus operator~(TDEDiskDeviceStatus a)
-{
- return static_cast<TDEDiskDeviceStatus>(~static_cast<int>(a));
-}
-};
-
-class TDECORE_EXPORT TDESensorCluster
-{
- public:
- /**
- * Constructor.
- */
- TDESensorCluster();
-
- TQString label;
- double current;
- double minimum;
- double maximum;
- double warning;
- double critical;
-};
-
-class TDECORE_EXPORT TDEGenericDevice : public TQObject
-{
- Q_OBJECT
-
- public:
- /**
- * Constructor.
- * @param Device type
- */
- TDEGenericDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn=TQString::null);
-
- /**
- * Destructor.
- */
- ~TDEGenericDevice();
-
- /**
- * @return a TDEGenericDeviceType::TDEGenericDeviceType specifying the device type
- */
- TDEGenericDeviceType::TDEGenericDeviceType type();
-
- /**
- * @return a TQString with the device name, if any
- */
- TQString name();
-
- /**
- * @return a TQString with the vendor name, if any
- */
- TQString vendorName();
-
- /**
- * @return a TQString with the vendor model, if any
- */
- TQString vendorModel();
-
- /**
- * @return a TQString with the serial number, if any
- */
- TQString serialNumber();
-
- /**
- * @return a TQString with a friendly name
- *
- * While TDE tries very hard to generate and return a friendly name for this device,
- * sometimes the best it will be able to do is "Unknown Device [xxxx:yyyy]"
- */
- virtual TQString friendlyName();
-
- /**
- * @return a TQString with the device bus name, if any
- */
- TQString deviceBus();
-
- /**
- * @return a TQString with the system path, if any
- *
- * This method is non-portable, so be careful!
- */
- TQString systemPath();
-
- /**
- * @return a TQString with the system device node, if any
- *
- * This method is non-portable, so be careful!
- */
- TQString deviceNode();
-
- /**
- * @return true if this device has been blacklisted for update actions
- */
- bool blacklistedForUpdate();
-
- /**
- * @return a TQString containing a unique identifier for this device
- */
- TQString uniqueID();
-
- /**
- * @return a TQString with the vendor ID, if any
- */
- TQString vendorID();
-
- /**
- * @return a TQString with the model ID, if any
- */
- TQString modelID();
-
- /**
- * @return a TQString with the encoded vendor, if any
- */
- TQString vendorEncoded();
-
- /**
- * @return a TQString with the encoded model, if any
- */
- TQString modelEncoded();
-
- /**
- * @return a TQString with the subvendor ID, if any
- */
- TQString subVendorID();
-
- /**
- * @return a TQString with the submodel ID, if any
- */
- TQString subModelID();
-
- /**
- * @return a TQString with the PCI device class, if any
- */
- TQString PCIClass();
-
- /**
- * @return a TQString with the module alias string, if any
- */
- TQString moduleAlias();
-
- /**
- * @return a TQString with the device driver, if any
- */
- TQString deviceDriver();
-
- /**
- * @return a TQString with the subsystem type, if any
- */
- TQString subsystem();
-
- /**
- * @return a TDEGenericDevice* with the parent device, if any
- */
- TDEGenericDevice* parentDevice();
-
- /**
- * @return a TQString containing the friendly type name
- */
- virtual TQString friendlyDeviceType();
-
- /**
- * @return a TQString containing the device bus ID, if any
- */
- TQString busID();
-
- /**
- * Get an icon for this device
- * @param size a TDEIcon::StdSizes structure specifying the desired icon size
- * @return a TQPixmap containing the icon for the specified type
- */
- virtual TQPixmap icon(TDEIcon::StdSizes size);
-
- protected:
- /**
- * @param a TQString with the device name, if any
- * @internal
- */
- void internalSetName(TQString dn);
-
- /**
- * @param a TQString with the vendor name, if any
- * @internal
- */
- void internalSetVendorName(TQString vn);
-
- /**
- * @param a TQString with the vendor model, if any
- * @internal
- */
- void internalSetVendorModel(TQString vm);
-
- /**
- * @param a TQString with the serial number, if any
- * @internal
- */
- void internalSetSerialNumber(TQString sn);
-
- /**
- * @param a TQString with the device bus name, if any
- * @internal
- */
- void internalSetDeviceBus(TQString db);
-
- /**
- * @param a TQString with the system path, if any
- * @internal
- *
- * This method is non-portable, so be careful!
- */
- void internalSetSystemPath(TQString sp);
-
- /**
- * @param a TQString with the system device node, if any
- * @internal
- *
- * This method is non-portable, so be careful!
- */
- void internalSetDeviceNode(TQString sn);
-
- /**
- * @param bl true if this device has been blacklisted for update actions
- * @internal
- */
- void internalSetBlacklistedForUpdate(bool bl);
-
- /**
- * @param a TQString with the vendor ID, if any
- * @internal
- */
- void internalSetVendorID(TQString id);
-
- /**
- * @param a TQString with the model ID, if any
- * @internal
- */
- void internalSetModelID(TQString id);
-
- /**
- * @param a TQString with the encoded vendor, if any
- * @internal
- */
- void internalSetVendorEncoded(TQString id);
-
- /**
- * @param a TQString with the encoded model, if any
- * @internal
- */
- void internalSetModelEncoded(TQString id);
-
- /**
- * @param a TQString with the subvendor ID, if any
- * @internal
- */
- void internalSetSubVendorID(TQString id);
-
- /**
- * @param a TQString with the submodel ID, if any
- * @internal
- */
- void internalSetSubModelID(TQString id);
-
- /**
- * @param a TQString with the PCI device class, if any
- * @internal
- */
- void internalSetPCIClass(TQString cl);
-
- /**
- * @param a TQString with the module alias string, if any
- * @internal
- */
- void internalSetModuleAlias(TQString ma);
-
- /**
- * @param a TQString with the device driver, if any
- * @internal
- */
- void internalSetDeviceDriver(TQString dr);
-
- /**
- * @param a TQString with the subsystem type, if any
- * @internal
- */
- void internalSetSubsystem(TQString ss);
-
- /**
- * @param a TDEGenericDevice* with the parent device, if any
- * @internal
- */
- void internalSetParentDevice(TDEGenericDevice* pd);
-
- private:
- TDEGenericDeviceType::TDEGenericDeviceType m_deviceType;
- TQString m_deviceName;
- TQString m_systemPath;
- TQString m_deviceNode;
- TQString m_vendorName;
- TQString m_vendorModel;
- TQString m_serialNumber;
- TQString m_deviceBus;
- TQString m_uniqueID;
- TQString m_vendorID;
- TQString m_modelID;
- TQString m_vendorenc;
- TQString m_modelenc;
- TQString m_subvendorID;
- TQString m_submodelID;
- TQString m_pciClass;
- TQString m_modAlias;
- TQString m_deviceDriver;
- TQString m_subsystem;
- TQString m_friendlyName;
- bool m_blacklistedForUpdate;
- TDEGenericDevice* m_parentDevice;
-
- // Internal use only!
- TQStringList m_externalSubtype;
- TQString m_externalRulesFile;
- TQString m_udevtype;
- TQString m_udevdevicetypestring;
- TQString udevdevicetypestring_alt;
-
- friend class TDEHardwareDevices;
-};
-
-typedef TQMap<TQString,TQString> TDEStorageMountOptions;
-
-class TDECORE_EXPORT TDEStorageDevice : public TDEGenericDevice
-{
- public:
- /**
- * Constructor.
- * @param Device type
- */
- TDEStorageDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn=TQString::null);
-
- /**
- * Destructor.
- */
- ~TDEStorageDevice();
-
- /**
- * @return a TQString with the disk or partition label, if any
- */
- TQString diskLabel();
-
- /**
- * @return a TQString with the disk UUID, if any
- */
- TQString diskUUID();
-
- /**
- * @return an OR-ed combination of TDEDiskDeviceType::TDEDiskDeviceType type flags
- */
- TDEDiskDeviceType::TDEDiskDeviceType diskType();
-
- /**
- * @return an OR-ed combination of TDEDiskDeviceStatus::TDEDiskDeviceStatus type flags
- */
- TDEDiskDeviceStatus::TDEDiskDeviceStatus diskStatus();
-
- /**
- * @return true if media inserted, false if no media available
- */
- bool mediaInserted();
-
- /**
- * @return a TQString with the filesystem name, if any
- */
- TQString fileSystemName();
-
- /**
- * @return a TQString with the filesystem usage string, if any
- */
- TQString fileSystemUsage();
-
- /**
- * @return a TQStringList containing system paths to all devices with a lock on this device, if any
- */
- TQStringList holdingDevices();
-
- /**
- * @return a TQStringList containing system paths to all devices locked by this device, if any
- */
- TQStringList slaveDevices();
-
- /**
- * Mounts the device if not encrypted
- *
- * @param a TQString containing a requested mount name under /media, if desired
- * @param a TQString containing any mount options for pmount, if desired
- * @param a pointer to a TQString which will be populated with any error messages from pmount, if desired
- * @param a pointer to an integer which will be populated with the return code from pmount, if desired
- *
- * @return a TQString with the mount path, if successful
- */
- TQString mountDevice(TQString mediaName=TQString::null, TDEStorageMountOptions mountOptions=TDEStorageMountOptions(), TQString* errRet=0, int* retcode=0);
-
- /**
- * Mounts the encrypted device if the correct passphrase is given
- *
- * @param a TQString containing the passphrase
- * @param a TQString containing a requested mount name under /media, if desired
- * @param a TQString containing any mount options for pmount, if desired
- * @param a pointer to a TQString which will be populated with any error messages from pmount, if desired
- * @param a pointer to an integer which will be populated with the return code from pmount, if desired
- *
- * @return a TQString with the mount path, if successful
- */
- TQString mountEncryptedDevice(TQString passphrase, TQString mediaName=TQString::null, TDEStorageMountOptions mountOptions=TDEStorageMountOptions(), TQString* errRet=0, int* retcode=0);
-
- /**
- * Unmounts the device
- *
- * @param a pointer to a TQString which will be populated with any error messages from pmount, if desired
- * @param a pointer to an integer which will be populated with the return code from pmount, if desired
- *
- * @return TRUE if unmount was successful
- */
- bool unmountDevice(TQString* errRet, int* retcode=0);
-
- /**
- * @return a TQString with the mount path, if mounted
- */
- TQString mountPath();
-
- /**
- * @return an unsigned long with the device size in bytes
- */
- unsigned long long deviceSize();
-
- /**
- * @return a TQString with the device size in human readable form
- */
- TQString deviceFriendlySize();
-
- /**
- * Get an icon for this device
- * @param size a TDEIcon::StdSizes structure specifying the desired icon size
- * @return a TQPixmap containing the icon for the specified type
- *
- * This method overrides TDEGenericDevice::icon(TDEIcon::StdSizes size)
- */
- TQPixmap icon(TDEIcon::StdSizes size);
-
- /**
- * @return a TQString with a friendly name
- *
- * This method overrides TDEGenericDevice::friendlyName()
- */
- TQString friendlyName();
-
- /**
- * @return a TQString containing the friendly type name
- *
- * This method overrides TDEGenericDevice::friendlyDeviceType()
- */
- TQString friendlyDeviceType();
-
- /**
- * @param an OR-ed combination of TDEDiskDeviceType::TDEDiskDeviceType type flags
- */
- bool isDiskOfType(TDEDiskDeviceType::TDEDiskDeviceType tf);
-
- /**
- * @param an OR-ed combination of TDEDiskDeviceStatus::TDEDiskDeviceStatus type flags
- */
- bool checkDiskStatus(TDEDiskDeviceStatus::TDEDiskDeviceStatus sf);
-
- /**
- * @param TRUE to engage media lock, FALSE to disable it
- * @return TRUE on success, FALSE on failure
- *
- * This method currently works on CD-ROM drives and similar devices
- */
- bool lockDriveMedia(bool lock);
-
- /**
- * @return TRUE on success, FALSE on failure
- *
- * This method currently works on CD-ROM drives and similar devices
- */
- bool ejectDriveMedia();
-
- /**
- * @return TRUE on success, FALSE on failure
- *
- * This method currently works on all removable storage devices
- */
- bool ejectDrive();
-
- protected:
- /**
- * @param a TQString with the disk or partition label, if any
- * @internal
- */
- void internalSetDiskLabel(TQString dn);
-
- /**
- * @param a TQString with the disk UUID, if any
- * @internal
- */
- void internalSetDiskUUID(TQString id);
-
- /**
- * @param an OR-ed combination of TDEDiskDeviceType::TDEDiskDeviceType type flags
- * @internal
- */
- void internalSetDiskType(TDEDiskDeviceType::TDEDiskDeviceType tf);
-
- /**
- * @param an OR-ed combination of TDEDiskDeviceStatus::TDEDiskDeviceStatus type flags
- * @internal
- */
- void internalSetDiskStatus(TDEDiskDeviceStatus::TDEDiskDeviceStatus st);
-
- /**
- * @param a bool with the media status
- * @internal
- */
- void internalSetMediaInserted(bool inserted);
-
- /**
- * @param a TQString with the filesystem name, if any
- * @internal
- */
- void internalSetFileSystemName(TQString fn);
-
- /**
- * @param a TQString with the filesystem usage string, if any
- * @internal
- */
- void internalSetFileSystemUsage(TQString fu);
-
- /**
- * @param a TQStringList containing system paths to all devices with a lock on this device, if any
- * @internal
- */
- void internalSetHoldingDevices(TQStringList hd);
-
- /**
- * @param a TQStringList containing system paths to all devices locked by this device, if any
- * @internal
- */
- void internalSetSlaveDevices(TQStringList sd);
-
- private:
- TDEDiskDeviceType::TDEDiskDeviceType m_diskType;
- TDEDiskDeviceStatus::TDEDiskDeviceStatus m_diskStatus;
- TQString m_diskName;
- TQString m_diskUUID;
- TQString m_fileSystemName;
- TQString m_fileSystemUsage;
- bool m_mediaInserted;
- TQString m_mountPath;
- TQStringList m_holdingDevices;
- TQStringList m_slaveDevices;
-
- friend class TDEHardwareDevices;
-};
-
-class TDECORE_EXPORT TDECPUDevice : public TDEGenericDevice
-{
- public:
- /**
- * Constructor.
- * @param Device type
- */
- TDECPUDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn=TQString::null);
-
- /**
- * Destructor.
- */
- ~TDECPUDevice();
-
- /**
- * @return a double with the current CPU frequency in MHz, if available
- */
- double frequency();
-
- /**
- * @return a double with the minimum CPU frequency in MHz, if available
- */
- double minFrequency();
-
- /**
- * @return a double with the maximum CPU frequency in MHz, if available
- */
- double maxFrequency();
-
- /**
- * @return a double with the transition latency in ns, if available
- */
- double transitionLatency();
-
- /**
- * @return a TQString with the current CPU governor policy, if available
- */
- TQString governor();
-
- /**
- * @return a TQString with the current CPU scaling driver, if available
- */
- TQString scalingDriver();
-
- /**
- * @return a TQStringList with the IDs of all processors that are dependent on the frequency/power settings of this one, if available
- */
- TQStringList dependentProcessors();
-
- /**
- * @return a TQStringList with all valid scaling frequencies in Hz, if available
- */
- TQStringList availableFrequencies();
-
- /**
- * @return a TQStringList with all available governor policies, if available
- */
- TQStringList availableGovernors();
-
- /**
- * @return TRUE if permissions allow the CPU governor to be set, FALSE if not
- */
- bool canSetGovernor();
-
- /**
- * @param gv a TQString with the new CPU governor policy name
- */
- void setGovernor(TQString gv);
-
- /**
- * @return TRUE if permissions allow the CPU maximum frequency to be set, FALSE if not
- */
- bool canSetMaximumScalingFrequency();
-
- /**
- * @param gv a double with the new CPU maximum frequency in MHz
- */
- void setMaximumScalingFrequency(double fr);
-
- /**
- * @return an integer with the core number, starting at 0
- */
- int coreNumber();
-
- protected:
- /**
- * @param fr a double with the current CPU frequency in MHz, if available
- * @internal
- */
- void internalSetFrequency(double fr);
-
- /**
- * @param fr a double with the minimum CPU frequency in MHz, if available
- * @internal
- */
- void internalSetMinFrequency(double fr);
-
- /**
- * @param fr a double with the maximum CPU frequency in MHz, if available
- * @internal
- */
- void internalSetMaxFrequency(double fr);
-
- /**
- * @param tl a double with the transition latency in ns, if available
- * @internal
- */
- void internalSetTransitionLatency(double tl);
-
- /**
- * @param gr a TQString with the current CPU governor policy, if available
- * @internal
- */
- void internalSetGovernor(TQString gr);
-
- /**
- * @param dr a TQString with the current CPU scaling driver, if available
- * @internal
- */
- void internalSetScalingDriver(TQString dr);
-
- /**
- * @param dp a TQStringList with the IDs of all processors that are dependent on the frequency/power settings of this one, if available
- * @internal
- */
- void internalSetDependentProcessors(TQStringList dp);
-
- /**
- * @param af a TQStringList with all valid scaling frequencies in Hz, if available
- * @internal
- */
- void internalSetAvailableFrequencies(TQStringList af);
-
- /**
- * @param gp a TQStringList with all available governor policies, if available
- * @internal
- */
- void internalSetAvailableGovernors(TQStringList gp);
-
- /**
- * @param cn an integer with the core number, starting at 0
- * @internal
- */
- void internalSetCoreNumber(int cn);
-
- private:
- double m_frequency;
- double m_minfrequency;
- double m_maxfrequency;
- double m_transitionlatency;
- TQString m_governor;
- TQString m_scalingdriver;
- TQStringList m_tiedprocs;
- TQStringList m_frequencies;
- TQStringList m_governers;
- int m_corenumber;
-
- friend class TDEHardwareDevices;
-};
-
-namespace TDEBatteryStatus {
-enum TDEBatteryStatus {
- Charging,
- Discharging,
- Full,
- Unknown = 0x80000000
-};
-};
-
-class TDECORE_EXPORT TDEBatteryDevice : public TDEGenericDevice
-{
- public:
- /**
- * Constructor.
- * @param Device type
- */
- TDEBatteryDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn=TQString::null);
-
- /**
- * Destructor.
- */
- ~TDEBatteryDevice();
-
- /**
- * @return a double with the current battery voltage, if available
- */
- double voltage();
-
- /**
- * @return a double with the minimum battery voltage, if available
- */
- double minimumVoltage();
-
- /**
- * @return a double with the maximum battery voltage, if available
- */
- double maximumVoltage();
-
- /**
- * @return a double with the designed maximum battery voltage, if available
- */
- double maximumDesignVoltage();
-
- /**
- * @return a double with the current battery energy in watt-hours, if available
- */
- double energy();
-
- /**
- * @return a double with the current battery alarm energy in watt-hours, if available
- */
- double alarmEnergy();
-
- /**
- * @return a double with the maximum battery energy in watt-hours, if available
- */
- double maximumEnergy();
-
- /**
- * @return a double with the designed maximum battery energy in watt-hours, if available
- */
- double maximumDesignEnergy();
-
- /**
- * @return a double with the current battery discharge rate in watt-hours, if available
- */
- double dischargeRate();
-
- /**
- * @return a double with the current battery discharge time remaining in seconds, if available
- */
- double timeRemaining();
-
- /**
- * @return a TQString with the battery technology, if available
- */
- TQString technology();
-
- /**
- * @return a TDEBatteryStatus::TDEBatteryStatus with the current battery status
- */
- TDEBatteryStatus::TDEBatteryStatus status();
-
- /**
- * @return TRUE if the battery is installed
- */
- bool installed();
-
- /**
- * @return a double with the current battery charge in percent, if available
- */
- double chargePercent();
-
- protected:
- /**
- * @param a double with the current battery voltage, if available
- * @internal
- */
- void internalSetVoltage(double vt);
-
- /**
- * @param a double with the minimum battery voltage, if available
- * @internal
- */
- void internalSetMinimumVoltage(double vt);
-
- /**
- * @param a double with the maximum battery voltage, if available
- * @internal
- */
- void internalSetMaximumVoltage(double vt);
-
- /**
- * @param a double with the designed maximum battery voltage, if available
- * @internal
- */
- void internalSetMaximumDesignVoltage(double vt);
-
- /**
- * @param a double with the current battery energy in watt-hours, if available
- * @internal
- */
- void internalSetEnergy(double vt);
-
- /**
- * @param a double with the current battery alarm energy in watt-hours, if available
- * @internal
- */
- void internalSetAlarmEnergy(double vt);
-
- /**
- * @param a double with the maximum battery energy in watt-hours, if available
- * @internal
- */
- void internalSetMaximumEnergy(double vt);
-
- /**
- * @param a double with the designed maximum battery energy in watt-hours, if available
- * @internal
- */
- void internalSetMaximumDesignEnergy(double vt);
-
- /**
- * @param a double with the current battery discharge rate in volt-hours, if available
- * @internal
- */
- void internalSetDischargeRate(double vt);
-
- /**
- * @param a double with the current battery discharge time remaining in seconds, if available
- * @internal
- */
- void internalSetTimeRemaining(double tr);
-
- /**
- * @param a TQString with the battery technology, if available
- * @internal
- */
- void internalSetTechnology(TQString tc);
-
- /**
- * @param a TQString with the battery status, if available
- * @internal
- */
- void internalSetStatus(TQString tc);
-
- /**
- * @param TRUE if the battery is installed
- * @internal
- */
- void internalSetInstalled(bool tc);
-
- private:
- double m_currentVoltage;
- double m_minimumVoltage;
- double m_maximumVoltage;
- double m_maximumDesignVoltage;
- double m_alarmEnergy;
- double m_currentEnergy;
- double m_maximumEnergy;
- double m_maximumDesignEnergy;
- double m_dischargeRate;
- double m_timeRemaining;
- TQString m_technology;
- TDEBatteryStatus::TDEBatteryStatus m_status;
- bool m_installed;
-
- friend class TDEHardwareDevices;
-};
-
-class TDECORE_EXPORT TDEMainsPowerDevice : public TDEGenericDevice
-{
- public:
- /**
- * Constructor.
- * @param Device type
- */
- TDEMainsPowerDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn=TQString::null);
-
- /**
- * Destructor.
- */
- ~TDEMainsPowerDevice();
-
- /**
- * @return TRUE if power supply is online via mains power, FALSE if not
- */
- bool online();
-
- protected:
- /**
- * @param TRUE if power supply is online via mains power, FALSE if not
- * @internal
- */
- void internalSetOnline(bool vt);
-
- private:
- bool m_online;
-
- friend class TDEHardwareDevices;
-};
-
-class TDECORE_EXPORT TDENetworkDevice : public TDEGenericDevice
-{
- public:
- /**
- * Constructor.
- * @param Device type
- */
- TDENetworkDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn=TQString::null);
-
- /**
- * Destructor.
- */
- ~TDENetworkDevice();
-
- /**
- * @return a TQString containing the network device's MAC address
- */
- TQString macAddress();
-
- /**
- * @return a TQString containing the network device's operational state
- */
- TQString state();
-
- /**
- * @return TRUE if carrier is present, FALSE if not
- */
- bool carrierPresent();
-
- /**
- * @return TRUE if device is dormant, FALSE if not
- */
- bool dormant();
-
- /**
- * @return a TQString containing the network device's IPv4 address
- */
- TQString ipV4Address();
-
- /**
- * @return a TQString containing the network device's IPv6 address
- */
- TQString ipV6Address();
-
- /**
- * @return a TQString containing the network device's IPv4 netmask
- */
- TQString ipV4Netmask();
-
- /**
- * @return a TQString containing the network device's IPv6 netmask
- */
- TQString ipV6Netmask();
-
- /**
- * @return a TQString containing the network device's IPv4 broadcast
- */
- TQString ipV4Broadcast();
-
- /**
- * @return a TQString containing the network device's IPv6 broadcast
- */
- TQString ipV6Broadcast();
-
- /**
- * @return a TQString containing the network device's IPv4 destination
- */
- TQString ipV4Destination();
-
- /**
- * @return a TQString containing the network device's IPv6 destination
- */
- TQString ipV6Destination();
-
- /**
- * @return a double with the number of received bytes, if available
- */
- double rxBytes();
-
- /**
- * @return a double with the number of transmitted bytes, if available
- */
- double txBytes();
-
- /**
- * @return a double with the number of received packets, if available
- */
- double rxPackets();
-
- /**
- * @return a double with the number of transmitted packets, if available
- */
- double txPackets();
-
- /**
- * @return a pointer to a TDENetworkConnectionManager object, if available
- */
- TDENetworkConnectionManager* connectionManager();
-
- protected:
- /**
- * @param ma a TQString containing the network device's MAC address
- * @internal
- */
- void internalSetMacAddress(TQString ma);
-
- /**
- * @param st a TQString containing the network device's operational state
- * @internal
- */
- void internalSetState(TQString st);
-
- /**
- * @param TRUE if carrier is present, FALSE if not
- * @internal
- */
- void internalSetCarrierPresent(bool cp);
-
- /**
- * @param TRUE if device is dormant, FALSE if not
- * @internal
- */
- void internalSetDormant(bool dm);
-
- /**
- * @param ad a TQString containing the network device's IPv4 address
- * @internal
- */
- void internalSetIpV4Address(TQString ad);
-
- /**
- * @param ad a TQString containing the network device's IPv6 address
- * @internal
- */
- void internalSetIpV6Address(TQString ad);
-
- /**
- * @param nm a TQString containing the network device's IPv4 netmask
- * @internal
- */
- void internalSetIpV4Netmask(TQString nm);
-
- /**
- * @param nm a TQString containing the network device's IPv6 netmask
- * @internal
- */
- void internalSetIpV6Netmask(TQString nm);
-
- /**
- * @param br a TQString containing the network device's IPv4 broadcast
- * @internal
- */
- void internalSetIpV4Broadcast(TQString br);
-
- /**
- * @param br a TQString containing the network device's IPv6 broadcast
- * @internal
- */
- void internalSetIpV6Broadcast(TQString br);
-
- /**
- * @param ds a TQString containing the network device's IPv4 destination
- * @internal
- */
- void internalSetIpV4Destination(TQString ds);
-
- /**
- * @param ds a TQString containing the network device's IPv6 destination
- * @internal
- */
- void internalSetIpV6Destination(TQString ds);
-
- /**
- * @param rx a double with the number of received bytes, if available
- * @internal
- */
- void internalSetRxBytes(double rx);
-
- /**
- * @param tx a double with the number of transmitted bytes, if available
- * @internal
- */
- void internalSetTxBytes(double tx);
-
- /**
- * @param rx a double with the number of received packets, if available
- * @internal
- */
- void internalSetRxPackets(double rx);
-
- /**
- * @param tx a double with the number of transmitted packets, if available
- * @internal
- */
- void internalSetTxPackets(double tx);
-
- /**
- * @param mgr a pointer to a TDENetworkConnectionManager object, if available
- */
- void internalSetConnectionManager(TDENetworkConnectionManager* mgr);
-
- private:
- TQString m_macAddress;
- TQString m_state;
- bool m_carrier;
- bool m_dormant;
- TQString m_ipV4Address;
- TQString m_ipV6Address;
- TQString m_ipV4Netmask;
- TQString m_ipV6Netmask;
- TQString m_ipV4Broadcast;
- TQString m_ipV6Broadcast;
- TQString m_ipV4Destination;
- TQString m_ipV6Destination;
- double m_rxbytes;
- double m_txbytes;
- double m_rxpackets;
- double m_txpackets;
- TDENetworkConnectionManager* m_connectionManager;
-
- friend class TDEHardwareDevices;
-};
-
-namespace TDEDisplayPowerLevel {
-enum TDEDisplayPowerLevel {
- On,
- Standby,
- Suspend,
- Off
-};
-};
-
-class TDECORE_EXPORT TDEBacklightDevice : public TDEGenericDevice
-{
- public:
- /**
- * Constructor.
- * @param Device type
- */
- TDEBacklightDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn=TQString::null);
-
- /**
- * Destructor.
- */
- ~TDEBacklightDevice();
-
- /**
- * @return a TDEDisplayPowerLevel::TDEDisplayPowerLevel with the current power level
- */
- TDEDisplayPowerLevel::TDEDisplayPowerLevel powerLevel();
-
- /**
- * @return an integer with the number of discrete control steps available
- */
- int brightnessSteps();
-
- /**
- * @return a double with the current brightness percentage
- */
- double brightnessPercent();
-
- /**
- * @return TRUE if permissions allow brightness can be set, FALSE if not
- */
- bool canSetBrightness();
-
- /**
- * @return an int with the current raw brightness
- */
- int rawBrightness();
-
- /**
- * @param br an integer with the new raw brightness value
- */
- void setRawBrightness(int br);
-
- protected:
- /**
- * @param pl a TDEDisplayPowerLevel::TDEDisplayPowerLevel with the current power level
- * @internal
- */
- void internalSetPowerLevel(TDEDisplayPowerLevel::TDEDisplayPowerLevel pl);
-
- /**
- * @param br an integer with the maximum raw brightness value
- * @internal
- */
- void internalSetMaximumRawBrightness(int br);
-
- /**
- * @param br an integer with the current raw brightness value
- * @internal
- */
- void internalSetCurrentRawBrightness(int br);
-
- private:
- TDEDisplayPowerLevel::TDEDisplayPowerLevel m_powerLevel;
- int m_currentBrightness;
- int m_maximumBrightness;
-
- friend class TDEHardwareDevices;
-};
-
-typedef TQPair<unsigned int, unsigned int> TDEResolutionPair;
-typedef TQValueList< TDEResolutionPair > TDEResolutionList;
-
-class TDECORE_EXPORT TDEMonitorDevice : public TDEGenericDevice
-{
- public:
- /**
- * Constructor.
- * @param Device type
- */
- TDEMonitorDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn=TQString::null);
-
- /**
- * Destructor.
- */
- ~TDEMonitorDevice();
-
- /**
- * @return TRUE if a monitor is connected, FALSE if not
- */
- bool connected();
-
- /**
- * @return TRUE if this port is enabled, FALSE if not
- */
- bool enabled();
-
- /**
- * @return a TQByteArray containing this monitor's EDID information
- */
- TQByteArray edid();
-
- /**
- * @return a TDEResolutionList containing this monitor's supported resolutions
- */
- TDEResolutionList resolutions();
-
- /**
- * @return a TQString containing the display port type
- */
- TQString portType();
-
- /**
- * @return a TDEDisplayPowerLevel::TDEDisplayPowerLevel with the current power level
- */
- TDEDisplayPowerLevel::TDEDisplayPowerLevel powerLevel();
-
- protected:
- /**
- * @param TRUE if a monitor is connected, FALSE if not
- * @internal
- */
- void internalSetConnected(bool cn);
-
- /**
- * @param TRUE if this port is enabled, FALSE if not
- * @internal
- */
- void internalSetEnabled(bool en);
-
- /**
- * @param ed a TQByteArray containing this monitor's EDID information
- * @internal
- */
- void internalSetEdid(TQByteArray ed);
-
- /**
- * @param rs a TDEResolutionList containing this monitor's supported resolutions
- * @internal
- */
- void internalSetResolutions(TDEResolutionList rs);
-
- /**
- * @param pt a TQString containing the display port type
- * @internal
- */
- void internalSetPortType(TQString pt);
-
- /**
- * @param pl a TDEDisplayPowerLevel::TDEDisplayPowerLevel with the current power level
- * @internal
- */
- void internalSetPowerLevel(TDEDisplayPowerLevel::TDEDisplayPowerLevel pl);
-
- private:
- bool m_connected;
- bool m_enabled;
- TQByteArray m_edid;
- TDEResolutionList m_resolutions;
- TQString m_portType;
- TDEDisplayPowerLevel::TDEDisplayPowerLevel m_powerLevel;
-
- friend class TDEHardwareDevices;
-};
-
-
-typedef TQMap<TQString, TDESensorCluster> TDESensorClusterMap;
-
-class TDECORE_EXPORT TDESensorDevice : public TDEGenericDevice
-{
- public:
- /**
- * Constructor.
- * @param Device type
- */
- TDESensorDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn=TQString::null);
-
- /**
- * Destructor.
- */
- ~TDESensorDevice();
-
- /**
- * @return a TDESensorClusterMap with the current sensor values
- */
- TDESensorClusterMap values();
-
- protected:
- /**
- * @param a TDESensorClusterMap with the current sensor values
- * @internal
- */
- void internalSetValues(TDESensorClusterMap cl);
-
- private:
- TDESensorClusterMap m_sensorValues;
-
- friend class TDEHardwareDevices;
-};
-
-namespace TDESystemFormFactor {
-enum TDESystemFormFactor {
- Unclassified,
- Desktop,
- Laptop,
- Server,
- Other = 0x80000000
-};
-};
-
-namespace TDESystemPowerState {
-enum TDESystemPowerState {
- Active,
- Standby,
- Suspend,
- Hibernate,
- PowerOff,
- Reboot
-};
-};
-
-namespace TDESystemHibernationMethod {
-enum TDESystemHibernationMethod {
- Unsupported,
- Platform,
- Shutdown,
- Reboot,
- TestProc,
- Test
-};
-};
-
-typedef TQValueList<TDESystemPowerState::TDESystemPowerState> TDESystemPowerStateList;
-typedef TQValueList<TDESystemHibernationMethod::TDESystemHibernationMethod> TDESystemHibernationMethodList;
-
-class TDECORE_EXPORT TDERootSystemDevice : public TDEGenericDevice
-{
- public:
- /**
- * Constructor.
- * @param Device type
- */
- TDERootSystemDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn=TQString::null);
-
- /**
- * Destructor.
- */
- ~TDERootSystemDevice();
-
- /**
- * @return a TDESystemFormFactor::TDESystemFormFactor with the system's form factor
- */
- TDESystemFormFactor::TDESystemFormFactor formFactor();
-
- /**
- * @return a TDESystemPowerStateList with all available power states
- */
- TDESystemPowerStateList powerStates();
-
- /**
- * @return a TDESystemHibernationMethodList with all available hibernation methods
- */
- TDESystemHibernationMethodList hibernationMethods();
-
- /**
- * @return a TDESystemHibernationMethod::TDESystemHibernationMethod with the current hibernation method
- */
- TDESystemHibernationMethod::TDESystemHibernationMethod hibernationMethod();
-
- /**
- * @return an unsigned long with the number of bytes required to hibernate
- */
- unsigned long diskSpaceNeededForHibernation();
-
- /**
- * @return TRUE if permissions allow the hibernation method to be set, FALSE if not
- */
- bool canSetHibernationMethod();
-
- /**
- * @return TRUE if hardware and permissions allow the system to enter standby, FALSE if not
- */
- bool canStandby();
-
- /**
- * @return TRUE if hardware and permissions allow the system to be suspended, FALSE if not
- */
- bool canSuspend();
-
- /**
- * @return TRUE if hardware and permissions allow the system to be hibernated, FALSE if not
- */
- bool canHibernate();
-
- /**
- * @return TRUE if permissions allow the system to be powered down, FALSE if not
- */
- bool canPowerOff();
-
- /**
- * @return TRUE if permissions allow the system to be rebooted, FALSE if not
- */
- bool canReboot();
-
- /**
- * @param hm a TDESystemHibernationMethod::TDESystemHibernationMethod with the desired hibernation method
- */
- void setHibernationMethod(TDESystemHibernationMethod::TDESystemHibernationMethod hm);
-
- /**
- * @param ps a TDESystemPowerState::TDESystemPowerState with the desired power state
- * @return TRUE if power state was set
- */
- bool setPowerState(TDESystemPowerState::TDESystemPowerState ps);
-
- protected:
- /**
- * @param ff a TDESystemFormFactor::TDESystemFormFactor with the system's form factor
- * @internal
- */
- void internalSetFormFactor(TDESystemFormFactor::TDESystemFormFactor ff);
-
- /**
- * @param ps a TDESystemPowerStateList with all available power states
- * @internal
- */
- void internalSetPowerStates(TDESystemPowerStateList ps);
-
- /**
- * @param hm a TDESystemHibernationMethodList with all available hibernation methods
- * @internal
- */
- void internalSetHibernationMethods(TDESystemHibernationMethodList hm);
-
- /**
- * @param hm a TDESystemHibernationMethod::TDESystemHibernationMethod with the current hibernation method
- * @internal
- */
- void internalSetHibernationMethod(TDESystemHibernationMethod::TDESystemHibernationMethod hm);
-
- /**
- * @param sz an unsigned long with the number of bytes required to hibernate
- * @internal
- */
- void internalSetDiskSpaceNeededForHibernation(unsigned long sz);
-
- private:
- TDESystemFormFactor::TDESystemFormFactor m_formFactor;
- TDESystemPowerStateList m_powerStates;
- TDESystemHibernationMethodList m_hibernationMethods;
- TDESystemHibernationMethod::TDESystemHibernationMethod m_hibernationMethod;
- unsigned long m_hibernationSpace;
-
- friend class TDEHardwareDevices;
-};
-
-namespace TDEEventDeviceType {
-enum TDEEventDeviceType {
- Unknown,
- ACPILidSwitch,
- ACPISleepButton,
- ACPIPowerButton,
- Other = 0x80000000
-};
-};
-
-// Keep friendlySwitchList() in tdehardwaredevices.cpp in sync with this enum
-namespace TDESwitchType {
-enum TDESwitchType {
- Null = 0x00000000,
- Lid = 0x00000001,
- TabletMode = 0x00000002,
- HeadphoneInsert = 0x00000004,
- RFKill = 0x00000008,
- Radio = 0x00000010,
- MicrophoneInsert = 0x00000020,
- Dock = 0x00000040,
- LineOutInsert = 0x00000080,
- JackPhysicalInsert = 0x00000100,
- VideoOutInsert = 0x00000200,
- CameraLensCover = 0x00000400,
- KeypadSlide = 0x00000800,
- FrontProximity = 0x00001000,
- RotateLock = 0x00002000,
- LineInInsert = 0x00004000
-};
-
-inline TDESwitchType operator|(TDESwitchType a, TDESwitchType b)
-{
- return static_cast<TDESwitchType>(static_cast<int>(a) | static_cast<int>(b));
-}
-
-inline TDESwitchType operator&(TDESwitchType a, TDESwitchType b)
-{
- return static_cast<TDESwitchType>(static_cast<int>(a) & static_cast<int>(b));
-}
-
-inline TDESwitchType operator~(TDESwitchType a)
-{
- return static_cast<TDESwitchType>(~static_cast<int>(a));
-}
-};
-
-class TQSocketNotifier;
-
-class TDECORE_EXPORT TDEEventDevice : public TDEGenericDevice
-{
- Q_OBJECT
-
- public:
- /**
- * Constructor.
- * @param Device type
- */
- TDEEventDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn=TQString::null);
-
- /**
- * Destructor.
- */
- ~TDEEventDevice();
-
- /**
- * @return a TDEEventDeviceType::TDEEventDeviceType with the event device type, if known
- */
- TDEEventDeviceType::TDEEventDeviceType eventType();
-
- /**
- * @return a TDESwitchType::TDESwitchType with all switches provided by this device
- */
- TDESwitchType::TDESwitchType providedSwitches();
-
- /**
- * @return a TDESwitchType::TDESwitchType with all active switches provided by this device
- */
- TDESwitchType::TDESwitchType activeSwitches();
-
- /**
- * @param switches a TDESwitchType::TDESwitchType with any switch flags set
- * @return a TQStringList with friendly names for all set switch flags
- */
- static TQStringList friendlySwitchList(TDESwitchType::TDESwitchType switches);
-
- protected:
- /**
- * @param et a TDEEventDeviceType::TDEEventDeviceType with the event device type, if known
- * @internal
- */
- void internalSetEventType(TDEEventDeviceType::TDEEventDeviceType et);
-
- /**
- * @param sl a TDESwitchType::TDESwitchType with all switches provided by this device
- * @internal
- */
- void internalSetProvidedSwitches(TDESwitchType::TDESwitchType sl);
-
- /**
- * @param sl a TDESwitchType::TDESwitchType with all active switches provided by this device
- * @internal
- */
- void internalSetActiveSwitches(TDESwitchType::TDESwitchType sl);
-
- /**
- * @param hwmanager the master hardware manager
- * @internal
- */
- void internalStartFdMonitoring(TDEHardwareDevices* hwmanager);
-
- protected slots:
- void eventReceived();
-
- signals:
- /**
- * @param keycode the code of the key that was pressed/released
- * See include/linux/input.h for a complete list of keycodes
- * @param device a TDEEventDevice* with the device that received the event
- */
- void keyPressed(unsigned int keycode, TDEEventDevice* device);
-
- private:
- TDEEventDeviceType::TDEEventDeviceType m_eventType;
- TDESwitchType::TDESwitchType m_providedSwitches;
- TDESwitchType::TDESwitchType m_switchActive;
-
- int m_fd;
- bool m_fdMonitorActive;
- TQSocketNotifier* m_eventNotifier;
-
- friend class TDEHardwareDevices;
-};
-
-namespace TDEInputDeviceType {
-enum TDEInputDeviceType {
- Unknown,
- ACPILidSwitch,
- ACPISleepButton,
- ACPIPowerButton,
- Other = 0x80000000
-};
-};
-
-class TDECORE_EXPORT TDEInputDevice : public TDEGenericDevice
-{
- public:
- /**
- * Constructor.
- * @param Device type
- */
- TDEInputDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn=TQString::null);
-
- /**
- * Destructor.
- */
- ~TDEInputDevice();
-
- /**
- * @return a TDEInputDeviceType::TDEInputDeviceType with the input device type, if known
- */
- TDEInputDeviceType::TDEInputDeviceType inputType();
-
- protected:
- /**
- * @param it a TDEInputDeviceType::TDEInputDeviceType with the input device type, if known
- * @internal
- */
- void internalSetInputType(TDEInputDeviceType::TDEInputDeviceType it);
-
- private:
- TDEInputDeviceType::TDEInputDeviceType m_inputType;
-
- friend class TDEHardwareDevices;
-};
-
-typedef TQPtrList<TDEGenericDevice> TDEGenericHardwareList;
-typedef TQMap<TQString, TQString> TDEDeviceIDMap;
-
-class KSimpleDirWatch;
-
-class TDECORE_EXPORT TDEHardwareDevices : public TQObject
-{
- Q_OBJECT
-
- public:
- /**
- * Constructor.
- */
- TDEHardwareDevices();
-
- /**
- * Destructor.
- */
- ~TDEHardwareDevices();
-
- /**
- * Query all hardware capabilities on all devices
- * This does not normally need to be called by an application, as
- * device detection is handled internally and automatically
- *
- * A call to this method immediately invalidates any TDEGenericHardwareList
- * structures returned by listAllPhysicalDevices()
- *
- * @return TRUE if successful
- */
- bool queryHardwareInformation();
-
- /**
- * List all hardware capabilities on all devices
- * @return TDEGenericHardwareList containing all known hardware devices
- */
- TDEGenericHardwareList listAllPhysicalDevices();
-
- /**
- * List all hardware capabilities on all devices
- * @param a TDEGenericDeviceType::TDEGenericDeviceType specifying the device class
- * @return TDEGenericHardwareList containing all known hardware devices
- */
- TDEGenericHardwareList listByDeviceClass(TDEGenericDeviceType::TDEGenericDeviceType cl);
-
- /**
- * Return the device with system path @arg syspath, or 0 if no device exists for that path
- * @return TDEGenericDevice
- */
- TDEGenericDevice* findBySystemPath(TQString syspath);
-
- /**
- * Return the device with unique ID @arg uid, or 0 if no device exists for that uid
- * @return TDEGenericDevice
- */
- TDEGenericDevice* findByUniqueID(TQString uid);
-
- /**
- * Return the device with device node @arg devnode, or 0 if no device exists at that node
- * @return TDEGenericDevice
- */
- TDEGenericDevice* findByDeviceNode(TQString devnode);
-
- /**
- * Return the storage device with unique ID @arg uid, or 0 if no device exists for that uid
- * @return TDEGenericDevice
- */
- TDEStorageDevice* findDiskByUID(TQString uid);
-
- /**
- * Look up the device in the system PCI database
- * @param vendorid a TQString containing the vendor ID in hexadecimal
- * @param modelid a TQString containing the model ID in hexadecimal
- * @param subvendorid a TQString containing the subvendor ID in hexadecimal
- * @param submodelid a TQString containing the submodel ID in hexadecimal
- * @return a TQString containing the device name, if found
- */
- TQString findPCIDeviceName(TQString vendorid, TQString modelid, TQString subvendorid, TQString submodelid);
-
- /**
- * Look up the device in the system USB database
- * @param vendorid a TQString containing the vendor ID in hexadecimal
- * @param modelid a TQString containing the model ID in hexadecimal
- * @param subvendorid a TQString containing the subvendor ID in hexadecimal
- * @param submodelid a TQString containing the submodel ID in hexadecimal
- * @return a TQString containing the device name, if found
- */
- TQString findUSBDeviceName(TQString vendorid, TQString modelid, TQString subvendorid, TQString submodelid);
-
- /**
- * Look up the device in the system PNP database
- * @param pnpid a TQString containing the PNP ID
- * @return a TQString containing the device name, if found
- */
- TQString findPNPDeviceName(TQString pnpid);
-
- /**
- * Look up the monitor manufacturer in the system display database
- * @param pnpid a TQString containing the display manufacturer ID
- * @return a TQString containing the manufacturer name, if found
- */
- TQString findMonitorManufacturerName(TQString dpyid);
-
- /**
- * Get a friendly string describing a device type
- * @param query a TDEGenericDeviceType::TDEGenericDeviceType specifying a device type
- * @return a TQString containing the friendly type name
- */
- TQString getFriendlyDeviceTypeStringFromType(TDEGenericDeviceType::TDEGenericDeviceType query);
-
- /**
- * Get an icon for a device type
- * @param query a TDEGenericDeviceType::TDEGenericDeviceType specifying a device type
- * @param size a TDEIcon::StdSizes structure specifying the desired icon size
- * @return a TQPixmap containing the icon for the specified type
- */
- TQPixmap getDeviceTypeIconFromType(TDEGenericDeviceType::TDEGenericDeviceType query, TDEIcon::StdSizes size);
-
- /**
- * Convenience function to obtain the root system device
- * @return a pointer to a TDERootSystemDevice object
- */
- TDERootSystemDevice* rootSystemDevice();
-
- /**
- * Rescan a hardware device to look for changes
- * WARNING: This method can be very expensive. Use with caution!
- * @param hwdevice TDEGenericDevice* with the device to rescan
- */
- void rescanDeviceInformation(TDEGenericDevice* hwdevice);
-
- /**
- * Rescan a hardware device to look for changes
- * WARNING: This method can be very expensive. Use with caution!
- * The computational expense can be reduced somewhat if the device tree structure
- * has not changed by calling this method with regenerateDeviceTree = FALSE.
- * @param hwdevice TDEGenericDevice* with the device to rescan
- * @param regenerateDeviceTree TRUE to update parent/child links in device tree
- */
- void rescanDeviceInformation(TDEGenericDevice* hwdevice, bool regenerateDeviceTree);
-
- /**
- * Enable or disable automatic state updates of triggerless hardware devices
- * such as CPUs and network cards. When enabled, your application will use
- * additional CPU resources to continually poll triggerless hardware devices.
- * Automatic updates are disabled by default.
- * @param enable a bool specifiying whether or not automatic updates should be enabled
- */
- void setTriggerlessHardwareUpdatesEnabled(bool enable);
-
- /**
- * Convert a byte count to human readable form
- * @param bytes a double containing the number of bytes
- * @return a TQString containing the human readable byte count
- */
- static TQString bytesToFriendlySizeString(double bytes);
-
- signals:
- void hardwareAdded(TDEGenericDevice*);
- void hardwareRemoved(TDEGenericDevice*);
- void hardwareUpdated(TDEGenericDevice*);
- void mountTableModified();
- void hardwareEvent(TDEHardwareEvent::TDEHardwareEvent, TQString uuid);
-
- /**
- * @param keycode the code of the key that was pressed/released
- * See include/linux/input.h for a complete list of keycodes
- * @param device a TDEEventDevice* with the device that received the event
- */
- void eventDeviceKeyPressed(unsigned int keycode, TDEEventDevice* device);
-
- private slots:
- void processHotPluggedHardware();
- void processModifiedMounts();
- void processModifiedCPUs();
- void processStatelessDevices();
- void processEventDeviceKeyPressed(unsigned int keycode, TDEEventDevice* edevice);
-
- private:
- void updateBlacklists(TDEGenericDevice* hwdevice, udev_device* dev);
-
- private:
- 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 updateExistingDeviceInformation(TDEGenericDevice* existingdevice, udev_device* dev=NULL);
-
- void updateParentDeviceInformation();
- void updateParentDeviceInformation(TDEGenericDevice* hwdevice);
-
- void addCoreSystemDevices();
-
- /**
- * Get the binary monitor EDID for the specified sysfs path
- * @return a TQByteArray containing the EDID
- */
- TQByteArray getEDID(TQString path);
-
- /**
- * Get the monitor EDID name for the specified sysfs path
- * @return a TQPair<TQString,TQString> containing the monitor vendor and model, if available
- */
- TQPair<TQString,TQString> getEDIDMonitorName(TQString path);
-
- struct udev *m_udevStruct;
- struct udev_monitor *m_udevMonitorStruct;
- TDEGenericHardwareList m_deviceList;
- int m_procMountsFd;
- KSimpleDirWatch* m_cpuWatch;
- TQTimer* m_cpuWatchTimer;
- TQTimer* m_deviceWatchTimer;
-
- TQSocketNotifier* m_devScanNotifier;
- TQSocketNotifier* m_mountScanNotifier;
-
- TQStringList m_mountTable;
- TQStringList m_cpuInfo;
-
- TDEDeviceIDMap* pci_id_map;
- TDEDeviceIDMap* usb_id_map;
- TDEDeviceIDMap* pnp_id_map;
- TDEDeviceIDMap* dpy_id_map;
-
- friend class TDEGenericDevice;
- friend class TDEStorageDevice;
- friend class TDECPUDevice;
-};
-
-#endif // _TDEHARDWAREDEVICES_H