Guido Günther
14f99d6e67
lfb-event: Untabify
2022-10-12 10:19:03 +02:00
Guido Günther
dafb18678b
Use g_error() when library is not initalized
...
This makes sure it still works when asserts are disabled.
2022-10-12 10:19:03 +02:00
Guido Günther
8df5d1606e
lfb-event: Use consistent prefix
...
Make async data use the same prefix.
2022-10-12 10:18:59 +02:00
Guido Günther
c659f0adb5
lfb-event: Fix typo
...
It's LfbEvent
2022-10-12 10:13:08 +02:00
Guido Günther
2e081602f6
data: Drop outdated comment
...
We use the hints since some time, see lfb_event_set_feedback_profile().
2022-07-20 18:32:47 +00:00
Guido Günther
17c1c2aa24
Document changes and release 0.0.0+git20220209
2022-05-20 10:57:37 +02:00
Guido Günther
5a3e501344
udev: Use more generic comment
...
Make it more obvious that this isn't device specific
2022-03-18 11:08:28 +01:00
Guido Günther
9851d3727f
udev: Drop pre L5 pre 5.9 workaround
...
Not neeed in 2022.
2022-03-18 10:55:15 +01:00
Guido Günther
74b178a363
Document changes and release 0.0.0+git20220208
2022-02-08 11:30:40 +01:00
Guido Günther
16bf78b5a4
manager: Don't sync DBus profile property
...
This will happen in on_feedbackd_setting_changed() once the
profile was adjusted.
2022-02-04 19:03:00 +01:00
Guido Günther
5c8cbfca39
manager: Sync profile with setting on startup
...
On startup the GSetting is the relevant input for selecting the profle.
Closes : #52
2022-02-04 19:03:00 +01:00
Guido Günther
2be41ec0ef
manager: Set initial profile to unknown
...
This makes sure we sync the profile with the DBus property after
fetching it from GSettings.
2022-02-04 19:03:00 +01:00
Guido Günther
a7a123a0b7
tests: Remove unused variables
2022-02-04 19:03:00 +01:00
Guido Günther
ff055cdb35
libfeedback: Remove unused variables
2022-02-04 19:03:00 +01:00
Guido Günther
753fff3e7a
d/changelog: Bump changes line to a recent date too
...
It was still stuck at 2021-10-07. Fixup version too while at that.
2021-10-19 13:15:28 +02:00
Guido Günther
d11ea0c555
Document changes and release 0.0.0+git20211018
2021-10-18 17:17:12 +02:00
Guido Günther
3a6b573d9b
gitlab-ci: Switch to bullseye
...
Drop support for buster, this can be handled in downstream builds.
2021-10-18 17:16:12 +02:00
Guido Günther
c88c6cfff5
fbd-dev-sound: Delay sending ended signal
...
Remove the feedback and the associated callback data before invoking the
callback (which then triggers FbdFeebackBased:ended) since we otherwise
remove the data from the currently playing sound from the hash table
instead of removing the data from the sound that just finished playing.
Call flow for a repeating sound before:
on_sound_play_finished_callback()
data->callback()
fbd_feedback_get_ended()
on_fb_ended()
fbd_feedback_run()
g_hash_table_insert(..., feedback, data)
fbd_dev_sound_play()
gsound_context_play_full() [async]
g_hash_table_remove (..., data->feedback) <- removes wrong feedback
So (since the feedback is still the same but only the callback data
changes) we end up removing the data from the currently playing sound
from the hash table and any calls to fbd_dev_sound_stop() would fail
to find data and hence not cancel the playing sound.
Call flow for a repeating sound now:
on_sound_play_finished_callback()
g_hash_table_remove (..., data->feedback)
data->callback()
fbd_feedback_get_ended()
on_fb_ended()
fbd_feedback_run()
g_hash_table_insert(..., feedback, data)
fbd_dev_sound_play()
gsound_context_play_full() [async]
So we remove the data of the currently playing sound before adding
the feedback to the hash table again. No ownership is transfered to
the hash table so no cleanusp need to be changed.
Closes: https://source.puri.sm/Librem5/feedbackd/-/issues/46
2021-10-15 15:12:55 +02:00
Guido Günther
05bd9ae0cb
fbd-dev-sounce: Name data consistently
...
We name it `data` elsewhere. Don't call it `object` in one function.
2021-10-15 15:10:31 +02:00
Guido Günther
48c05be29d
fbd-dev-sound: Rename cancellable to cancel
...
The current name is just confusing
2021-10-15 15:10:31 +02:00
Guido Günther
83ba584a53
feedback-theme: Add camera related events
2021-09-06 12:49:41 +02:00
Guido Günther
587cbf3188
cli: Fix changing global profile
...
For that we must not set a default event.
2021-08-09 11:49:30 +02:00
Guido Günther
3503fe0293
docs: Fix --profile short option
...
It's '-P', not '-p'.
2021-08-09 11:46:30 +02:00
Guido Günther
4f5d3cc253
examples: Unbreak python example
...
The method is `trigger_feedback` not `trigger`.
2021-07-23 15:07:13 +02:00
Guido Günther
48b4bb97d6
Document changes and release 0.0.0+git20210426
2021-04-26 12:36:05 +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
11aa38baba
fbd-dev-sound: Use correct cleanup for hash table
...
This went unnoticed since the manager forgot to cleanup
this at all (see follow up commit).
2021-04-26 09:34:23 +00:00
Guido Günther
4c30fafc6e
fbd-dev-leds: Use automatic deep cleanup for device list
...
The current logic was fragile and failed e.g. when the
FEEDBACKD_UDEV_VAL_LED would not match leaking the dev since the
g_object_unref() at the end of the loop was never hit.
Prevent that with automatic cleanup and explicitly ref'ing the
devs we want to use.
2021-04-26 09:34:23 +00:00
Guido Günther
957fa1be83
fbd-dev-leds: Don't leak color
...
g_ascii_strdown() creates a copy already.
2021-04-26 09:34:23 +00:00
Guido Günther
d8f944ed30
fbd-dev-leds: Don't leak enum_name
...
g_enum_to_string() is transfer full.
2021-04-26 09:34:23 +00:00
Guido Günther
d7419f37a1
fbd-dev-leds: Free actual FbdDevLed as well
...
So far we only unref'ed the device.
2021-04-26 09:34:23 +00:00
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
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
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
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
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
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
Guido Günther
134d60c73b
tests: Don't quiet mainloop on event end
...
This is needed to properly test aync where we have the
finished async event handler and the signal.
2020-07-13 10:16:20 +02:00
Guido Günther
6e30957714
lfb-event: Connect done handler in async case too
...
Otherwise the event state is not updated properly
2020-07-13 10:16:20 +02:00
Guido Günther
bb561b0dc5
lfb-event: Clarify return values of finished functions
...
They just inidicate that we talked to feedbackd succesfully.
2020-07-13 10:16:20 +02:00
Guido Günther
68a1e3cda0
Document changes and release 0.0.0+git20200707
2020-07-10 11:54:52 +02:00
Guido Günther
918a047ce0
debian: Bump symbol versions
...
This ensures we get tighter dependencies when built against
this version with new symbols.
We don't bother with individual symbols yet.
2020-07-10 09:20:04 +00:00
Guido Günther
41304c36fd
cli: Allow to set profile per event
...
We allowed set the global profile via `-P` use it as per event
profile when used with `-E`.
Ironically the manpage always said it'd be that way.
2020-07-10 09:20:04 +00:00
Guido Günther
dfafe8d7c1
cli: Fix indentation
2020-07-10 09:20:04 +00:00
Guido Günther
50aeb79ec9
LfbEvent: Add feedback-profile property
...
This allows to specify the feedback profile to use for
this particular event.
2020-07-10 09:20:04 +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
9c667bbc6c
LfbEvent: Link to event naming specification
2020-07-10 09:20:04 +00:00
Guido Günther
69cbe39082
README: We set a feedback profile not a level
2020-07-10 09:20:04 +00:00
Guido Günther
76da62738c
Revert "rumble: Use a default pause"
...
This reverts commit 551030b436 .
2020-07-10 11:17:18 +02:00
Guido Günther
551030b436
rumble: Use a default pause
...
Without that multiple counts sound odd so let's have good defaults.
2020-07-09 12:53:15 +00:00
Guido Günther
200ec77362
Add generic missed notification
...
This can be used e.g. by the shell for general purpose notifictions
but also for in app notifications of the foreground app.
2020-07-05 19:25:44 +00:00
Guido Günther
75f6888334
data: Use LED feedback for missed calls, IMs and SMS
2020-07-05 19:25:44 +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
2f083ea5ae
debian: Setup leds via udev
...
This allows feedbackd to set periodic feedback and makes usable
LED devices identifiable by feedbackd.
2020-07-05 19:25:44 +00:00
Guido Günther
b561114800
feedbackd: Add helper to set up permissions for LEDs
...
This helper knows about the tiggers and necessary permission.
It's intended to be run via udev.
2020-07-05 19:25:44 +00:00
Guido Günther
20ba06a193
data: Drop phone-missed-call in 'quite' profile
...
Only want LEDs there.
2020-07-05 19:25:44 +00:00
Guido Günther
5efac28da9
debian: Ship manpages
2020-07-04 11:30:47 +00:00
Guido Günther
d780dd4f57
docs: Add feedbackd manpage
...
Closes : #12
2020-07-04 11:30:46 +00:00
Guido Günther
afcb57ab90
doc: Add fbcli manpage
2020-07-04 11:30:46 +00:00
Guido Günther
e4c793f6b2
README: Fix spelling
...
It's `from` not `form`.
2020-06-25 08:36:06 +02:00
Guido Günther
f5f6308fc4
README: Fix command line tool name
...
It's called fbcli (but was called fbdcli initially)
2020-06-25 08:22:38 +02:00
Guido Günther
58c370407f
fbcli: Quit main loop on CTRL-C / SIGTERM
...
This makes sure we invoke the cleanup function correctly and allows
to test running event handling.
2020-06-02 16:36:24 +00:00
Guido Günther
49dab605c2
libfeedback: Cancel all running feedbacks on uninit
...
We keep track of the active ids and end them on uninit. This
make sure feedbacks don't continue to run if the application quits
and forgets to end a feedback.
2020-06-02 16:36:24 +00:00