Remove direct efl dependencies.
authorLukasz Stanislawski <l.stanislaws@samsung.com>
Fri, 13 Mar 2015 10:09:01 +0000 (11:09 +0100)
committerLukasz Stanislawski <l.stanislaws@samsung.com>
Thu, 19 Mar 2015 09:30:49 +0000 (10:30 +0100)
Reasoning: Since we already use glib and smart-navigator has no
GUI, EFL was used only for data structures.

Change-Id: I8e1d430d759e06d22d18337b3c7e4406edacc556

23 files changed:
CMakeLists.txt
include/flat_navi.h
include/position_sort.h
include/screen_reader.h
include/screen_reader_tts.h
packaging/org.tizen.smart-navigator.spec
src/flat_navi.c
src/main.c
src/navigator.c
src/object_cache.c
src/pivot_chooser.c
src/position_sort.c
src/screen_reader.c
src/screen_reader_spi.c
src/screen_reader_system.c
src/screen_reader_tts.c
src/screen_reader_vconf.c
src/smart_notification.c
src/structural_navi.c
tests/CMakeLists.txt
tests/atspi/atspi.c
tests/atspi/atspi.h
tests/screen_reader_test_suite.c

index 691f1fd..c3122d1 100755 (executable)
@@ -12,12 +12,8 @@ INCLUDE(FindPkgConfig)
 pkg_check_modules(pkgs REQUIRED
        capi-appfw-application
        bundle
-       eldbus
-       elementary
-       ecore
        atspi-2
        gobject-2.0
-       ecore-x
        dlog
        vconf
        tts
index dbc09b1..2b0fc70 100644 (file)
@@ -2,7 +2,6 @@
 #define FLAT_NAVI_H_
 
 #include <atspi/atspi.h>
-#include <Eina.h>
 
 typedef struct _FlatNaviContext FlatNaviContext;
 
@@ -96,7 +95,7 @@ AtspiAccessible *flat_navi_context_current_get(FlatNaviContext *ctx);
  *
  * @return EINA_TRUE is operation successed, EINA_FALSE otherwise
  */
-Eina_Bool flat_navi_context_current_set(FlatNaviContext *ctx, AtspiAccessible *target);
+gboolean flat_navi_context_current_set(FlatNaviContext *ctx, AtspiAccessible *target);
 
 /**
  * Advances to previous line in natural reading order and returns
index 9f9bbda..7954d46 100644 (file)
@@ -2,7 +2,7 @@
 #define SMART_NAVI_POSITION_SORT_H_
 
 #include <atspi/atspi.h>
-#include <Eina.h>
+#include <glib.h>
 
 
 /**
@@ -32,6 +32,6 @@
  *
  * @ret list List of lists
  */
-Eina_List *position_sort(const Eina_List *obj);
+GList *position_sort(const GList *obj);
 
 #endif /* end of include guard: POSITION_SORT_H_ */
index 3428c2d..9a7ef4c 100644 (file)
@@ -2,7 +2,6 @@
 #define __screen_reader_H__
 
 #include <atspi/atspi.h>
-#include <Eldbus.h>
 #include <tts.h>
 
 #define LAN_NAME 6
@@ -46,7 +45,7 @@ typedef struct _Service_Data
 
        //Set by tts
        tts_h tts;
-       Eina_List *available_languages;
+       GList *available_languages;
 
        char *text_to_say_info;
        char *current_value;
@@ -65,7 +64,6 @@ typedef struct _Service_Data
        AtspiAccessible  *clicked_widget;
 
        //Set by dbus
-       Eldbus_Proxy *proxy;
        char **last_tokens;
        char *available_requests;
        char **available_apps;
index 46da847..7344060 100644 (file)
@@ -18,7 +18,7 @@ extern int speed;
 
 bool tts_init(void *data);
 void state_changed_cb(tts_h tts, tts_state_e previous, tts_state_e current, void* user_data);
-Eina_Bool tts_speak(char *text_to_speak, Eina_Bool flush_switch);
+gboolean tts_speak(char *text_to_speak, gboolean flush_switch);
 void spi_stop(void *data);
 
 #endif /* SCREEN_READER_TTS_H_ */
index b1c4c1d..b1f412a 100755 (executable)
@@ -10,11 +10,6 @@ BuildRequires:  at-spi2-core
 BuildRequires:  at-spi2-core-devel
 BuildRequires:  cmake
 BuildRequires:  pkgconfig(capi-appfw-application)
-BuildRequires:  pkgconfig(ecore)
-BuildRequires:  pkgconfig(ecore-x)
-BuildRequires:  pkgconfig(eina)
-BuildRequires:  pkgconfig(eldbus)
-BuildRequires:  pkgconfig(elementary)
 BuildRequires:  pkgconfig(capi-system-device)
 BuildRequires:  pkgconfig(dlog)
 BuildRequires:  pkgconfig(vconf)
index aa0ffd1..482c29d 100644 (file)
@@ -2,13 +2,15 @@
 #include "position_sort.h"
 #include "object_cache.h"
 #include "logger.h"
+#include <glib.h>
+#include <stdlib.h>
 
 struct _FlatNaviContext {
      AtspiAccessible *root;
-     Eina_List *current;
-     Eina_List *current_line;
-     Eina_List *lines;
-     Eina_List *candidates;
+     GList *current;
+     GList *current_line;
+     GList *lines;
+     GList *candidates;
 };
 
 static const AtspiStateType required_states[] = {
@@ -50,80 +52,82 @@ static const AtspiRole interesting_roles[] = {
 /**
  * @brief Returns a list of all descendants objects
  *
- * @return Eina_List of AtspiAccessible* type. List Should be
+ * @return GList of AtspiAccessible* type. List Should be
  * be free with _accessible_list_free after usage
  *
  * @note obj parameter will also be included (in list head)
  * @note every obj has increased ref. call g_object_unref on every
  * object after usage.
  */
-static Eina_List*
+static GList*
 _descendants_list_get(AtspiAccessible *obj)
 {
-   Eina_List *ret = NULL, *toprocess = NULL;
+   GList *ret = NULL, *toprocess = NULL;
    int i;
 
    if (!obj) return NULL;
 
    // to keep all refcounts in ret list +1
    g_object_ref(obj);
-   toprocess = eina_list_append(toprocess, obj);
+   toprocess = g_list_append(toprocess, obj);
 
    while (toprocess)
      {
-        AtspiAccessible *obj = eina_list_data_get(toprocess);
-        toprocess = eina_list_remove_list(toprocess, toprocess);
+        AtspiAccessible *obj = toprocess->data;
+        toprocess = g_list_delete_link(toprocess, toprocess);
         int n = atspi_accessible_get_child_count(obj, NULL);
         for (i = 0; i < n; i++)
           {
              AtspiAccessible *child = atspi_accessible_get_child_at_index(obj, i, NULL);
-             if (child) toprocess = eina_list_append(toprocess, child);
+             if (child) toprocess = g_list_append(toprocess, child);
           }
 
-        ret = eina_list_append(ret, obj);
+        ret = g_list_append(ret, obj);
      }
 
    return ret;
 }
 
 static void
-_accessible_list_free(Eina_List *d)
+_accessible_list_free(GList *d)
 {
-   AtspiAccessible *obj;
-
-   EINA_LIST_FREE(d, obj)
-      g_object_unref(obj);
+   for (; d != NULL; d = d->next)
+      g_object_unref(d->data);
 }
 
 typedef struct {
-     Eina_List *success;
-     Eina_List *failure;
+     GList *success;
+     GList *failure;
 } FilterResult;
 
+typedef gboolean (*Filter_Each_Cb)(const void *container, void *data, void *fdata);
+
 static FilterResult
-_accessible_list_split_with_filter(Eina_List *list, Eina_Each_Cb cb, void *user_data)
+_accessible_list_split_with_filter(GList *list, Filter_Each_Cb cb, void *user_data)
 {
    FilterResult ret = { NULL, NULL};
-   Eina_List *l, *ln;
+   GList *l;
    AtspiAccessible *obj;
 
-   EINA_LIST_FOREACH_SAFE(list, l, ln, obj)
+   for (l = list; l; l = l->next)
      {
-        Eina_Bool res = cb(NULL, user_data, obj);
+        obj = l->data;
+        gboolean res = cb(NULL, user_data, obj);
         if (res)
-          eina_list_move_list(&ret.success, &list, l);
+          ret.success = g_list_append(ret.success, obj);
         else
-          eina_list_move_list(&ret.failure, &list, l);
+          ret.failure = g_list_append(ret.failure, obj);
      }
+   g_list_free(list);
 
    return ret;
 }
 
-static Eina_Bool
+static gboolean
 _filter_state_cb(const void *container, void *data, void *fdata)
 {
    AtspiStateType *state = data;
-   Eina_Bool ret = EINA_TRUE;
+   gboolean ret = TRUE;
    AtspiAccessible *obj = fdata;
    AtspiStateSet *ss = atspi_accessible_get_state_set(obj);
 
@@ -131,7 +135,7 @@ _filter_state_cb(const void *container, void *data, void *fdata)
      {
         if (!atspi_state_set_contains(ss, *state))
           {
-             ret = EINA_FALSE;
+             ret = FALSE;
              break;
           }
         state++;
@@ -141,18 +145,18 @@ _filter_state_cb(const void *container, void *data, void *fdata)
    return ret;
 }
 
-static Eina_Bool
+static gboolean
 _filter_role_cb(const void *container, void *data, void *fdata)
 {
    AtspiRole *role = data;
-   Eina_Bool ret = EINA_FALSE;
+   gboolean ret = FALSE;
    AtspiAccessible *obj = fdata;
 
    while (*role != ATSPI_ROLE_LAST_DEFINED)
      {
         if (atspi_accessible_get_role(obj, NULL) == *role)
           {
-             ret = EINA_TRUE;
+             ret = TRUE;
              break;
           }
         role++;
@@ -161,13 +165,13 @@ _filter_role_cb(const void *container, void *data, void *fdata)
    return ret;
 }
 
-static inline Eina_Bool
+static inline gboolean
 _rectangle_intersect(int x1, int y1, int w1, int h1, int x2, int y2, int w2, int h2)
 {
    return !(((y1 + h1) <= y2) || (y1 >= (y2 + h2)) || ((x1 + w1) <= x2) || (x1 >= (x2 + w2)));
 }
 
-static Eina_Bool
+static gboolean
 _filter_viewport_cb(const void *container, void *data, void *fdata)
 {
    const ObjectCache *oc, *ocr = data;
@@ -175,22 +179,22 @@ _filter_viewport_cb(const void *container, void *data, void *fdata)
 
    oc = object_cache_get(obj);
    if (!oc || !oc->bounds || (oc->bounds->height < 0) || (oc->bounds->width < 0))
-     return EINA_FALSE;
+     return FALSE;
 
    // at least one pixel of child have to be in viewport
    return _rectangle_intersect(ocr->bounds->x, ocr->bounds->y, ocr->bounds->width, ocr->bounds->height,
                                oc->bounds->x, oc->bounds->y, oc->bounds->width, oc->bounds->height);
 }
 
-static Eina_List*
+static GList*
 _flat_review_candidates_get(AtspiAccessible *root)
 {
-   Eina_List *desc, *ret = NULL;
+   GList *desc, *ret = NULL;
    FilterResult fr0;
    
    desc = _descendants_list_get(root);
 
-   DEBUG("Descendants: %d", eina_list_count(desc));
+   DEBUG("Descendants: %d", g_list_length(desc));
 
    // remove object that are not in root's viewport
    const ObjectCache *oc = object_cache_get(root);
@@ -211,10 +215,10 @@ _flat_review_candidates_get(AtspiAccessible *root)
 
    // get 'interesting' objects
    FilterResult fr2 = _accessible_list_split_with_filter(fr1.success, _filter_role_cb, (void*)interesting_roles);
-   ret = eina_list_merge(ret, fr2.success);
+   ret = g_list_concat(ret, fr2.success);
    _accessible_list_free(fr2.failure);
 
-   DEBUG("Candidates: %d", eina_list_count(ret));
+   DEBUG("Candidates: %d", g_list_length(ret));
 
    return ret;
 }
@@ -222,22 +226,26 @@ _flat_review_candidates_get(AtspiAccessible *root)
 static void
 debug(FlatNaviContext *ctx)
 {
-   Eina_List *l1, *l2, *line;
+   GList *l1, *l2, *line;
    AtspiAccessible *obj;
    int i, l = 0;
 
    DEBUG("===============================");
-   EINA_LIST_FOREACH(ctx->lines, l1, line)
+   for (l1 = ctx->lines; l1 != NULL; l1 = l1->next)
      {
+        line = l1->data;
         i = 0;
         DEBUG("==== Line %d ====", l);
-        EINA_LIST_FOREACH(line, l2, obj)
+        for (l2 = line; l2 != NULL; l2 = l2->next)
           {
+             obj = l2->data;
              char *name = atspi_accessible_get_name(obj, NULL);
              char *role = atspi_accessible_get_role_name(obj, NULL);
              const ObjectCache *oc = object_cache_get(obj);
+             if (oc) {
              DEBUG("%d %s %s, (%d %d %d %d)", i++, name, role,
                    oc->bounds->x, oc->bounds->y, oc->bounds->width, oc->bounds->height);
+             }
              if (name) g_free(name);
              if (role) g_free(role);
           }
@@ -257,7 +265,7 @@ FlatNaviContext *flat_navi_context_create(AtspiAccessible *root)
    ret->candidates = _flat_review_candidates_get(root);
    ret->lines = position_sort(ret->candidates); 
    ret->current_line = ret->lines;
-   ret->current = eina_list_data_get(ret->current_line);
+   ret->current = ret->current_line ? ret->current_line->data : NULL;
 
    debug(ret);
 
@@ -266,36 +274,39 @@ FlatNaviContext *flat_navi_context_create(AtspiAccessible *root)
 
 void flat_navi_context_free(FlatNaviContext *ctx)
 {
-   Eina_List *l;
-   EINA_LIST_FREE(ctx->lines, l)
-      eina_list_free(l);
+   GList *l;
+   for (l = ctx->lines; l != NULL; l = l->next)
+      g_list_free((GList*)l->data);
    _accessible_list_free(ctx->candidates);
    free(ctx);
 }
 
 AtspiAccessible *flat_navi_context_current_get(FlatNaviContext *ctx)
 {
-   if(!ctx) return NULL;
-
-   return eina_list_data_get(ctx->current);
+   if (!ctx || !ctx->lines) return NULL;
+   return ctx->current->data;
 }
 
-Eina_Bool flat_navi_context_current_set(FlatNaviContext *ctx, AtspiAccessible *target)
+gboolean flat_navi_context_current_set(FlatNaviContext *ctx, AtspiAccessible *target)
 {
-   if(!ctx || !target) return EINA_FALSE;
+   if(!ctx || !target) return FALSE;
 
-   Eina_List *l, *l2, *line;
+   GList *l, *l2, *line;
    AtspiAccessible *obj;
-   Eina_Bool found = EINA_FALSE;
+   gboolean found = FALSE;
 
-   EINA_LIST_FOREACH(ctx->lines, l, line)
+   for (l = ctx->lines; l; l = l->next)
      {
-        EINA_LIST_FOREACH(line, l2, obj)
-           if (obj == target)
-             {
-                found = EINA_TRUE;
-                break;
-             }
+        line = l->data;
+        for (l2 = line; l2; l2 = l2->next)
+          {
+             obj = l2->data;
+             if (obj == target)
+               {
+                  found = TRUE;
+                  break;
+               }
+          }
         if (found)
           {
              ctx->current_line = l;
@@ -309,106 +320,98 @@ Eina_Bool flat_navi_context_current_set(FlatNaviContext *ctx, AtspiAccessible *t
 
 AtspiAccessible *flat_navi_context_next(FlatNaviContext *ctx)
 {
-   if(!ctx) return NULL;
-
-   Eina_List *ret = eina_list_next(ctx->current);
+   if (!ctx || !ctx->lines) return NULL;
+   GList *ret = ctx->current->next;
 
    if (ret)
      {
         ctx->current = ret;
-        return eina_list_data_get(ctx->current);
+        return ctx->current->data;
      }
    return NULL;
 }
 
 AtspiAccessible *flat_navi_context_prev(FlatNaviContext *ctx)
 {
-   if(!ctx) return NULL;
-
-   Eina_List *ret = eina_list_prev(ctx->current);
+   if (!ctx || !ctx->lines) return NULL;
+   GList *ret = ctx->current->prev;
 
    if (ret)
      {
         ctx->current = ret;
-        return eina_list_data_get(ctx->current);
+        return ctx->current->data;
      }
    return NULL;
 }
 
 AtspiAccessible *flat_navi_context_first(FlatNaviContext *ctx)
 {
-   if(!ctx) return NULL;
-
-   Eina_List *ret = eina_list_data_get(ctx->current_line);
+   if (!ctx || !ctx->lines) return NULL;
+   GList *ret = ctx->current_line->data;
 
    if (ret)
      {
         ctx->current = ret;
-        return eina_list_data_get(ctx->current);
+        return ctx->current->data;
      }
    return NULL;
 }
 
 AtspiAccessible *flat_navi_context_last(FlatNaviContext *ctx)
 {
-   if(!ctx) return NULL;
-
-   Eina_List *ret = eina_list_last(ctx->current);
+   if (!ctx || !ctx->lines) return NULL;
+   GList *ret = g_list_last(ctx->current);
 
    if (ret)
      {
         ctx->current = ret;
-        return eina_list_data_get(ctx->current);
+        return ctx->current->data;
      }
    return NULL;
 }
 
 AtspiAccessible *flat_navi_context_line_next(FlatNaviContext *ctx)
 {
-   if(!ctx) return NULL;
+   if (!ctx || !ctx->lines) return NULL;
 
-   Eina_List *ret = eina_list_next(ctx->current_line);
+   GList *ret = ctx->current_line->next;
    if (!ret) return NULL;
 
    ctx->current_line = ret;
-   ctx->current = eina_list_data_get(ctx->current_line);
+   ctx->current = ctx->current_line->data;
 
-   return eina_list_data_get(ctx->current);
+   return ctx->current->data;
 }
 
 AtspiAccessible *flat_navi_context_line_prev(FlatNaviContext *ctx)
 {
-   if(!ctx) return NULL;
+   if (!ctx || !ctx->lines) return NULL;
 
-   Eina_List *ret = eina_list_prev(ctx->current_line);
+   GList *ret = ctx->current_line->prev;
    if (!ret) return NULL;
 
    ctx->current_line = ret;
-   ctx->current = eina_list_data_get(ctx->current_line);
+   ctx->current = ctx->current_line->data;
 
-   return eina_list_data_get(ctx->current);
+   return ctx->current->data;
 }
 
 AtspiAccessible *flat_navi_context_line_first(FlatNaviContext *ctx)
 {
-   if(!ctx) return NULL;
+   if (!ctx || !ctx->lines) return NULL;
 
-   Eina_List *ret = ctx->lines;
+   ctx->current_line = ctx->lines;
+   ctx->current = ctx->current_line->data;
 
-   ctx->current_line = ret;
-   ctx->current = eina_list_data_get(ctx->current_line);
-
-   return eina_list_data_get(ctx->current);
+   return ctx->current->data;
 }
 
 AtspiAccessible *flat_navi_context_line_last(FlatNaviContext *ctx)
 {
-   if(!ctx) return NULL;
+   if (!ctx || !ctx->lines) return NULL;
 
-   Eina_List *ret = eina_list_last(ctx->current_line);
-
-   ctx->current_line = ret;
-   ctx->current = eina_list_data_get(ctx->current_line);
+   ctx->current_line = g_list_last(ctx->current_line);
+   ctx->current = ctx->current_line->data;
 
-   return eina_list_data_get(ctx->current);
+   return ctx->current->data;
 }
index 618fcc6..e5e51cf 100755 (executable)
@@ -1,21 +1,13 @@
 #include <app.h>
-#include <eldbus-1/Eldbus.h>
-#include <Elementary.h>
 #include "navigator.h"
 #include "window_tracker.h"
 #include "logger.h"
 #include "screen_reader.h"
 
-#define A11Y_BUS "org.a11y.Bus"
-#define A11Y_INTERFACE "org.a11y.Bus"
-#define A11Y_PATH "/org/a11y/bus"
-#define A11Y_GET_ADDRESS "GetAddress"
-
 
 static bool app_create(void *data)
 {
     atspi_init();
-    elm_init(0, NULL);
     navigator_init();
     screen_reader_create_service(data);
 
@@ -31,7 +23,10 @@ static void app_terminate(void *data)
 int main(int argc, char **argv)
 {
     app_create(get_pointer_to_service_data_struct());
-    elm_run();
+
+    GMainLoop *ml = g_main_loop_new(NULL, FALSE);
+    g_main_loop_run (ml);
+
     app_terminate(get_pointer_to_service_data_struct());
 
     return 0;
index 7b6e4c1..2861aea 100644 (file)
@@ -1,5 +1,3 @@
-#include <Ecore_X.h>
-#include <Ecore.h>
 #include <math.h>
 #include <atspi/atspi.h>
 #include "logger.h"
@@ -31,7 +29,7 @@
    }
 
 static AtspiAccessible *top_window;
-static Eina_Bool _window_cache_builded;
+static gboolean _window_cache_builded;
 static FlatNaviContext *context;
 
 static void
@@ -137,7 +135,7 @@ static void
 _on_cache_builded(void *data)
 {
    DEBUG("Cache building");
-   _window_cache_builded = EINA_TRUE;
+   _window_cache_builded = TRUE;
    AtspiAccessible *pivot = NULL;
    if (context)
      {
@@ -158,7 +156,7 @@ static void
 _view_content_changed(AppTrackerEventType type, void *user_data)
 {
    DEBUG("View content changed");
-   _window_cache_builded = EINA_FALSE;
+   _window_cache_builded = FALSE;
    if (top_window)
       object_cache_build_async(top_window, 5, _on_cache_builded, NULL);
 }
@@ -175,7 +173,7 @@ static void on_window_activate(void *data, AtspiAccessible *window)
          app_tracker_callback_register(window, APP_TRACKER_EVENT_VIEW_CHANGED, _view_content_changed, NULL);
          name = atspi_accessible_get_name(window, NULL);
          ERROR("Window name: %s", name);
-         _window_cache_builded = EINA_FALSE;
+         _window_cache_builded = FALSE;
          object_cache_build_async(window, 5, _on_cache_builded, NULL);
          g_free(name);
       }
index 39a37c4..99b3cb5 100644 (file)
@@ -1,39 +1,38 @@
-#include <Eina.h>
-#include <Ecore.h>
-
 #include "object_cache.h"
 #include "logger.h"
 
-static Eina_Hash *cache;
-static Ecore_Idler *idler;
-static Eina_List *toprocess;
+#include <glib.h>
+
+static GHashTable *cache;
+static int idler = -1;
+static GList *toprocess;
 static void *user_data;
 static ObjectCacheReadyCb callback;
 static int bulk;
 
 static void
-_cache_item_free_cb(void *data)
+_cache_item_free_cb(gpointer data)
 {
+   if (!data) return;
    ObjectCache *co = data;
    g_free(co->bounds);
-   free(co);
+   g_free(co);
 }
 
 static void
-_list_obj_unref_and_free(Eina_List *toprocess)
+_list_obj_unref_and_free(GList *toprocess)
 {
-   AtspiAccessible *obj;
-   EINA_LIST_FREE(toprocess, obj)
-      g_object_unref(obj);
+   for (; toprocess; toprocess = toprocess->next)
+      g_object_unref(toprocess->data);
 }
 
 static void
 _object_cache_free_internal(void)
 {
-   if (idler)
+   if (idler > 0)
      {
-        ecore_idler_del(idler);
-        idler = NULL;
+        g_source_remove(idler);
+        idler = -1;
      }
    if (toprocess)
      {
@@ -42,32 +41,32 @@ _object_cache_free_internal(void)
      }
    if (cache)
      {
-        eina_hash_free(cache);
+        g_hash_table_destroy(cache);
         cache = NULL;
      }
 }
 
 /**
  * Returnes a list of all accessible object implementing AtkCompoment interface
- * Eina_List should be free with eina_list_free function.
+ * GList should be free with g_list_Free function.
  * Every AtspiAccessible in list should be unrefed with g_object_unref.
  */
-static Eina_List*
+static GList*
 _cache_candidates_list_prepare(AtspiAccessible *root)
 {
-   Eina_List *toprocess = NULL, *ret = NULL;
+   GList *toprocess = NULL, *ret = NULL;
    int n, i;
 
    if (!root) return NULL;
 
    // Keep ref counter +1 on every object in returned list
    g_object_ref(root);
-   toprocess = eina_list_append(toprocess, root);
+   toprocess = g_list_append(toprocess, root);
 
    while (toprocess)
      {
-        AtspiAccessible *obj = eina_list_data_get(toprocess);
-        toprocess = eina_list_remove_list(toprocess, toprocess);
+        AtspiAccessible *obj = toprocess->data;
+        toprocess = g_list_delete_link(toprocess, toprocess);
         if (!obj)
           continue;
         n = atspi_accessible_get_child_count(obj, NULL);
@@ -75,9 +74,9 @@ _cache_candidates_list_prepare(AtspiAccessible *root)
           {
              AtspiAccessible *cand = atspi_accessible_get_child_at_index(obj, i, NULL);
              if(cand)
-               toprocess = eina_list_append(toprocess, cand);
+               toprocess = g_list_append(toprocess, cand);
           }
-        ret = eina_list_append(ret, obj);
+        ret = g_list_append(ret, obj);
      }
 
    return ret;
@@ -92,7 +91,7 @@ _cache_item_construct(AtspiAccessible *obj)
    if (!obj)
      return NULL;
 
-   ret = calloc(1, sizeof(ObjectCache));
+   ret = g_new0(ObjectCache, 1);
    if (!ret)
      {
         ERROR("out-of memory");
@@ -111,39 +110,40 @@ _cache_item_construct(AtspiAccessible *obj)
    return ret;
 }
 
-static Eina_List*
-_cache_item_n_cache(Eina_List *objs, int count)
+static GList*
+_cache_item_n_cache(GList *objs, int count)
 {
    int i = 0;
-   Eina_List *ret = objs;
+   GList *ret = objs;
    ObjectCache *oc;
    AtspiAccessible *obj;
 
    for (i = 0; (i < count) && ret; i++)
      {
-        obj = eina_list_data_get(ret);
-        ret = eina_list_remove_list(ret, ret);
+        obj = ret->data;
+        ret = g_list_delete_link(ret, ret);
 
         oc = _cache_item_construct(obj);
         if (!oc) break;
 
-        eina_hash_add(cache, &obj, oc);
+        g_hash_table_insert (cache, obj, oc);
+
         g_object_unref(obj);
      }
 
    return ret;
 }
 
-static Eina_Hash*
+static GHashTable*
 _object_cache_new(void)
 {
-   return eina_hash_pointer_new(_cache_item_free_cb);
+   return g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, _cache_item_free_cb);
 }
 
 void
 object_cache_build(AtspiAccessible *root)
 {
-   Eina_List *objs;
+   GList *objs;
 
    _object_cache_free_internal();
    cache = _object_cache_new();
@@ -154,22 +154,22 @@ object_cache_build(AtspiAccessible *root)
      }
 
    objs = _cache_candidates_list_prepare(root);
-   _cache_item_n_cache(objs, eina_list_count(objs));
+   _cache_item_n_cache(objs, g_list_length(objs));
 
    return;
 }
 
-static Eina_Bool
+static gboolean
 _do_cache(void *data)
 {
    toprocess = _cache_item_n_cache(toprocess, bulk);
-   idler = NULL;
+   idler = -1;
 
    if (toprocess)
-     idler = ecore_idler_add(_do_cache, NULL);
+     idler = g_idle_add(_do_cache, NULL);
    else if (callback) callback(user_data);
 
-   return EINA_FALSE;
+   return FALSE;
 }
 
 void
@@ -189,7 +189,7 @@ object_cache_build_async(AtspiAccessible *root, int bulk_size, ObjectCacheReadyC
      }
 
    toprocess = _cache_candidates_list_prepare(root);
-   idler = ecore_idler_add(_do_cache, NULL);
+   idler = g_idle_add(_do_cache, NULL);
 
    return;
 }
@@ -204,7 +204,7 @@ const ObjectCache*
 object_cache_get(AtspiAccessible *obj)
 {
    ObjectCache *ret = NULL;
-   if (idler)
+   if (idler > 0)
      {
         ERROR("Invalid usage. Async cache build is ongoing...");
         return NULL;
@@ -220,12 +220,12 @@ object_cache_get(AtspiAccessible *obj)
           }
      }
 
-   ret = eina_hash_find(cache, &obj);
+   ret = g_hash_table_lookup(cache, obj);
    if (!ret)
      {
         // fallback to blocking d-bus call
         ret = _cache_item_construct(obj);
-        eina_hash_add(cache, &obj, ret);
+        g_hash_table_insert(cache, obj, ret);
      }
 
    return ret;
index ea7edd2..f08e022 100644 (file)
@@ -1,7 +1,5 @@
 #include <atspi/atspi.h>
 #include "logger.h"
-#include <Eina.h>
-
 
 /**
  * @brief Finds first leaf in object hierarchy with given states,
@@ -45,20 +43,20 @@ _pivot_with_state_top_down_find(AtspiAccessible *parent, AtspiStateType type)
 static AtspiAccessible*
 _pivot_with_state_flat_find(AtspiAccessible *parent, AtspiStateType type)
 {
-   Eina_List *candidates = NULL, *queue = NULL;
+   GList *candidates = NULL, *queue = NULL;
 
    // ref object to keep same ref count
    g_object_ref(parent);
-   queue = eina_list_append(queue, parent);
+   queue = g_list_append(queue, parent);
 
    while (queue)
      {
-        AtspiAccessible *obj = eina_list_data_get(queue);
-        queue = eina_list_remove_list(queue, queue);
+        AtspiAccessible *obj = queue->data;
+        queue = g_list_delete_link(queue, queue);
 
         int n = atspi_accessible_get_child_count(obj, NULL);
         if (n == 0)
-          candidates = eina_list_append(candidates, obj);
+          candidates = g_list_append(candidates, obj);
         else
           {
              int i;
@@ -66,7 +64,7 @@ _pivot_with_state_flat_find(AtspiAccessible *parent, AtspiStateType type)
                {
                   AtspiAccessible *child = atspi_accessible_get_child_at_index(obj, i, NULL);
                   if (child)
-                     queue = eina_list_append(queue, child);
+                     queue = g_list_append(queue, child);
                }
              g_object_unref(obj);
           }
@@ -75,15 +73,15 @@ _pivot_with_state_flat_find(AtspiAccessible *parent, AtspiStateType type)
    // FIXME sort by (x,y) first ??
    while (candidates)
      {
-        AtspiAccessible *obj = eina_list_data_get(candidates);
-        candidates = eina_list_remove_list(candidates, candidates);
+        AtspiAccessible *obj = candidates->data;
+        candidates = g_list_delete_link(candidates, candidates);
 
         AtspiStateSet *states = atspi_accessible_get_state_set(obj);
         if (states && atspi_state_set_contains(states, type))
           {
              g_object_unref(states);
              g_object_unref(obj);
-             eina_list_free(candidates);
+             g_list_free(candidates);
 
              return obj;
           }
index 5497128..973a5c7 100644 (file)
@@ -49,17 +49,18 @@ _sort_horizontally(const void *a, const void *b)
      return -1;
 }
 
-static Eina_List*
-_get_zones(const Eina_List *objs)
+static GList*
+_get_zones(const GList *objs)
 {
-   Eina_List *candidates = NULL;
-   const Eina_List *l;
+   GList *candidates = NULL;
+   const GList *l;
    AtspiAccessible *obj;
    AtspiComponent *comp;
    const ObjectCache *oc;
 
-   EINA_LIST_FOREACH(objs, l, obj)
+   for (l = objs; l; l = l->next)
      {
+        obj = l->data;
         if ((comp = atspi_accessible_get_component(obj)) != NULL)
           {
              oc = object_cache_get(obj);
@@ -73,7 +74,7 @@ _get_zones(const Eina_List *objs)
                    atspi_accessible_get_role_name(obj, NULL));
                   continue;
                }
-             candidates = eina_list_append(candidates, obj);
+             candidates = g_list_append(candidates, obj);
           }
         else
           DEBUG("No component interface: skipping %s %s",
@@ -82,22 +83,23 @@ _get_zones(const Eina_List *objs)
      }
 
    // Sort object by y - coordinate
-   return eina_list_sort(candidates, 0, _sort_vertically);
+   return g_list_sort(candidates, _sort_vertically);
 }
 
-static Eina_List*
-_get_lines(const Eina_List *objs)
+static GList*
+_get_lines(const GList *objs)
 {
-   Eina_List *line = NULL, *lines = NULL;
-   const Eina_List *l;
+   GList *line = NULL, *lines = NULL;
+   const GList *l;
    AtspiAccessible *obj;
    const ObjectCache *line_beg;
 
-   EINA_LIST_FOREACH(objs, l, obj)
+   for (l = objs; l; l = l->next)
      {
+        obj = l->data;
         if (!line) {
           // set first object in line
-          line = eina_list_append(line, obj);
+          line = g_list_append(line, obj);
           line_beg = object_cache_get(obj);
           continue;
         }
@@ -109,48 +111,49 @@ _get_lines(const Eina_List *objs)
         if ((line_beg->bounds->y + (int)(0.25 * (double)line_beg->bounds->height)) >
             oc->bounds->y)
           {
-             line = eina_list_append(line, obj);
+             line = g_list_append(line, obj);
              continue;
           }
         else
           {
              //finish line & set new line leader
-             lines = eina_list_append(lines, line);
+             lines = g_list_append(lines, line);
              line = NULL;
-             line = eina_list_append(line, obj);
+             line = g_list_append(line, obj);
              line_beg = object_cache_get(obj);
           }
      }
 
    // finish last line
-   if (line) lines = eina_list_append(lines, line);
+   if (line) lines = g_list_append(lines, line);
 
    return lines;
 }
 
-Eina_List *position_sort(const Eina_List *objs)
+GList *position_sort(const GList *objs)
 {
-   Eina_List *l, *line, *zones, *lines = NULL;
+   GList *l, *line, *zones, *lines = NULL;
    int i = 0;
 
    // Get list of objects occupying place on the screen
-   DEBUG("PositionSort: Candidates; %d", eina_list_count(objs));
+   DEBUG("PositionSort: Candidates; %d", g_list_length((GList*)objs));
    zones = _get_zones(objs);
 
    // Cluster all zones into lines - verticaly
-   DEBUG("PositionSort: Zones; %d", eina_list_count(zones));
+   DEBUG("PositionSort: Zones; %d", g_list_length(zones));
    lines = _get_lines(zones);
 
    // sort all zones in line - horizontaly
-   DEBUG("PositionSort: Lines; %d", eina_list_count(lines));
-   EINA_LIST_FOREACH(lines, l, line)
+   DEBUG("PositionSort: Lines; %d", g_list_length(lines));
+   for (l = lines; l; l = l->next)
      {
-        DEBUG("PositionSort: Line %d: %d items", i++, eina_list_count(line));
-        line = eina_list_sort(line, 0, _sort_horizontally);
-        eina_list_data_set(l, line);
+        line = l->data;
+        DEBUG("PositionSort: Line %d: %d items", i++, g_list_length(line));
+        line = g_list_sort(line, _sort_horizontally);
+        l->data = line;
      }
 
-   if (zones) eina_list_free(zones);
+   if (zones) g_list_free(zones);
 
    return lines;
 }
index e5065d5..655b768 100755 (executable)
@@ -63,7 +63,7 @@ int screen_reader_terminate_service(void *data)
 
        Service_Data *service_data = data;
 
-       int vconf_ret = vconf_set_bool("db/setting/accessibility/screen_reader", EINA_FALSE);
+       int vconf_ret = vconf_set_bool("db/setting/accessibility/screen_reader", FALSE);
        if(vconf_ret == 0)
        {
                DEBUG("TTS key set to false");
@@ -74,7 +74,7 @@ int screen_reader_terminate_service(void *data)
        }
 
        
-       vconf_ret = vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, EINA_FALSE);
+       vconf_ret = vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, FALSE);
        if(vconf_ret == 0)
        {
                DEBUG("TTS key set to false");
index ddc8852..5a87d55 100644 (file)
@@ -14,6 +14,7 @@
 #ifdef RUN_IPC_TEST_SUIT
     #include "test_suite/test_suite.h"
 #endif
+#include <stdlib.h>
 
 #define MEMORY_ERROR "Memory allocation failed"
 #define NO_VALUE_INTERFACE "No value interface present"
@@ -51,12 +52,12 @@ static void display_info(const AtspiEvent *event)
     DEBUG("--------------------------------------------------------");
 }
 
-Eina_Bool double_click_timer_cb(void *data)
+gboolean double_click_timer_cb(void *data)
 {
     Service_Data *sd = data;
     sd->clicked_widget = NULL;
 
-    return EINA_FALSE;
+    return FALSE;
 }
 
 static char *spi_get_atspi_accessible_basic_text_description(AtspiAccessible *obj)
@@ -301,7 +302,7 @@ void spi_event_listener_cb(AtspiEvent *event, void *user_data)
         ERROR("Can not prepare text to read");
         return;
     }
-    tts_speak(text_to_read, EINA_FALSE);
+    tts_speak(text_to_read, FALSE);
     free(text_to_read);
 }
 
index 5b32cb0..9dfbd86 100644 (file)
@@ -64,15 +64,15 @@ static void device_system_cb(device_callback_e type, void *value, void *user_dat
 
          if(status == DEVICE_BATTERY_LEVEL_LOW)
            {
-              tts_speak(BATTERY_LOW, EINA_TRUE);
+              tts_speak(BATTERY_LOW, TRUE);
            }
          else if(status == DEVICE_BATTERY_LEVEL_CRITICAL)
            {
-              tts_speak(BATTERY_CRITICAL, EINA_TRUE);
+              tts_speak(BATTERY_CRITICAL, TRUE);
            }
          else if(status == DEVICE_BATTERY_LEVEL_FULL)
            {
-              tts_speak(BATTERY_FULL, EINA_TRUE);
+              tts_speak(BATTERY_FULL, TRUE);
            }
       }
     else if(type == DEVICE_CALLBACK_BATTERY_CHARGING)
@@ -86,11 +86,11 @@ static void device_system_cb(device_callback_e type, void *value, void *user_dat
 
          if(charging)
            {
-              tts_speak(CHARGING, EINA_FALSE);
+              tts_speak(CHARGING, FALSE);
            }
          else
            {
-              tts_speak(NOT_CHARGING, EINA_FALSE);
+              tts_speak(NOT_CHARGING, FALSE);
            }
       }
     else if(type == DEVICE_CALLBACK_DISPLAY_STATE)
@@ -104,11 +104,11 @@ static void device_system_cb(device_callback_e type, void *value, void *user_dat
 
          if(state == DISPLAY_STATE_NORMAL)
            {
-              tts_speak(SCREEN_ON, EINA_FALSE);
+              tts_speak(SCREEN_ON, FALSE);
            }
          else if(state == DISPLAY_STATE_SCREEN_OFF)
            {
-              tts_speak(SCREEN_OFF, EINA_FALSE);
+              tts_speak(SCREEN_OFF, FALSE);
            }
       }
 }
index 5c1d0b2..961d619 100644 (file)
@@ -6,9 +6,10 @@
 */
 #define _GNU_SOURCE
 
-#include <Ecore.h>
 #include "screen_reader_tts.h"
 #include "logger.h"
+#include <stdlib.h>
+#include <stdio.h>
 #define MEMORY_ERROR "Memory allocation failed"
 
 // ---------------------------- DEBUG HELPERS ------------------------------
@@ -16,8 +17,8 @@
 #define FLUSH_LIMIT 1
 
 static int last_utt_id;
-static Eina_Bool pause_state = EINA_FALSE;
-static Eina_Bool flush_flag = EINA_FALSE;
+static gboolean pause_state = FALSE;
+static gboolean flush_flag = FALSE;
 
 static char * get_tts_error( int r )
 {
@@ -90,14 +91,14 @@ bool get_supported_voices_cb(tts_h tts, const char* language, tts_voice_type_e v
       {
          free(vi);
          ERROR(MEMORY_ERROR);
-         return  ECORE_CALLBACK_CANCEL;
+         return FALSE;
       }
 
     vi->voice_type = voice_type;
 
-    sd->available_languages = eina_list_append(sd->available_languages, vi);
+    sd->available_languages = g_list_append(sd->available_languages, vi);
 
-    return ECORE_CALLBACK_RENEW;
+    return TRUE;
 }
 
 static void __tts_test_utt_started_cb(tts_h tts, int utt_id, void* user_data)
@@ -110,11 +111,11 @@ static void __tts_test_utt_completed_cb(tts_h tts, int utt_id, void* user_data)
 {
     DEBUG("Utterance completed : utt id(%d) \n", utt_id);
     if(last_utt_id - utt_id > FLUSH_LIMIT)
-       flush_flag = EINA_TRUE;
+       flush_flag = TRUE;
     else
       {
          if(flush_flag)
-            flush_flag = EINA_FALSE;
+            flush_flag = FALSE;
       }
     return;
 }
@@ -142,55 +143,55 @@ bool tts_init(void *data)
     return true;
 }
 
-Eina_Bool tts_pause_set(Eina_Bool pause_switch)
+gboolean tts_pause_set(gboolean pause_switch)
 {
     Service_Data *sd = get_pointer_to_service_data_struct();
     if(!sd)
-       return EINA_FALSE;
+       return FALSE;
 
     if(pause_switch)
       {
          if(!tts_pause(sd->tts))
-            pause_state = EINA_TRUE;
+            pause_state = TRUE;
          else
-            return EINA_FALSE;
+            return FALSE;
       }
     else if(!pause_switch)
       {
          if(!tts_play(sd->tts))
-            pause_state = EINA_FALSE;
+            pause_state = FALSE;
          else
-            return EINA_FALSE;
+            return FALSE;
       }
-    return EINA_TRUE;
+    return TRUE;
 }
 
-Eina_Bool tts_speak(char *text_to_speak, Eina_Bool flush_switch)
+gboolean tts_speak(char *text_to_speak, gboolean flush_switch)
 {
     Service_Data *sd = get_pointer_to_service_data_struct();
     int speak_id;
 
     if(!sd)
-       return EINA_FALSE;
+       return FALSE;
 
     if(flush_flag || flush_switch)
        tts_stop(sd->tts);
 
     DEBUG( "tts_speak\n");
     DEBUG( "text to say:%s\n", text_to_speak);
-    if ( !text_to_speak ) return EINA_FALSE;
-    if ( !text_to_speak[0] ) return EINA_FALSE;
+    if ( !text_to_speak ) return FALSE;
+    if ( !text_to_speak[0] ) return FALSE;
 
     if(tts_add_text( sd->tts, text_to_speak, sd->language, TTS_VOICE_TYPE_AUTO, TTS_SPEED_AUTO, &speak_id))
-       return EINA_FALSE;
+       return FALSE;
 
     DEBUG("added id to:%d\n", speak_id);
     last_utt_id = speak_id;
 
-    return EINA_TRUE;
+    return TRUE;
 }
 
-Eina_Bool update_supported_voices(void *data)
+gboolean update_supported_voices(void *data)
 {
     DEBUG("START");
     tts_state_e state;
@@ -202,7 +203,7 @@ Eina_Bool update_supported_voices(void *data)
     if(res != TTS_ERROR_NONE)
       {
          DEBUG("CANNOT RETRIVE STATE");
-         return EINA_FALSE;
+         return FALSE;
       }
 
     if(state == TTS_STATE_READY)
@@ -211,11 +212,11 @@ Eina_Bool update_supported_voices(void *data)
       }
     else
       {
-         sd->update_language_list = EINA_TRUE;
+         sd->update_language_list = TRUE;
       }
 
     DEBUG("END");
-    return EINA_TRUE;
+    return TRUE;
 }
 
 void state_changed_cb(tts_h tts, tts_state_e previous, tts_state_e current, void* user_data)
index 6fd6948..3a9ecc0 100644 (file)
@@ -4,11 +4,11 @@
  *  Created on: Feb 19, 2014
  *      Author: m.skorupinsk
  */
-#include <Elementary.h>
 #include <vconf.h>
 #include "screen_reader_vconf.h"
 #include "screen_reader_spi.h"
 #include "logger.h"
+#include <stdio.h>
 
 #ifdef RUN_IPC_TEST_SUIT
        #include "test_suite/test_suite.h"
@@ -26,7 +26,7 @@ bool set_langauge(Service_Data *sd, const char *new_language, int new_voice)
 {
        DEBUG("START");
 
-       Eina_List *l;
+       GList *l;
        Voice_Info *vi;
 
        if(strncmp(sd->language, new_language, LAN_NAME - 1) == 0 && sd->voice_type == new_voice)
@@ -37,8 +37,9 @@ bool set_langauge(Service_Data *sd, const char *new_language, int new_voice)
                return true;
        }
 
-       EINA_LIST_FOREACH(sd->available_languages, l, vi)
+       for (l = sd->available_languages; l; l = l->next)
        {
+               vi = l->data;
                DEBUG("foreach %s <- %s", vi->language, new_language);
                if(strncmp(vi->language, new_language, LAN_NAME - 1) == 0 &&
                                vi->voice_type == new_voice)
@@ -132,7 +133,7 @@ void app_termination_cb(keynode_t *node, void *user_data)
 
        if(service_data->run_service == 0)
        {
-               elm_exit();
+               atspi_exit();
        }
 
        DEBUG("END");
index 8387298..9d4be52 100644 (file)
@@ -1,7 +1,5 @@
-#include <Ecore.h>
-#include <Ecore_Evas.h>
-#include <Evas.h>
 #include <atspi/atspi.h>
+#include <stdio.h>
 #include "logger.h"
 #include "screen_reader_tts.h"
 #include "screen_reader_haptic.h"
@@ -12,7 +10,7 @@
 
 #define ITEMS_NOTIFICATION "Visible items from %d to %d"
 
-static Eina_Bool status = EINA_FALSE;
+static gboolean status = FALSE;
 
 static void _smart_notification_focus_chain_end(void);
 static void _smart_notification_realized_items(int start_idx, int end_idx);
@@ -103,12 +101,12 @@ _scroll_event_cb(AtspiEvent     *event, void *user_data)
    if (!strcmp(event->type, "object:scroll-start"))
      {
         DEBUG("Scrolling started");
-        tts_speak("Scrolling started", EINA_TRUE);
+        tts_speak("Scrolling started", TRUE);
      }
    else if (!strcmp(event->type, "object:scroll-end"))
      {
         DEBUG("Scrolling finished");
-        tts_speak("Scrolling finished", EINA_FALSE);
+        tts_speak("Scrolling finished", FALSE);
         get_realized_items_count((AtspiAccessible *)event->source, &start_index, &end_index);
         _smart_notification_realized_items(start_index, end_index);
      }
@@ -131,7 +129,7 @@ void smart_notification_init(void)
 
     haptic_module_init();
 
-    status = EINA_TRUE;
+    status = TRUE;
 }
 
 /**
@@ -140,7 +138,7 @@ void smart_notification_init(void)
  */
 void smart_notification_shutdown(void)
 {
-    status = EINA_FALSE;
+    status = FALSE;
 }
 
 /**
@@ -173,5 +171,5 @@ static void _smart_notification_realized_items(int start_idx, int end_idx)
 
     snprintf(buf, sizeof(buf), ITEMS_NOTIFICATION, start_idx, end_idx);
 
-    tts_speak(strdup(buf), EINA_FALSE);
+    tts_speak(strdup(buf), FALSE);
 }
index 5b59148..2a07c1d 100644 (file)
@@ -2,51 +2,50 @@
 #include "position_sort.h"
 #include "logger.h"
 
-static Eina_List*
+static GList*
 _atspi_children_list_get(AtspiAccessible *parent)
 {
-   Eina_List *ret = NULL;
+   GList *ret = NULL;
    int count = atspi_accessible_get_child_count(parent, NULL);
    int i;
 
    for (i = 0; i < count; i++)
      {
         AtspiAccessible *child = atspi_accessible_get_child_at_index(parent, i, NULL);
-        if (child) ret = eina_list_append(ret, child);
+        if (child) ret = g_list_append(ret, child);
      }
 
    return ret;
 }
 
 static void
-_atspi_children_list_free(Eina_List *children)
+_atspi_children_list_free(GList *children)
 {
-   AtspiAccessible *obj;
-
-   EINA_LIST_FREE(children, obj)
-      g_object_unref(obj);
+   for (; children; children = children->next)
+      g_object_unref(children->data);
 }
 
-static Eina_List*
-_flat_review_get(Eina_List *tosort)
+static GList*
+_flat_review_get(GList *tosort)
 {
-   Eina_List *ret = NULL, *lines, *l, *line;
+   GList *ret = NULL, *lines, *l, *line;
 
    lines = position_sort(tosort);
 
-   EINA_LIST_FOREACH(lines, l, line)
+   for (l = lines; l; l = l->next)
      {
-        ret = eina_list_merge(ret, line);
+        line = l->data;
+        ret = g_list_concat(ret, line);
      }
 
-   eina_list_free(lines);
+   g_list_free(lines);
 
    return ret;
 }
 
 AtspiAccessible *structural_navi_same_level_next(AtspiAccessible *current)
 {
-    AtspiAccessible *parent;
+    AtspiAccessible *parent, *ret = NULL;
     AtspiRole role;
 
     parent = atspi_accessible_get_parent(current, NULL);
@@ -55,13 +54,13 @@ AtspiAccessible *structural_navi_same_level_next(AtspiAccessible *current)
     role = atspi_accessible_get_role(parent, NULL);
     if (role != ATSPI_ROLE_DESKTOP_FRAME)
       {
-         Eina_List *children = _atspi_children_list_get(parent);
-         Eina_List *me = eina_list_data_find_list(children, current);
-         Eina_List *sorted = _flat_review_get(children);
-         me = eina_list_data_find_list(sorted, current);
-         AtspiAccessible *ret = eina_list_data_get(eina_list_next(me));
+         GList *children = _atspi_children_list_get(parent);
+         GList *sorted = _flat_review_get(children);
+         GList *me = g_list_find(sorted, current);
+         if (me)
+           ret = me->next ? me->next->data : NULL;
 
-         eina_list_free(sorted);
+         if (sorted) g_list_free(sorted);
          _atspi_children_list_free(children);
 
          return ret;
@@ -71,7 +70,7 @@ AtspiAccessible *structural_navi_same_level_next(AtspiAccessible *current)
 
 AtspiAccessible *structural_navi_same_level_prev(AtspiAccessible *current)
 {
-    AtspiAccessible *parent;
+    AtspiAccessible *parent, *ret = NULL;
     AtspiRole role;
 
     parent = atspi_accessible_get_parent(current, NULL);
@@ -80,12 +79,13 @@ AtspiAccessible *structural_navi_same_level_prev(AtspiAccessible *current)
     role = atspi_accessible_get_role(parent, NULL);
     if (role != ATSPI_ROLE_DESKTOP_FRAME)
       {
-         Eina_List *children = _atspi_children_list_get(parent);
-         Eina_List *sorted = _flat_review_get(children);
-         Eina_List *me = eina_list_data_find_list(sorted, current);
-         AtspiAccessible *ret = eina_list_data_get(eina_list_prev(me));
+         GList *children = _atspi_children_list_get(parent);
+         GList *sorted = _flat_review_get(children);
+         GList *me = g_list_find(sorted, current);
+         if (me)
+           ret = me->prev ? me->prev->data : NULL;
 
-         eina_list_free(sorted);
+         if (sorted) g_list_free(sorted);
          _atspi_children_list_free(children);
 
          return ret;
@@ -113,12 +113,12 @@ AtspiAccessible *structural_navi_level_down(AtspiAccessible *current)
 {
    AtspiAccessible *ret;
 
-   Eina_List *children = _atspi_children_list_get(current);
-   Eina_List *sorted = _flat_review_get(children);
+   GList *children = _atspi_children_list_get(current);
+   GList *sorted = _flat_review_get(children);
 
-   ret = eina_list_data_get(sorted);
+   ret = sorted ? sorted->data : NULL;
 
-   eina_list_free(sorted);
+   if (sorted) g_list_free(sorted);
    _atspi_children_list_free(children);
 
    return ret;
index 89de7eb..9673664 100644 (file)
@@ -14,13 +14,9 @@ pkg_check_modules(tests REQUIRED
     gobject-2.0
     dlog
     dbus-1
-    ecore
-    eldbus
-    eina
     tts
     check
     vconf
-    elementary
 )
 
 FOREACH(flag ${tests_CFLAGS})
index 55bb464..42d514d 100644 (file)
@@ -251,7 +251,6 @@ AtspiRect *atspi_component_get_extents (AtspiComponent *component, AtspiCoordTyp
 
 AtspiAccessible *atspi_create_accessible()
 {
-    g_type_init();
     AtspiAccessible *obj = g_object_new(ATSPI_ACCESSIBLE_OBJECT_TYPE, 0);
     obj->children = NULL;
     return obj;
@@ -337,3 +336,8 @@ AtspiAccessible * atspi_relation_get_target (AtspiRelation *obj, gint i)
 {
     return NULL;
 }
+
+int atspi_exit(void)
+{
+   return 1;
+}
index f41c031..56c91fe 100644 (file)
@@ -379,5 +379,6 @@ GArray * atspi_accessible_get_relation_set (AtspiAccessible *obj, GError **error
 AtspiRelationType atspi_relation_get_relation_type (AtspiRelation *obj);
 gint atspi_relation_get_n_targets (AtspiRelation *obj);
 AtspiAccessible * atspi_relation_get_target (AtspiRelation *obj, gint i);
+int atspi_exit(void);
 
 #endif /*__ATSPI_H__*/
index 5c03f16..367c684 100644 (file)
@@ -3,8 +3,8 @@
 #include "flat_navi.h"
 #include <check.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <atspi/atspi.h>
-#include <Eina.h>
 
 static AtspiAccessible *root;
 static AtspiAccessible *child1;
@@ -54,7 +54,6 @@ void setup_flat_navi()
     atspi_accessible_add_child(root, child2);
     atspi_accessible_add_child(root, child3);
     atspi_accessible_add_child(root, child4);
-    eina_init();
     atspi_alloc_memory();
     ctx = flat_navi_context_create(root);
 }
@@ -63,7 +62,6 @@ void teardown_flat_navi()
 {
     flat_navi_context_free(ctx);
     atspi_free_memory();
-    eina_shutdown();
     atspi_delete_accessible(root);
     teardown();
 }
@@ -272,22 +270,22 @@ END_TEST
 
 START_TEST(spi_flat_navi_context_current_set_null_parameters)
 {
-    Eina_Bool ret = flat_navi_context_current_set(NULL, NULL);
-    fail_if(ret != EINA_FALSE);
+    gboolean ret = flat_navi_context_current_set(NULL, NULL);
+    fail_if(ret != FALSE);
     ret = flat_navi_context_current_set(ctx, NULL);
-    fail_if(ret != EINA_FALSE);
+    fail_if(ret != FALSE);
     AtspiAccessible *last = flat_navi_context_last(ctx);
     ret = flat_navi_context_current_set(NULL, last);
-    fail_if(ret != EINA_FALSE);
+    fail_if(ret != FALSE);
 }
 END_TEST
 
 START_TEST(spi_flat_navi_context_current_set_valid_parameters)
 {
     AtspiAccessible *last = flat_navi_context_last(ctx);
-    Eina_Bool ret = flat_navi_context_current_set(ctx, last);
+    gboolean ret = flat_navi_context_current_set(ctx, last);
     AtspiAccessible *current = flat_navi_context_current_get(ctx);
-    fail_if(ret != EINA_TRUE || current != last);
+    fail_if(ret != TRUE || current != last);
 }
 END_TEST