Commit graph

363 commits

Author SHA1 Message Date
Ivailo Monev
e52ca10b25 solid: implement Solid::StorageDrive::Tape for udev backend
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-15 09:23:31 +03:00
Ivailo Monev
f79ff0e685 solid: use socket notifier to watch for /etc/mtab changes
in the proc man page (man 5 proc) /proc/pid/mounts is documented to be
pollable and trigger exception when changed, the current solution for the
accessibility signal remains process namespace restricted

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-15 06:55:01 +03:00
Ivailo Monev
4b7d958de5 solid: hack to get storage devices accessibility signal when it is mounted/unmounted by external process
stat() is just useless for files in /proc meaning the only way to know when
/etc/mtab (or /proc/self/mounts) changes is to re-read it, you know who to
blame for that

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-14 01:53:05 +03:00
Ivailo Monev
19df721868 generic: ODR fixes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-11 19:58:06 +03:00
Ivailo Monev
78933232a2 generic: remove build variable used to specify library type
only shared builds are supported now

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-10 23:19:17 +03:00
Ivailo Monev
ed0a14faf8 solid: create a static KDeviceDatabase instance instead of one per-device
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-07 05:14:20 +03:00
Ivailo Monev
ad01edf194 solid: do not assume properties contain latin1 characters only
the SYMLINK property for example is documented to (maybe) contain UTF-8
encoded characters, for reference:
https://man7.org/linux/man-pages/man7/udev.7.html

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-11 17:46:32 +02:00
Ivailo Monev
dd24df3950 solid: UdevQt::Device::sysfsNumber() optimization
QByteArray::toInt() does not convert to integer based on the default locale
and is much faster

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-11 17:33:54 +02:00
Ivailo Monev
7b2329149c solid: assume the enumerated udev devices use the already created udev pointer
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-11 17:27:24 +02:00
Ivailo Monev
7372b01cdd solid: remove unused Solid::PowerManagementPrivate::RequiredPolicy enum
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-02 05:43:16 +02:00
Ivailo Monev
3ab393c337 solid: correct cookie type and remove obsolete standby sleep mode
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-01 23:49:20 +02:00
Ivailo Monev
58f6472d45 solid: fix screen power management supressesion
this has been broken since before the fork because message was send with
wrong cookie type

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-30 05:23:12 +02:00
Ivailo Monev
bdccbb1709 generic: implement hybrid suspend/sleep method
marking as extension because it was not implemented before and the FDO
spec is dead (i.e. not a spec anymore), may or may not work with other
power managers implementing the interface (org.freedesktop.PowerManagement)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-30 02:14:44 +02:00
Ivailo Monev
9b41127ecb generic: prepare for Katie changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-13 00:40:18 +02:00
Ivailo Monev
94934907ec solid: disconnect the device signals before deleting it
fixes possible crash

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-29 23:55:01 +03:00
Ivailo Monev
1f120ce892 solid: keep reference to the QByteArray object in UdevQt::Client::deviceBySysfsPath()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-26 08:48:05 +03:00
Ivailo Monev
240e0d535e solid: udev backend optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-26 08:43:23 +03:00
Ivailo Monev
decb354a0d generic: prepare for Katie changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-14 16:16:22 +03:00
Ivailo Monev
045328e4b6 generic: regenerate parsers
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-04 08:52:24 +03:00
Ivailo Monev
5d920b66f2 solid: minor udev backend optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-26 14:00:24 +03:00
Ivailo Monev
c36f510c16 solid: fix possible division of zero
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-26 13:57:39 +03:00
Ivailo Monev
378d7755d5 generic: remove redundant qglobal header inclusions
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-23 16:59:18 +03:00
Ivailo Monev
75b7818b11 solid: minor devinfo backend optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-21 18:26:45 +03:00
Ivailo Monev
38f619e562 solid: minor udev backend optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-20 06:57:29 +03:00
Ivailo Monev
9864a7a630 generic: drop SMB and NFS support
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-06-03 02:19:35 +03:00
Ivailo Monev
82e73a2b72 solid: chop non-printable character at the end from DevinfoDevice::stringByName()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-06-01 15:54:15 +03:00
Ivailo Monev
8899a3c369 solid: replace fstab with exports backend
to NFS or not to NFS:
https://ibb.co/Tt8kLGJ

side note:
fstab backend mount point detection was broken for NFS shares, probably
for SMB shares too

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-17 22:48:51 +03:00
Ivailo Monev
4c640de284 solid: remove Solid::NetworkShare::ShareType::Upnp enum
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-07 19:11:30 +03:00
Ivailo Monev
e07a009b07 solid: pass the size of the byte array to QString constructor in DevinfoDevice::product()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-05-03 13:09:29 +03:00
Ivailo Monev
eef792f6ff kdecore: KDeviceDatabase rewrite and test for it
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-29 14:39:38 +03:00
Ivailo Monev
3028881628 kdecore: new KDeviceDatabase class
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-26 21:47:58 +03:00
Ivailo Monev
9f51006580 generic: minor documentation corrections
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-23 09:48:34 +03:00
Ivailo Monev
932aab37be solid: coding battery methods for expectations
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-23 06:56:29 +03:00
Ivailo Monev
a1a16743c3 solid: catch more AC adapters and batteries from device interface query
for PS3 controllers there is not much to work with regardless:
P: /devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1.1/3-1.1:1.0/0003:054C:0268.0005/power_supply/sony_controller_battery_00:06:f7:09:55:97
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1.1/3-1.1:1.0/0003:054C:0268.0005/power_supply/sony_controller_battery_00:06:f7:09:55:97
E: POWER_SUPPLY_NAME=sony_controller_battery_00:06:f7:09:55:97
E: POWER_SUPPLY_TYPE=Battery
E: POWER_SUPPLY_PRESENT=1
E: POWER_SUPPLY_CAPACITY=100
E: POWER_SUPPLY_SCOPE=Device
E: POWER_SUPPLY_STATUS=Charging
E: SUBSYSTEM=power_supply

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-22 19:47:56 +03:00
Ivailo Monev
7e439f5e58 solid: hack to fix battery and AC adapter signals
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-22 16:44:04 +03:00
Ivailo Monev
a7c2f56273 solid: guess power supply property based on charing state
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-22 16:42:22 +03:00
Ivailo Monev
2e1544537d solid: rename Solid::Battery::ChargeState::FullCharge to Solid::Battery::ChargeState::FullyCharged
there was FullyCharged enum once? I am guessing so:
4385f0be53/plasma/applets/batterymonitor/contents/code/logic.js (L101)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-22 15:44:48 +03:00
Ivailo Monev
649dcbd2a0 solid: generalize USB batteries and add enum for fully charged battery
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-22 15:35:17 +03:00
Ivailo Monev
74944b18f7 solid: use correct power supply property
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-22 15:11:19 +03:00
Ivailo Monev
d4b909962e solid: typo
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-22 12:39:51 +03:00
Ivailo Monev
107a01f0e0 cmake: always set CMake executable and library output directory variables
replace old CMake variables names with new variable names while at it

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-22 00:23:53 +03:00
Ivailo Monev
9f538bf619 solid: return icon for battery devices based on the charge state and percent
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-21 06:07:18 +03:00
Ivailo Monev
2da09a8434 solid: separate AC adapter and battery interface query cases
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-21 06:05:19 +03:00
Ivailo Monev
77fd0a79b1 solid: call power manager method synchronously
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-20 23:53:25 +03:00
Ivailo Monev
98a4564326 generic: reimplement power manager
this was once on the TODO:
618622f767...fe9d951f17

the org.freedesktop.PowerManagement interface will be there for
compatibility only now since it is obsolete:
https://www.freedesktop.org/wiki/Specifications/power-management-spec/

side note:
powerdevil inhibition was broken

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-20 02:20:33 +03:00
Ivailo Monev
6a340c61f2 solid: update PCI/USB tables data
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-19 04:04:43 +03:00
Ivailo Monev
f5fe6558ca generic: deal with TODO related to CMP0005
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-04-08 01:55:36 +03:00
Ivailo Monev
5b10b5e322 solid: lookup PCI-parented devices vendor/product in PCI database
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-28 21:46:09 +03:00
Ivailo Monev
0230eef667 solid: theoretical reimplementation of maximum processor speed for devinfo backend
not tested on bare metal, based on sample output from:
https://wiki.freebsd.org/TuningPowerConsumption#P-states_and_throttling

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-28 21:15:10 +03:00
Ivailo Monev
809040c947 solid: reimplement CPU features detection via __builtin_cpu_supports() for devinfo backend
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-28 19:40:07 +03:00