Commit Graph

111 Commits

Author SHA1 Message Date
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
Gaël PORTAY
f427a3e327 steelseries: sonic: Allow to read firmware 2022-05-21 16:09:09 -04:00
Richard Hughes
36176c5b07 trivial: Fix one -Wunused warning in some new code 2022-05-21 12:19:50 +01:00