From 2e18a2f3ab5c0d093904980ece121612a583ca63 Mon Sep 17 00:00:00 2001 From: Radoslaw Cybulski Date: Fri, 6 Sep 2019 11:54:20 +0200 Subject: [PATCH] atspi: add stop reading command Adds stop reading command over dbus, which cancels all quened readings (including one in progress if any). Additional passed argument, boolean flag, when set to false limits cancelling only to discardable readings. Change-Id: I1ff8571edbaf0513da9d710c9eea16846aba62d4 --- src/lib/elementary/elm_atspi_bridge.c | 27 +++++++++++++++++++++++++++ src/lib/elementary/elm_atspi_bridge.h | 8 ++++++++ 2 files changed, 35 insertions(+) diff --git a/src/lib/elementary/elm_atspi_bridge.c b/src/lib/elementary/elm_atspi_bridge.c index c3b9e57..b1eda85 100644 --- a/src/lib/elementary/elm_atspi_bridge.c +++ b/src/lib/elementary/elm_atspi_bridge.c @@ -7547,6 +7547,33 @@ elm_atspi_bridge_utils_pause_resume(Eina_Bool pause) } EAPI void +elm_atspi_bridge_utils_stop_reading(Eina_Bool non_discardable_also) +{ + Eldbus_Message *msg; + Eldbus_Message_Iter *iter; + Eo *bridge = _elm_atspi_bridge_get(); + if (!bridge) + { + ERR("AT-SPI: Atspi bridge is not enabled."); + return; + } + ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN(bridge, pd); + if (!pd->a11y_bus) + { + ERR("AT-SPI: a11y bus is not set."); + return; + } + + msg = eldbus_message_method_call_new(ELM_ATSPI_DIRECT_READ_BUS, + ELM_ATSPI_DIRECT_READ_PATH, + ELM_ATSPI_DIRECT_READ_INTERFACE, + "StopReading"); + iter = eldbus_message_iter_get(msg); + eldbus_message_iter_arguments_append(iter, "b", non_discardable_also); + eldbus_connection_send(pd->a11y_bus, msg, NULL, NULL, -1); +} + +EAPI void elm_atspi_bridge_utils_say(const char* text, Eina_Bool discardable, const Elm_Atspi_Say_Signal_Cb func, diff --git a/src/lib/elementary/elm_atspi_bridge.h b/src/lib/elementary/elm_atspi_bridge.h index f4b0e4a..1170c97 100644 --- a/src/lib/elementary/elm_atspi_bridge.h +++ b/src/lib/elementary/elm_atspi_bridge.h @@ -51,6 +51,14 @@ EAPI void elm_atspi_bridge_utils_say(const char* text, */ EAPI void elm_atspi_bridge_utils_pause_resume(Eina_Bool pause); +/** + * @brief Cancels anything, screen-reader is reading / has quened to read + * + * @param non_discardable_also true, when you want to cancel all readings + * false when you want to limit cancellings only to discardable readings + */ +EAPI void elm_atspi_bridge_utils_stop_reading(Eina_Bool non_discardable_also); + // //TIZEN_ONLY(20161027) - Export elm_atspi_bridge_utils_is_screen_reader_enabled /** -- 2.7.4