Commit Graph
23 Commits
Author SHA1 Message Date
Pablo Correa Gómez 8e9bbd9d4c Reload theme on SIGHUP signal
Fixes #28

Allows for users/applications to request a theme reload
by sending SIGHUP signal to the daemon.
2021-10-19 14:24:04 +00:00
Pablo Correa Gómez 3802c89e67 feedback-manager: Search for default theme under XDG_CONFIG_HOME first
This would allow users to create their own feedback profiles
without editing system files or using root privileges

Signed-off-by: Pablo Correa Gómez <ablocorrea@hotmail.com>
2021-06-08 16:17:41 +02:00
Andreas Hartmann 1c53464090 fbd-feedback-manager: Make sure theme path components are '/' separated
Previously, assembly of the theme paths for custom paths (based on
`XDG_DATA_DIRS`) was performed using `g_strconcat`, which produced erroneous
file paths with missing path separators due to a typo in the code.

Instead, make use of `g_build_filename` to assemble the theme paths from
`XDG_DATA_DIRS` to look for custom themes, which automatically introduces
host-specific path separators between individual path components. This
introduces another temporary variable to ensure that the filename (which is
itself assembled from a name and the file ending) isn't mangled by introduction
of a path separator between these two "parts".
2021-05-31 11:31:30 +02:00
Guido Günther 678ae7a22d fbd-feedback-manager: Don't leak device list 2021-04-26 09:34:23 +00:00
Guido Günther 9c9f767986 fbd-feedback-manager: Don't leak config_path
It's assigned multiple times.
2021-04-26 09:34:23 +00:00
Guido Günther 437b19edd4 fbd-feedback-manager: Make sure to dispose sound device as well
Fixes another leak.
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 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
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 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 6692d8922b feedback-manager: Add hint to select feedback profile per event
This e.g. allows events that are meant for haptic only to avoid
emitting a sound by omitting the 'full' level and using "quiet"
instead.

Closes: #7
2020-07-10 09:20:04 +00:00
Guido Günther 421c163bdd feedback-manager: Prepare for per event hints
Move feedback profile level into a separate function for that.
2020-07-10 09:20:04 +00:00
Guido Günther a5b4f99412 feedbackd: Support visual feedback via LEDs
Currently all LED feedbacks are infinite we can improve that
later on by using the 'repeat' attribute of the LED pattern
trigger.
2020-07-05 19:25:44 +00:00
Guido Günther bdf251e565 feedback-manager: Only act on add
We would otherwise ignore the action when no vibra device was yet found.
Make sure we release the old device when updating.
2020-06-02 16:36:24 +00:00
Guido Günther 5d947f51b1 feedback-manager: Fix indentation and typo 2020-06-02 16:36:24 +00:00
Guido Günther 784152ba67 feedback-manager: Drop superfluous g_clear_error
The error is a g_autoptr
2020-06-02 16:36:24 +00:00
Guido Günther 9cb62dee1d Allow to lower the feedback level per application
We munge the application id the same way as it's done
for notifications so these can eventually move into
the same schema.
2020-04-20 07:23:44 +00:00
Guido Günther 3663b7d149 Initial commit
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2020-02-14 17:40:34 +01:00