From 1af163e7ea8eea598b6fa57f078b5eb05ccf7fea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Mon, 20 Jul 2020 18:14:32 +0200 Subject: [PATCH] feedback-vibra-rumble: Implement is_available This avoids criticals when there's no rumble vibra available. --- src/fbd-feedback-vibra-rumble.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/fbd-feedback-vibra-rumble.c b/src/fbd-feedback-vibra-rumble.c index 4e62d09..b4ec083 100644 --- a/src/fbd-feedback-vibra-rumble.c +++ b/src/fbd-feedback-vibra-rumble.c @@ -137,15 +137,27 @@ fbd_feedback_vibra_rumble_start_vibra (FbdFeedbackVibra *vibra) } } +static gboolean +fbd_feedback_vibra_rumble_is_available (FbdFeedbackBase *base) +{ + FbdFeedbackManager *manager = fbd_feedback_manager_get_default (); + FbdDevVibra *dev = fbd_feedback_manager_get_dev_vibra (manager); + + return FBD_IS_DEV_VIBRA (dev); +} + static void fbd_feedback_vibra_rumble_class_init (FbdFeedbackVibraRumbleClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); + FbdFeedbackBaseClass *base_class = FBD_FEEDBACK_BASE_CLASS (klass); FbdFeedbackVibraClass *vibra_class = FBD_FEEDBACK_VIBRA_CLASS (klass); object_class->set_property = fbd_feedback_vibra_rumble_set_property; object_class->get_property = fbd_feedback_vibra_rumble_get_property; + base_class->is_available = fbd_feedback_vibra_rumble_is_available; + vibra_class->start_vibra = fbd_feedback_vibra_rumble_start_vibra; vibra_class->end_vibra = fbd_feedback_vibra_rumble_end_vibra;