Benjamin Berg
8cc0fd321f
assembling: Use fixed point for image assembly
...
Using floating point causes architecture dependent results due to
accuracy/rounding differences. It is not hard to switch to fixed point,
and while this does cause quite different rounding errors, the
difference is small.
Fixes : #200
2019-11-28 20:41:45 +00:00
Benjamin Berg
a7541b1f76
tests: Fix endianness issue in test suite
...
The test suite needs to compare greyscale images and was picking an
undefined byte in the pixel data on big-endian. Select a byte that works
on any endian instead.
See: #200
2019-11-28 20:41:45 +00:00
Marco Trevisan (Treviño)
b9ff75c4e9
fp-print: Set the aligned_data as the data used by the cleanup function
...
g_variant_new_from_data() allows to destroy some other user_data passed as
parameter that might be different from the aligned_data itself.
But since in this case they match, pass it to be set as g_free parameter
or it won't be free'd.
2019-11-28 21:30:17 +01:00
Marco Trevisan (Treviño)
4447a0d183
ci: Add a test case where we run tests with valgrind
2019-11-27 21:40:44 +01:00
Marco Trevisan (Treviño)
545af23536
tests: Use a loop for generating drivers tests and use suites
...
So we can just run drivers tests with --suite=drivers
2019-11-27 21:40:44 +01:00
Marco Trevisan (Treviño)
db905a2048
fp-device: Use g_clear_error instead of check + free
2019-11-27 21:40:44 +01:00
Marco Trevisan (Treviño)
712853d1e3
fp-device: Mark user data in FpEnrollProgress as transfer none
...
The data has its own DestroyNotify set, so while no generic DestroyNotify
exists for generic data, let's make it clear.
2019-11-27 21:40:44 +01:00
Marco Trevisan (Treviño)
c6298ede72
fp-device: Unref the print once we've notified the progress
...
When we notify the enroll progress with a print, this needs to be unreffed
once we're done, but this only was happening in case of error.
Since it's not up to the callback function to free it, let's do it at the
end of the function.
As per this, clarify the docs for FpEnrollProgress marking it as transfer
none.
2019-11-27 21:40:44 +01:00
Marco Trevisan (Treviño)
b1d99e7608
fp-device: Use an autopointer and steal the print when passed
...
Make it clearer that we're stealing the print when passing it away, instead
of just doing this silently.
2019-11-27 21:40:44 +01:00
Marco Trevisan (Treviño)
5927a205e3
virtual-image: Also unref the object when closing a the stream
...
While a stream is closed when completely unreffed, the other way around
isn't true, so always unref the object.
2019-11-27 21:40:44 +01:00
Marco Trevisan (Treviño)
8c05f3b78c
fp-print: Unref print data and get static strings when deserializing
2019-11-27 21:40:44 +01:00
Marco Trevisan (Treviño)
92db82e3d4
fp-print: Assert the prints aren't set when initialized
2019-11-27 21:40:44 +01:00
Marco Trevisan (Treviño)
f6f689f9cd
fp-print: Unref the prints on finalize
2019-11-27 21:40:44 +01:00
Marco Trevisan (Treviño)
5dc3edf07c
fp-context: Run dispose on the usb context to deal with circular refs
...
Ensure that we dispose the USB context before unreffing it, so that it will
release any reference it has and destroy the internal libusb context.
2019-11-27 21:40:44 +01:00
Marco Trevisan (Treviño)
71625ec1cf
fp-device: Unref the usb device on finalize
...
Each device adds a ref to the underlying usb device, but it doesn't remove
the reference on finalization.
So clear the object to fix the leak
2019-11-27 21:40:44 +01:00
Marco Trevisan (Treviño)
c9216cf96c
tests: Add setup mode to run tests using valgrind
...
In such case we need to ignore the python errors, so including a suppression
file when using --setup=valgrind.
2019-11-27 21:40:43 +01:00
Marco Trevisan (Treviño)
53713c0098
tests: Add 'gdb' setup to run tests using gdb
...
When using --setup=gdb the tests will be running using gdb, however this
as per meson limitation allows only running a test when using verbose mode.
2019-11-27 21:40:43 +01:00
Marco Trevisan (Treviño)
222c33ec32
virtual-image: Re-run the test using the defined wrapper if any
...
In case a LIBFPRINT_TEST_WRAPPER is defined, execute again the script using
the same python processor but using the passed wrapper command.
2019-11-27 21:40:43 +01:00
Marco Trevisan (Treviño)
19a50cfdc3
umockdev-test: Make possible to use a wrapper to run tests
...
Support LIBFPRINT_TEST_WRAPPER env variable to run tests with a wrapper.
2019-11-27 21:40:43 +01:00
Marco Trevisan (Treviño)
9892eb1c03
fpi-ssm: Make clearer that data is unused in fpi_ssm_usb_transfer_cb
2019-11-27 21:02:20 +01:00
Marco Trevisan (Treviño)
587131a6bd
drivers: Use more fpi_ssm_usb_transfer_cb when possible
...
Replace all the transfer callbacks where we just switch to the next state or
fail with fpi_ssm_usb_transfer_cb.
2019-11-27 21:02:20 +01:00
Marco Trevisan (Treviño)
65d0d5e3e0
fpi-ssm: Add a usb transfer callback with data as weak pointer
...
Allow to pass a double-pointer to be nullified as the transfer data in order
to mark it as NULL when the transfer is done.
This is useful if we're keeping the transfer around in order to check that
no one is currently running.
2019-11-27 21:02:19 +01:00
Marco Trevisan (Treviño)
2642fc6560
fpi-usb-transfer: Take ownership of the transfer when submitting it
...
When a transfer is completed, we automatically unref it since we can't
consider it valid anymore since this point.
Update the drivers not to free the transfer after submitting anymore.
2019-11-27 21:02:19 +01:00
Marco Trevisan (Treviño)
a855c0cc79
fpi-ssm: Take ownership of the SSM when completing it
...
When a machine is completed, we automatically free it since we can't
consider it valid anymore since this point.
Update the drivers not to free the SSM on completion callback anymore.
2019-11-27 21:02:19 +01:00
Marco Trevisan (Treviño)
876924df6a
examples: Handle the cases where the print date is not set
2019-11-27 19:14:35 +01:00
Marco Trevisan (Treviño)
519b5acc91
synaptics: Initialize user_id autoptr to NULL
2019-11-27 18:54:21 +01:00
Marco Trevisan (Treviño)
e812653acd
synaptics: Use GDate getters to retrieve the DMY values
...
As per commit 201b5a961
we use g_date_copy() to copy the date, however the
GLib implementation is done assuming that the GDate getters are always used
as the copy function doesn't preserve the original format of the date
(whether is using julian days or dmy), and the synaptics driver access to
the dmy values directly, without using the getter that would recompute the
proper values.
Causing a read error of unset values.
So, to avoid this, just use the g_date_get_* getters to retrieve the day
month and year for for defining the print enroll id.
2019-11-27 18:54:21 +01:00
Marco Trevisan (Treviño)
1b23f0efe1
drivers: Use clearer messages using parameters
2019-11-26 12:18:57 +00:00
Marco Trevisan (Treviño)
f6559ba8b1
fp-device: Support variadic arguments to error functions
...
Make possible to generate a formatted message when creating an error from
a device, without having save it first.
2019-11-26 12:18:57 +00:00
Marco Trevisan (Treviño)
3b72b925b0
gitlab-ci: Check indentation in an initial check-source stage
2019-11-25 19:08:31 +01:00
Marco Trevisan (Treviño)
15d218a112
fpi-log: Set fp_error as equal to g_critical
2019-11-25 18:59:46 +01:00
Marco Trevisan (Treviño)
0a08a24896
fpi-ssm: Remove any reference to fpi_timeout_add()
...
This doesn't exist anymore, while fpi_device_add_timeout does exists.
2019-11-25 18:59:46 +01:00
Marco Trevisan (Treviño)
cca6d3b04b
fp-image-device: Use a GObject signal to notify image state changed
...
This is more GObject-friendly and we have the automatic call of the vfunc if
one is set.
2019-11-25 18:59:46 +01:00
Marco Trevisan (Treviño)
be367988ae
fp-image-device: Add private "fp-image-device-state" property
...
In this way drivers may get this without having to keep a copy of it
2019-11-25 18:59:46 +01:00
Marco Trevisan (Treviño)
ea4da08af0
fp-image-device: Reactivate in idle on deactivation completed
...
This is the same logic we apply to fp-device by default: any completed
action should trigger the subsequent one when it is finished.
So in case we want reactivate after a deactivation, let's do it in an idle,
after removing the current pending timeout.
2019-11-25 18:59:46 +01:00
Marco Trevisan (Treviño)
60ad1ab9e3
fp-image-device: Clear the pending activation timeout on finalize
2019-11-25 18:59:46 +01:00
Marco Trevisan (Treviño)
201b5a9614
fp-print: Use g_date_copy
...
As per previous commit we depend on glib 2.56, we can use this utility
function as well.
2019-11-25 18:59:46 +01:00
Marco Trevisan (Treviño)
8b270141f3
image-device: Use g_clear_handle_id for timeouts
...
As per this depend on glib 2.56: it has been released almost 2 years ago,
I suppose we're fine with that.
2019-11-25 18:59:46 +01:00
Marco Trevisan (Treviño)
ceb62d7617
meson: Avoid repeating the needed glib version multiple times
...
Just define once and modify its syntax when needed.
Use a more verbose definition for the min/max version (instead of just
join the split version) so that in case we may depend on a specifc glib
micro release during development.
2019-11-25 18:59:46 +01:00
Marco Trevisan (Treviño)
099fa9f005
meson: Use preferred syntax everywhere
...
Meson files are normally using 4-spaces to indent and functions use first
parameter on the same line while others at next indentation level, not
following the parenthesis indentation.
So adapt libfprint to follow the meson standard.
2019-11-25 18:59:46 +01:00
Marco Trevisan (Treviño)
dd7d1baece
meson: Use multiline-array for default dirvers listing
...
It will make reviews and diffs nicer to handle when adding new drivers.
2019-11-25 18:59:46 +01:00
Marco Trevisan (Treviño)
d8efa336e5
fpi-ssm, fp-device: Add missing copyright
2019-11-25 18:59:46 +01:00
Marco Trevisan (Treviño)
76dd4066f3
verify: Ensure we set set the autoptr value to NULL at definition
2019-11-25 18:59:46 +01:00
Benjamin Berg
9b48864c5b
print: Ensure xyt struct is not leaked during deserialization
...
In the unlikely event of an error, the variable may have been leaked.
Fix this by using g_autoptr combined with a g_steal_pointer.
2019-11-25 18:46:14 +01:00
Benjamin Berg
14a41bdd48
print: Free temporary col variable
...
The variable was leaked during serialization. Free it.
2019-11-25 18:46:14 +01:00
Benjamin Berg
25bc89a4f5
image-device: Remove unused fpi_device_get_current_action call
...
There is a later call in the function which is sufficient. Simply remove
the first call.
2019-11-25 18:46:14 +01:00
Benjamin Berg
2f0824ab88
upeksonly: Add default clauses to switch statements
...
This effectively only annotates the code to make it clear that variables
set in the switch are always initialized.
2019-11-25 18:46:14 +01:00
Benjamin Berg
8ba6f4dad2
synaptics: Add an explicit assert on the response
...
The response must be non-NULL in the function. Add an explicit assert to
appease to static code analysis tools.
2019-11-25 18:46:14 +01:00
Benjamin Berg
ada5d488fa
synaptics: Correctly unref pointer array
...
The pointer arrays were unref'ed using g_ptr_array_free rather than
g_ptr_array_unref from g_clear_pointer. Switch to the correct function.
2019-11-25 18:46:14 +01:00
Benjamin Berg
b16245ad58
elan: Fix switch in change_state
...
The switch in change_state had a useless break and a useless if clause.
Remove both.
2019-11-25 18:46:14 +01:00