vibra-periodic: Add a fallback for the previous [0, 0xFFFF] range

This keeps old themes working

Signed-off-by: Guido Günther <agx@sigxcpu.org>
This commit is contained in:
Guido Günther
2025-03-21 12:15:57 +01:00
parent da93a16cda
commit c37bfecbe0
2 changed files with 60 additions and 0 deletions
+46
View File
@@ -132,6 +132,50 @@ test_fbd_feedback_vibra_periodic (void)
}
static void
test_fbd_feedback_vibra_periodic_fallback (void)
{
/* Create manager upfront so we can dispose it, otherwise creating
* any feedback would create it implicitly */
FbdFeedbackManager *manager = fbd_feedback_manager_get_default ();
g_autoptr (GError) err = NULL;
g_autoptr (JsonNode) node = NULL;
GObject *object;
double magnitude, fade_in_level;
guint fade_in_time;
node = json_from_string("{"
" \"event-name\" : \"button-pressed\","
" \"type\" : \"VibraPeriodic\","
" \"magnitude\" : 65535,"
" \"fade-in-level\" : 13107"
"}", &err);
g_assert_no_error (err);
g_test_expect_message ("fbd-feedback-vibra-periodic",
G_LOG_LEVEL_WARNING,
"Too large magnitude 65535.00 detected*");
g_test_expect_message ("fbd-feedback-vibra-periodic",
G_LOG_LEVEL_WARNING,
"Too large fade-in-level 13107.00 detected*");
object = json_gobject_deserialize (FBD_TYPE_FEEDBACK_VIBRA_PERIODIC, node);
g_test_assert_expected_messages ();
g_object_get (object,
"magnitude", &magnitude,
"fade-in-level", &fade_in_level,
"fade-in-time", &fade_in_time,
NULL);
g_assert_cmpfloat_with_epsilon (magnitude, 1.0, FLT_EPSILON);
g_assert_cmpfloat_with_epsilon (fade_in_level, 0.2, FLT_EPSILON);
g_assert_cmpint (fade_in_time, ==, 500);
g_assert_finalize_object (object);
g_assert_finalize_object (manager);
}
gint
main (gint argc, gchar *argv[])
{
@@ -140,6 +184,8 @@ main (gint argc, gchar *argv[])
g_test_add_func("/feedbackd/fbd/feedback-vibra/rumble", test_fbd_feedback_vibra_rumble);
g_test_add_func("/feedbackd/fbd/feedback-vibra/pattern", test_fbd_feedback_vibra_pattern);
g_test_add_func("/feedbackd/fbd/feedback-vibra/periodic", test_fbd_feedback_vibra_periodic);
g_test_add_func("/feedbackd/fbd/feedback-vibra/periodic/fallback",
test_fbd_feedback_vibra_periodic_fallback);
return g_test_run();
}