Commit Graph
127 Commits
Author SHA1 Message Date
Guido Günther 9169d8b23b fbd-feedback-theme: Don't leak JSON node 2021-04-26 09:34:23 +00:00
Guido Günther dc68afdf5f Help emacs to indent properly 2021-04-26 09:34:23 +00:00
Guido Günther 04648dcf27 feedback-manager: Track DBus clients and end feedbacks if they go away
When the client goes away we build up a list of events to end feedback
for to make sure the hash table isn't modified in place. tThe alternative
approach would be to disconnect the on_event_feedbacks_ended handler,
duplicate the DBus signal emission and use g_hash_table_foreach_remove
but that looks less robust than using the same code path.

Closes: #25
2021-04-22 14:44:30 +02:00
Guido Günther dc8c8c9594 fbd-manager: Keep DBus sender around 2021-04-22 14:43:30 +02:00
Guido Günther 66bcb31a0e fbd-event: Add sender property
This allows us to store the DBus sender
2021-04-22 14:43:30 +02:00
Guido Günther abab07a2f2 event: Remove 'g' prefix from common C types
This matchs phosh's style.
2021-04-22 14:43:30 +02:00
Guido Günther 0936b5fb09 tests: Run event tests too 2021-04-22 14:43:30 +02:00
Guido Günther da537aff1e event: Make log-domain match source file name 2021-04-22 14:43:30 +02:00
Sebastian Spaeth ec80c278a6 README: Fix gdbus test command
It is TriggerFeedback and not Feedback (anymore). Also add a note how to
end the feedback in order to prevent loss of hearing :-).
2021-03-22 09:55:24 +01:00
Clayton Craft 2674654c39 fbd-ledctrl: fix matching of trigger in list of triggers
If the trigger is the last thing in sysfs_path/LED_TRIGGER_ATTR, then
the new-line at the end of the output causes g_strv_contains to fail to
find the trigger in the list. This strips the new-line before splitting
the output into a list for searching.

You can see the problem this patch fixes with the librem 5, by:

$ rmmod ledtrig-timer     # or whatever is listed at the end, so 'pattern' is the last thing
$ cat /sys/devices/platform/pwmleds/leds/blue:status/trigger
[none] kbd-scrolllock ... pattern
$ fbd-ledctrl -p /sys/devices/platform/pwmleds/leds/blue:status -t pattern
Failed to set perms of /sys/devices/platform/pwmleds/leds/blue:status/pattern to 101: No such file or directory
$ modprobe ledtrig-timer
$ cat /sys/devices/platform/pwmleds/leds/blue:status/trigger
[none] kbd-scrolllock ... pattern timer
$ fbd-ledctrl -p /sys/devices/platform/pwmleds/leds/blue:status -t pattern
<success>
2021-03-20 00:26:24 -07:00
Guido Günther 53a02c719c test-lfb-integration: Test invocation error 2021-02-05 16:56:24 +01:00
Guido Günther d6e3df7ebc tests: Run lfb_event_{get,set}_timeout 2021-02-05 16:56:24 +01:00
Guido Günther 8c8382a0d2 lfb-event: Don't leak error
Don't leak the error values in the success case
2021-02-05 16:56:24 +01:00
Guido Günther 0a5dac1e53 fbd-dev-sound: Don't warn when sound was cancelled
This is not an error per se.
2021-02-05 16:56:24 +01:00
Guido Günther c95009afd1 fbd-dev-sound: Don't leak GError 2021-02-05 16:56:23 +01:00
Martin Bürgmann 4ba2889b90 implement fbd_dev_sound_stop
tracks the FdbFeedbackSounds in a GHashTable in the FdbDevSound
2021-02-04 21:16:39 +01:00
Guido Günther aac3306ad5 Document changes and release 0.0.0+git20210125 2021-01-25 11:00:38 +01:00
Guido Günther 40d318c9aa feedback-manager: Fix formatting
It was off in several places. Now that there's no outstanding
MRs clean it up via

   uncrustify --replace -c phosh.cfg src/fbd-feedback-manager.c
2021-01-11 10:35:03 +01:00
Dylan Van Assche 3ac9494821 fbd-feedback-manager: Allow device-specific feedbackd themes
Reads the compatible list of the device and tries to find a device-specific theme file in all  directories. If no configuration is found, we fall back to a default theme file. The device-specific theme file can always be overriden by specifying the FEEDBACK_THEME environment variable
2021-01-01 18:49:38 +01:00
Dylan Van Assche 2e92c181a0 meson.build: compile GLib schemas on install
Run a script as a post install to make sure that all GLib schemas are compiled
2021-01-01 18:38:47 +01:00
Dylan Van Assche e4cdd0bcff data/meson.build: fix validating theme files
The foreach loop was not used to validate all the include theme files
2021-01-01 18:37:30 +01:00
Guido Günther ce02a0a52d Document changes and release 0.0.0+git20201114 2020-11-14 15:55:30 +01:00
Guido Günther 3b3deddb54 debian: Don't abuse the video group
Use a separate group for users that should be able to access
the LED devices.
2020-11-14 15:39:27 +01:00
Guido Günther 5ca5d50027 udev: Update led maching for the librem5
The names changed in device tree which tickles up into userspace.
2020-11-14 15:33:27 +01:00
Luca Weiss ed0253fc44 Fix typos 2020-10-26 08:21:05 +00:00
Luca Weiss e79a24b5ad fbd-dev-leds: fix brightness parameter
The fbd_dev_led_set_brightness function is only getting called with
parameter 0 at the moment so this was never noticed.
2020-10-25 22:30:25 +01:00
Guido Günther 581b83cd92 gitlab-ci: Honor PKG_ONLY
This allow us to get debs quicker
2020-09-30 19:16:37 +02:00
Guido Günther 99e39fba00 sound: Set 'event' media role
This allows pa to cork, duck, etc.
2020-09-30 19:16:25 +02:00
Guido Günther 9e2c13a1fe Document changes and release 0.0.0+git20200726 2020-07-26 13:06:35 +02:00
Guido Günther 5a75f369fc fbd: Dispose manager at the very end 2020-07-24 14:45:46 +02:00
Guido Günther 665d2abc4a feedback-led: Don't try to stop led when there's no led device
This is not a critical since we prevented submitting initially
but daemon cleanup processes all entries in the theme.
2020-07-24 12:53:13 +02:00
Guido Günther d137c5895f feedback-led: Stop the correct led color 2020-07-24 12:53:13 +02:00
Guido Günther 8a631cae3e feedback-manager: Dispose leds too 2020-07-24 12:53:13 +02:00
Guido Günther e7f527bf62 feedback-manager: Don't forget to remove not found events from the hash table
This plugs a leak.
2020-07-24 12:53:13 +02:00
Guido Günther cf56999bf7 feedback-manager: Deeply free the feedback list
Instead of freeing each elemnt after each iteration and then the list
itself at the very end just fully free the list. g_autoslist does
not work well on oder glib so do that manually.

This is just cosmetics.
2020-07-24 12:53:13 +02:00
Guido Günther fb076254c9 tests: Test event not found case too 2020-07-24 11:58:26 +02:00
Guido Günther cfab476edb tests: Don't check end reason in feedback handler
This allows to reuse the feedback handler and we check the
reason in the actual test function anyway.
2020-07-24 11:58:26 +02:00
Guido Günther e8d189ebe6 feedback-theme: Avoid warning when feedback is not found
We tell the caller so debug level is enough
2020-07-24 11:58:26 +02:00
Guido Günther 05a6bd5947 feedback-sound: Implement is_available
This avoids criticals when there's sound device available. We
can also be more precise about the reason why feedback ended.
2020-07-22 10:28:42 +00:00
Guido Günther 67ebeba2b2 feedback-vibra-periodic: Implement is_available
This avoids criticals when there's no periodic vibra available.
2020-07-22 10:28:42 +00:00
Guido Günther 1af163e7ea feedback-vibra-rumble: Implement is_available
This avoids criticals when there's no rumble vibra available.
2020-07-22 10:28:42 +00:00
Guido Günther 75e28510e4 fbd-feedback-led: Implement is_available ()
This avoids criticals when there's no Leds available.
2020-07-22 10:28:42 +00:00
Guido Günther e8dfe6974a fbd-feedback-manager: Check if feedback is usable
If we don't find any usable feedbacks for an event return
FBD_EVENT_END_REASON_NOT_FOUND.
2020-07-22 10:28:42 +00:00
Guido Günther 542fe52cc2 feedback-manager: Fix indentation 2020-07-22 10:28:42 +00:00
Guido Günther 94ef60f73e fbd-feedback-base: Add fbd_feedback_is_available ()
This allows to check if a feedback type is available
at all.
2020-07-22 10:28:42 +00:00
Guido Günther f950cfc3a2 fbd-dev-sound: Be less verbose on missing sound files
This is quite common so don't fill the logs at normal debug levels
but be more specific about what is missing.
2020-07-20 16:19:17 +02:00
Arnaud Ferraris 4bcf9d9fbb fbd-dev-leds: store LED color when parsing devices
Failing to do so will always select the first recognized LED (the blue 
one for the PinePhone).
2020-07-14 15:33:32 +00:00
Arnaud Ferraris 0dfcbaeb5c debian: udev: add support for PinePhone front LEDs 2020-07-14 13:56:44 +02:00
Guido Günther 7d22b36208 Document changes and release 0.0.0+git20200714 2020-07-14 10:31:46 +02:00
Guido Günther 3a378552af tests: Use async feedback as the test name implies 2020-07-13 16:06:44 +02:00