Commit Graph

113 Commits

Author SHA1 Message Date
Richard Hughes
090a7c8b9a Add API to wait for a device
This allows us to ignore all the delays when the device is emulated, with the
idea being to do dozens of device emulations in the CI tests.

Also, do not call fu_progress_sleep() when the device is emulated.
2023-02-23 13:04:11 -06:00
Richard Hughes
058dc2301a Include the plugin README text in the generated docs 2023-01-10 14:58:30 +00:00
Richard Hughes
427e5cec7a trivial: Add new convenience API to make plugins simpler 2022-12-20 20:54:12 +00:00
Richard Hughes
123fac737a trivial: Fix some g_prefix_error() calls to include the trailing space 2022-11-30 10:13:19 +00:00
Richard Hughes
1c3c5d9892 Allow optionally translating request messages
Also add two more request IDs to make these specific enough to be useful.
2022-10-03 20:54:24 +01:00
Richard Hughes
99002a7a18 Build many more plugins as builtin
This reduces the plugin directory size by 2.2Mb
2022-09-28 17:01:23 +01:00
Richard Hughes
c4b7f42e43 Only compress one version of the builtin-quirks
Saving the quirks in the GResource section worked well, but it made the build
system very complicated and also meant the .data section was duplicated in
both `fwupd` and `fwupdtool` -- negating a lot of the hard-fought savings.

Simplify this feature so that we just `cat` all the quirk files together, then
gzip them into a single file. This means that at startup fwupd only needs to
check the mtime of one file, and weirdly it's actually faster to load a smaller
compressed file from disk that it is to load multiple uncompressed files.
2022-09-27 12:44:04 +01:00
Richard Hughes
0415db6f67 Revert "trivial: Use files() rather than current_source_dir()"
This reverts commit b581fa5670 as it breaks
`ninja dist` with `-Dgresource_quirks=enabled`.
2022-09-25 10:31:14 +01:00
Richard Hughes
b581fa5670 trivial: Use files() rather than current_source_dir() 2022-09-24 09:12:14 -05:00
Richard Hughes
e358cc7bde Set the firmware contents even when subclassing ->parse() 2022-09-10 09:16:05 +01:00
Richard Hughes
0c51630991 Check firmware magic in a more standard way
Some parsers are ignoring the magic when using _FLAG_IGNORE_CHECKSUM
(which is wrong; fuzzers have no problem with enforcing a static prefix)
and other either disregard the offset or check the magic in an unsafe
way. Also, use FWUPD_ERROR_INVALID_FILE consistently for magic failure.

Add a vfunc, and move all the clever code into one place.
2022-07-14 14:48:15 +01:00
Richard Hughes
acc66316ec steelseries: Fix trivial -Wunused-variable issue 2022-07-11 09:58:00 +01:00
Richard Hughes
a61bb37881 Build the quirk files into the daemon as a GResource
Interestingly, this increases the `fwupd` binary size by ~30kb but
reduces the installed size of /usr/share/fwupd/quirks.d by ~330kb.
2022-06-30 18:52:24 +01:00
Richard Hughes
0491b07a93 Make the FuFirmware->parse() vfunc more helpful
This removes the 100% unused addr_end parameter and explicitly makes
the addr_start into the start offset in more cases.
2022-06-27 15:40:11 -05:00
Gaël PORTAY
299b42fe96 trivial: Make meson.build indentation consistent 2022-06-21 03:27:38 -04:00
Richard Hughes
faa7871b08 Remove duplicate ->probe() calls to speed up startup by 150ms
Now incorporate is fixed to copy across the properties we need in the
superclass, we don't need to do the subclass ->probe().

Note, we still need to do the subclassed ->probe() when using
FU_UDEV_DEVICE_FLAG_VENDOR_FROM_PARENT or when looking at properties
on the parent device.

This also removes the spurious 'already set GType to FuVliUsbhubDevice,
ignoring FuVliUsbhubDevice' messages when running the daemon.
2022-06-14 21:01:57 +01:00
Richard Hughes
4105768a01 Remove the 'common' prefix when parsing version numbers 2022-06-14 14:36:52 -05:00
Richard Hughes
7f86ffab6f Split out the dump helpers to a new source file 2022-06-14 14:36:52 -05:00
Richard Hughes
ed1b13da28 Split out the memory helpers to a new source file 2022-06-14 14:36:52 -05:00
Richard Hughes
4b1313b406 Split out the GByte helpers to a new source file 2022-06-14 14:36:52 -05:00
Richard Hughes
9d33c29e92 Split out the string helpers to a new source file 2022-06-14 14:36:52 -05:00
Richard Hughes
3fe9c0de34 Split out the CRC and sum functions to new source files 2022-06-14 14:36:52 -05:00
Gaël PORTAY
d15f0b1cca steelseries: fizz: Use fu_common_strsafe() 2022-06-10 10:07:28 -04:00
Gaël PORTAY
8d4d2f2087 steelseries: Add hid support to detect Bluetooth devices 2022-06-10 10:07:28 -04:00
Gaël PORTAY
99f310e11a steelseries: Add datasz to fu_steelseries_device_cmd()
Additionaly, this:
 - removes the unused function fu_steelseries_device_get_transfer_size()
 - renames function fu_steelseries_device_command_error_to_error() to
  fu_steelseries_fizz_command_error_to_error()
2022-06-09 10:57:26 -04:00
Gaël PORTAY
40ba65ce28 steelseries: fizz: Fiz command size
The size of a command is 8bits long.
2022-06-09 10:57:26 -04:00
Richard Hughes
dc91d59f8e Remove the recently added fu_progress_add_step_full()
Just break API instead.
2022-06-03 13:47:11 -05:00
Richard Hughes
5ef0ae182d Add a 'name' attribute to each FuProgress step
This allows us to print better warning strings, and in the future
would allow us to profile each operation in a meaningful way.

Also, add context to some of the progress steps as required.
2022-06-01 15:05:43 +01:00
Gaël PORTAY
2e1b7c6438 steelseries: fizz: Rename command functions 2022-05-30 10:24:52 -04:00
Gaël PORTAY
fe3649ee6a steelseries: fizz: Add missing command definitions 2022-05-30 10:24:52 -04:00
Gaël PORTAY
87f2807dfb steelseries: fizz: Fix indentation violation 2022-05-30 10:24:52 -04:00
Gaël PORTAY
56a3632331 steelseries: fizz: Set firmware GType 2022-05-30 10:24:52 -04:00
Gaël PORTAY
4d820f0ddb steelseries: fizz-tunnel: Enable polling 2022-05-30 10:24:52 -04:00
Gaël PORTAY
0b8ff7196a steelseries: fizz-tunnel: Get battery level 2022-05-30 10:24:52 -04:00
Gaël PORTAY
8992698381 steelseries: fizz-tunnel: Wait for device connected 2022-05-30 10:24:52 -04:00
Gaël PORTAY
6190fc6830 steelseries: fizz-tunnel: Add sub-device if paired only 2022-05-30 10:24:52 -04:00
Gaël PORTAY
714983d82d steelseries: fizz: Add support for 2.4G connection 2022-05-30 10:24:52 -04:00
Gaël PORTAY
c5defa89e9 steelseries: sonic: Rewrite connect using fu_device_retry_full() 2022-05-27 11:19:51 -04:00
Gaël PORTAY
2f23489c6e trivial: steelseries: fizz: Add devices in bootloader mode 2022-05-27 11:19:51 -04:00
Gaël PORTAY
29ac547c43 trivial: steelseries: sonic: Adjust timings 2022-05-27 11:19:51 -04:00
Gaël PORTAY
c41c738327 trivial: steelseries: Fix progress status 2022-05-27 11:19:51 -04:00
Gaël PORTAY
9bd8a327d8 trivial: steelseries: Fix indentation violation 2022-05-24 06:43:02 -04:00
Richard Hughes
636786dd6a steelseries: Fix trivial typo spotted by Coverity 2022-05-24 08:53:30 +01:00
Richard Hughes
4397e9d7e0 steelseries: Don't use 'dongle' to describe hardware 2022-05-23 14:56:45 +01:00
Richard Hughes
f16560b705 Add device icon usb-receiver 2022-05-23 14:56:45 +01:00
Richard Hughes
4ffa70032f steelseries: Fix a trivial flag issue 2022-05-23 14:13:17 +01:00
Gaël PORTAY
7f7d2759a7 trivial: Update with recent steelseries changes
This fixes the commits 7eb053e97a and
9a5c69417a.
2022-05-23 14:09:03 +01:00
Richard Hughes
9a5c69417a steelseries: Add is-dongle as a private flag
This allows us to remove quite a bit of code.
2022-05-22 10:43:34 +01:00
Richard Hughes
7068233bf9 steelseries: Add FuSteelseriesDevice as a shared baseclass
This deduplicates a lot of code.
2022-05-22 10:43:34 +01:00
Richard Hughes
7eb053e97a steelseries: Rename FuSteelseriesDevice to FuSteelseriesMouse
Also, convert it to a FINAL class.
2022-05-22 10:43:34 +01:00