atspi: add stop reading command 40/213540/3
authorRadoslaw Cybulski <r.cybulski@partner.samsung.com>
Fri, 6 Sep 2019 09:54:20 +0000 (11:54 +0200)
committerLukasz Oleksak <l.oleksak@samsung.com>
Fri, 27 Sep 2019 11:29:31 +0000 (11:29 +0000)
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
src/lib/elementary/elm_atspi_bridge.h

index c3b9e57..b1eda85 100644 (file)
@@ -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,
index f4b0e4a..1170c97 100644 (file)
@@ -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
 /**