change config options to a configurable file from definition 22/134622/2
authorJengHyun Kang <jhyuni.kang@samsung.com>
Mon, 19 Jun 2017 12:05:59 +0000 (21:05 +0900)
committerJeongHyun Kang <jhyuni.kang@samsung.com>
Tue, 20 Jun 2017 10:34:11 +0000 (10:34 +0000)
Change-Id: Ic4cc5f3f778b7fedebdfefa5268abb07dcd93ddd

src/e_mod_gesture_conf.c
src/e_mod_gesture_events.c
src/e_mod_main.c
src/e_mod_main.h

index 4a7fe80..d2e74e1 100644 (file)
@@ -9,6 +9,7 @@ _e_gesture_conf_value_check(E_Gesture_Config_Data* gconfig)
    EINA_SAFETY_ON_NULL_RETURN(gconfig->conf);
 
    conf = gconfig->conf;
+
    if (!conf->key_device_name) conf->key_device_name = strdup(E_GESTURE_KEYBOARD_DEVICE);
    if (conf->edge_swipe.time_done <= 0.0) conf->edge_swipe.time_done = E_GESTURE_EDGE_SWIPE_DONE_TIME;
    if (conf->edge_swipe.time_begin <= 0.0) conf->edge_swipe.time_begin = E_GESTURE_EDGE_SWIPE_START_TIME;
@@ -17,6 +18,17 @@ _e_gesture_conf_value_check(E_Gesture_Config_Data* gconfig)
    if (conf->edge_swipe.max_length <= 0) conf->edge_swipe.max_length = E_GESTURE_EDGE_SWIPE_DIFF_SUCCESS;
    if (conf->edge_swipe.compose_key <= 0) conf->edge_swipe.compose_key = E_GESTURE_EDGE_SWIPE_COMBINE_KEY;
    if (conf->edge_swipe.back_key <= 0) conf->edge_swipe.back_key = E_GESTURE_EDGE_SWIPE_BACK_KEY;
+
+   if (conf->tap.repeats_max <= 0) conf->tap.repeats_max = E_GESTURE_TAP_REPEATS_MAX;
+   if (conf->tap.time_start <= 0.0) conf->tap.time_start = E_GESTURE_TAP_START_TIME;
+   if (conf->tap.time_done <= 0.0) conf->tap.time_done = E_GESTURE_TAP_DONE_TIME;
+   if (conf->tap.time_interval <= 0.0) conf->tap.time_interval = E_GESTURE_TAP_INTERVAL_TIME;
+   if (conf->tap.moving_range <= 0) conf->tap.moving_range = E_GESTURE_TAP_MOVING_RANGE;
+
+   if (conf->pan.time_start <= 0.0) conf->pan.time_start = E_GESTURE_PAN_START_TIME;
+   if (conf->pan.moving_range <= 0) conf->pan.moving_range = E_GESTURE_PAN_MOVING_RANGE;
+
+   if (conf->pinch.moving_distance_range <= 0.0) conf->pinch.moving_distance_range = E_GESTURE_PINCH_MOVING_DISTANCE_RANGE;
 }
 
 void
@@ -28,6 +40,8 @@ e_gesture_conf_init(E_Gesture_Config_Data *gconfig)
 #define T E_Gesture_Conf_Edd
 #define D gconfig->conf_edd
    E_CONFIG_VAL(D, T, key_device_name, STR);
+   E_CONFIG_VAL(D, T, event_keep, CHAR);
+
    E_CONFIG_VAL(D, T, edge_swipe.time_done, DOUBLE);
    E_CONFIG_VAL(D, T, edge_swipe.time_begin, DOUBLE);
    E_CONFIG_VAL(D, T, edge_swipe.area_offset, INT);
@@ -36,7 +50,17 @@ e_gesture_conf_init(E_Gesture_Config_Data *gconfig)
    E_CONFIG_VAL(D, T, edge_swipe.compose_key, INT);
    E_CONFIG_VAL(D, T, edge_swipe.back_key, INT);
    E_CONFIG_VAL(D, T, edge_swipe.default_enable_back, CHAR);
-   E_CONFIG_VAL(D, T, edge_swipe.event_keep, CHAR);
+
+   E_CONFIG_VAL(D, T, tap.repeats_max, INT);
+   E_CONFIG_VAL(D, T, tap.time_start, DOUBLE);
+   E_CONFIG_VAL(D, T, tap.time_done, DOUBLE);
+   E_CONFIG_VAL(D, T, tap.time_interval, DOUBLE);
+   E_CONFIG_VAL(D, T, tap.moving_range, INT);
+
+   E_CONFIG_VAL(D, T, pan.time_start, DOUBLE);
+   E_CONFIG_VAL(D, T, pan.moving_range, INT);
+
+   E_CONFIG_VAL(D, T, pinch.moving_distance_range, DOUBLE);
 
 #undef T
 #undef D
index d726941..bed157e 100644 (file)
@@ -190,7 +190,6 @@ _e_gesture_send_edge_swipe(int fingers, int x, int y, int edge, struct wl_client
    enum tizen_gesture_edge dir = 0;
    Ecore_Event_Mouse_Button *ev_cancel;
    E_Gesture_Conf_Edd *conf = gesture->config->conf;
-   E_Gesture_Event_Edge_Swipe *edge_swipes = &gesture->gesture_events.edge_swipes;
 
    switch (edge)
      {
@@ -208,7 +207,7 @@ _e_gesture_send_edge_swipe(int fingers, int x, int y, int edge, struct wl_client
            break;
      }
 
-   if (edge_swipes->event_keep)
+   if (gesture->gesture_events.event_keep)
      {
         _e_gesture_event_drop();
      }
@@ -270,7 +269,7 @@ _e_gesture_timer_edge_swipe_start(void *data)
        (edge_swipes->edge == E_GESTURE_EDGE_BOTTOM && !edge_swipes->fingers[idx].edge[E_GESTURE_EDGE_BOTTOM].client) ||
        (edge_swipes->edge == E_GESTURE_EDGE_RIGHT && !edge_swipes->fingers[idx].edge[E_GESTURE_EDGE_RIGHT].client))
      {
-        if (edge_swipes->event_keep)
+        if (gesture->gesture_events.event_keep)
           _e_gesture_event_flush();
         _e_gesture_edge_swipe_cancel();
      }
@@ -284,7 +283,7 @@ _e_gesture_timer_edge_swipe_done(void *data)
 
    GTDBG("Edge_Swipe done timer is expired. Currently alived edge_swipe fingers: 0x%x\n", edge_swipes->enabled_finger);
 
-   if (edge_swipes->event_keep)
+   if (gesture->gesture_events.event_keep)
      _e_gesture_event_flush();
    _e_gesture_edge_swipe_cancel();
 
@@ -333,7 +332,7 @@ _e_gesture_process_edge_swipe_down(Ecore_Event_Mouse_Button *ev)
           }
         else
           {
-             if (edge_swipes->event_keep)
+             if (gesture->gesture_events.event_keep)
                _e_gesture_event_flush();
              _e_gesture_edge_swipe_cancel();
           }
@@ -343,7 +342,7 @@ _e_gesture_process_edge_swipe_down(Ecore_Event_Mouse_Button *ev)
         edge_swipes->enabled_finger &= ~(1 << (gesture->gesture_events.num_pressed - 1));
         if (edge_swipes->start_timer == NULL)
           {
-             if (edge_swipes->event_keep)
+             if (gesture->gesture_events.event_keep)
                _e_gesture_event_flush();
              _e_gesture_edge_swipe_cancel();
           }
@@ -369,7 +368,7 @@ _e_gesture_process_edge_swipe_move(Ecore_Event_Mouse_Move *ev)
         case E_GESTURE_EDGE_TOP:
            if (diff.x > conf->edge_swipe.min_length)
              {
-                if (edge_swipes->event_keep)
+                if (gesture->gesture_events.event_keep)
                   _e_gesture_event_flush();
                 _e_gesture_edge_swipe_cancel();
                 break;
@@ -382,7 +381,7 @@ _e_gesture_process_edge_swipe_move(Ecore_Event_Mouse_Move *ev)
         case E_GESTURE_EDGE_LEFT:
            if (diff.y > conf->edge_swipe.min_length)
              {
-                if (edge_swipes->event_keep)
+                if (gesture->gesture_events.event_keep)
                   _e_gesture_event_flush();
                 _e_gesture_edge_swipe_cancel();
                 break;
@@ -395,7 +394,7 @@ _e_gesture_process_edge_swipe_move(Ecore_Event_Mouse_Move *ev)
         case E_GESTURE_EDGE_BOTTOM:
            if (diff.x > conf->edge_swipe.min_length)
              {
-                if (edge_swipes->event_keep)
+                if (gesture->gesture_events.event_keep)
                   _e_gesture_event_flush();
                 _e_gesture_edge_swipe_cancel();
                 break;
@@ -408,7 +407,7 @@ _e_gesture_process_edge_swipe_move(Ecore_Event_Mouse_Move *ev)
         case E_GESTURE_EDGE_RIGHT:
            if (diff.y > conf->edge_swipe.min_length)
              {
-                if (edge_swipes->event_keep)
+                if (gesture->gesture_events.event_keep)
                   _e_gesture_event_flush();
                 _e_gesture_edge_swipe_cancel();
                 break;
@@ -427,9 +426,7 @@ _e_gesture_process_edge_swipe_move(Ecore_Event_Mouse_Move *ev)
 static void
 _e_gesture_process_edge_swipe_up(Ecore_Event_Mouse_Button *ev)
 {
-   E_Gesture_Event_Edge_Swipe *edge_swipes = &gesture->gesture_events.edge_swipes;
-
-   if (edge_swipes->event_keep)
+   if (gesture->gesture_events.event_keep)
      _e_gesture_event_flush();
    _e_gesture_edge_swipe_cancel();
 }
@@ -825,10 +822,11 @@ unsigned int
 e_gesture_util_tap_max_repeats_get(unsigned int fingers)
 {
    E_Gesture_Event_Tap *taps = &gesture->gesture_events.taps;
+   E_Gesture_Conf_Edd *conf = gesture->config->conf;
    int i;
    unsigned int max = 0;
 
-   for (i = 0; i < E_GESTURE_TAP_REPEATS_MAX + 1; i++)
+   for (i = 0; i < conf->tap.repeats_max + 1; i++)
      {
         if (taps->fingers[fingers].repeats[i].client) max = i;
      }
@@ -942,15 +940,16 @@ static void
 _e_gesture_tap_start(void)
 {
    E_Gesture_Event_Tap *taps = &gesture->gesture_events.taps;
+   E_Gesture_Conf_Edd *conf = gesture->config->conf;
 
    taps->state = E_GESTURE_TAP_STATE_START;
    if (!taps->start_timer)
      {
-        taps->start_timer = ecore_timer_add(E_GESTURE_TAP_START_TIME, _e_gesture_timer_tap_start, NULL);
+        taps->start_timer = ecore_timer_add(conf->tap.time_start, _e_gesture_timer_tap_start, NULL);
      }
    if (!taps->done_timer)
      {
-        taps->done_timer = ecore_timer_add(E_GESTURE_TAP_DONE_TIME, _e_gesture_timer_tap_done, NULL);
+        taps->done_timer = ecore_timer_add(conf->tap.time_done, _e_gesture_timer_tap_done, NULL);
      }
 }
 
@@ -958,8 +957,9 @@ static void
 _e_gesture_tap_done(void)
 {
    E_Gesture_Event_Tap *taps = &gesture->gesture_events.taps;
+   E_Gesture_Conf_Edd *conf = gesture->config->conf;
 
-   if (taps->repeats >= E_GESTURE_TAP_REPEATS_MAX)
+   if (taps->repeats >= conf->tap.repeats_max)
      _e_gesture_tap_cancel();
 
    if (!taps->fingers[taps->enabled_finger].enabled)
@@ -984,7 +984,7 @@ _e_gesture_tap_done(void)
           {
              if (!taps->interval_timer)
                {
-                  taps->interval_timer = ecore_timer_add(E_GESTURE_TAP_INTERVAL_TIME, _e_gesture_timer_tap_interval, NULL);
+                  taps->interval_timer = ecore_timer_add(conf->tap.time_interval, _e_gesture_timer_tap_interval, NULL);
                }
           }
      }
@@ -1048,6 +1048,7 @@ static void
 _e_gesture_process_tap_move(Ecore_Event_Mouse_Move *ev)
 {
    E_Gesture_Event_Tap *taps = &gesture->gesture_events.taps;
+   E_Gesture_Conf_Edd *conf = gesture->config->conf;
    Rect current_rect = {0, };
    int xx1, yy1, xx2, yy2;
 
@@ -1061,10 +1062,10 @@ _e_gesture_process_tap_move(Ecore_Event_Mouse_Move *ev)
    xx2 = taps->base_rect.x2 - current_rect.x2;
    yy2 = taps->base_rect.y2 - current_rect.y2;
 
-   if (ABS(xx1) > E_GESTURE_TAP_MOVING_RANGE ||
-       ABS(yy1) > E_GESTURE_TAP_MOVING_RANGE ||
-       ABS(xx2) > E_GESTURE_TAP_MOVING_RANGE ||
-       ABS(yy2) > E_GESTURE_TAP_MOVING_RANGE)
+   if (ABS(xx1) > conf->tap.moving_range ||
+       ABS(yy1) > conf->tap.moving_range ||
+       ABS(xx2) > conf->tap.moving_range ||
+       ABS(yy2) > conf->tap.moving_range)
      {
         GTDBG("%d finger moving too large diff: (%d, %d)(%d, %d)\n", ev->multi.device, xx1, yy1, xx2, yy2);
         _e_gesture_tap_cancel();
@@ -1347,7 +1348,7 @@ e_gesture_process_events(void *event, int type)
      {
         if (gesture->grabbed_gesture & TIZEN_GESTURE_TYPE_TAP ||
              ((gesture->grabbed_gesture & TIZEN_GESTURE_TYPE_EDGE_SWIPE) &&
-              gesture->gesture_events.edge_swipes.event_keep))
+              gesture->gesture_events.event_keep))
           gesture->event_state = E_GESTURE_EVENT_STATE_KEEP;
         gesture->gesture_filter = E_GESTURE_TYPE_ALL & ~gesture->grabbed_gesture;
      }
index de5833d..896bf55 100644 (file)
@@ -102,7 +102,7 @@ _e_gesture_edge_swipe_current_list_check(void)
         gev->edge_swipes.fingers[i].enabled = EINA_FALSE;
      }
    gesture->grabbed_gesture &= ~TIZEN_GESTURE_TYPE_EDGE_SWIPE;
-   if (gev->edge_swipes.event_keep) gesture->event_state = E_GESTURE_EVENT_STATE_PROPAGATE;
+   if (gev->event_keep) gesture->event_state = E_GESTURE_EVENT_STATE_PROPAGATE;
 }
 
 static void
@@ -469,7 +469,7 @@ _e_gesture_cb_grab_edge_swipe(struct wl_client *client,
    e_gesture_add_client_destroy_listener(client, TIZEN_GESTURE_TYPE_EDGE_SWIPE, fingers, edge & ~grabbed_edge, 0);
    gesture->grabbed_gesture |= TIZEN_GESTURE_TYPE_EDGE_SWIPE;
    gev->edge_swipes.fingers[fingers].enabled = EINA_TRUE;
-   if (gev->edge_swipes.event_keep) gesture->event_state = E_GESTURE_EVENT_STATE_KEEP;
+   if (gev->event_keep) gesture->event_state = E_GESTURE_EVENT_STATE_KEEP;
    gev->edge_swipes.enabled_edge |= grabbed_edge;
 
    if (!grabbed_edge)
@@ -877,8 +877,8 @@ static E_Gesture_Config_Data *
 _e_gesture_init(E_Module *m)
 {
    E_Gesture_Config_Data *gconfig = NULL;
-   gesture = E_NEW(E_Gesture, 1);
 
+   gesture = E_NEW(E_Gesture, 1);
    if (!gesture)
      {
         GTERR("Failed to allocate memory for gesture !\n");
@@ -905,10 +905,24 @@ _e_gesture_init(E_Module *m)
    EINA_SAFETY_ON_NULL_GOTO(gconfig->conf, err);
    gesture->config = gconfig;
 
-   GTDBG("config value\n");
-   GTDBG("keyboard: %s, time_done: %lf, time_begin: %lf\n", gconfig->conf->key_device_name, gconfig->conf->edge_swipe.time_done, gconfig->conf->edge_swipe.time_begin);
-   GTDBG("area_offset: %d, min_length: %d, max_length: %d\n", gconfig->conf->edge_swipe.area_offset, gconfig->conf->edge_swipe.min_length, gconfig->conf->edge_swipe.max_length);
-   GTDBG("compose key: %d, back: %d, default: %d\n", gconfig->conf->edge_swipe.compose_key, gconfig->conf->edge_swipe.back_key, gconfig->conf->edge_swipe.default_enable_back);
+   GTDBG("gesture config value\n");
+   GTDBG("key_device_name: %s, event_keep: %d\n", gconfig->conf->key_device_name, gconfig->conf->event_keep);
+   GTDBG("edge_swipe\n");
+   GTDBG("\ttime_done: %lf, time_begin: %lf, area_offset: %d\n", gconfig->conf->edge_swipe.time_done,
+                                                                 gconfig->conf->edge_swipe.time_begin,
+                                                                 gconfig->conf->edge_swipe.area_offset);
+   GTDBG("\tmin_length: %d, max_length: %d, compose_key: %d, back_key: %d\n", gconfig->conf->edge_swipe.min_length,
+                                                                              gconfig->conf->edge_swipe.max_length,
+                                                                              gconfig->conf->edge_swipe.compose_key,
+                                                                              gconfig->conf->edge_swipe.back_key);
+   GTDBG("tap\n");
+   GTDBG("\trepeats_max: %d, moving_range: %d\n", gconfig->conf->tap.repeats_max,
+                                                  gconfig->conf->tap.moving_range);
+   GTDBG("\ttime_start: %lf, time_done: %lf, time_interval: %lf\n", gconfig->conf->tap.time_start,
+                                                                    gconfig->conf->tap.time_done,
+                                                                    gconfig->conf->tap.time_interval);
+   GTDBG("pan time_start: %lf, moving_range: %d\n", gconfig->conf->pan.time_start, gconfig->conf->pan.moving_range);
+   GTDBG("pinch moving_distance_range: %lf\n", gconfig->conf->pinch.moving_distance_range);
 
    gesture->global = wl_global_create(e_comp_wl->wl.disp, &tizen_gesture_interface, 2, gesture, _e_gesture_cb_bind);
    if (!gesture->global)
@@ -919,7 +933,7 @@ _e_gesture_init(E_Module *m)
 
    gesture->gesture_filter = E_GESTURE_TYPE_MAX;
 
-   gesture->gesture_events.edge_swipes.event_keep = gconfig->conf->edge_swipe.event_keep;
+   gesture->gesture_events.event_keep = gconfig->conf->event_keep;
    if (gconfig->conf->edge_swipe.default_enable_back)
      {
         gesture->grabbed_gesture |= TIZEN_GESTURE_TYPE_EDGE_SWIPE;
@@ -927,7 +941,7 @@ _e_gesture_init(E_Module *m)
         gesture->gesture_events.edge_swipes.fingers[1].edge[E_GESTURE_EDGE_TOP].client = (void *)0x1;
         gesture->gesture_events.edge_swipes.fingers[1].edge[E_GESTURE_EDGE_TOP].res = (void *)0x1;
         gesture->gesture_events.edge_swipes.enabled_edge |= TIZEN_GESTURE_EDGE_TOP;
-        if (gesture->gesture_events.edge_swipes.event_keep)
+        if (gesture->gesture_events.event_keep)
           {
              gesture->event_state = E_GESTURE_EVENT_STATE_KEEP;
           }
index 53e02f1..2afb315 100644 (file)
@@ -32,8 +32,8 @@
 
 #define E_GESTURE_TAP_REPEATS_MAX 3
 #define E_GESTURE_TAP_START_TIME 0.05
-#define E_GESTURE_TAP_DONE_TIME 1
-#define E_GESTURE_TAP_INTERVAL_TIME 1
+#define E_GESTURE_TAP_DONE_TIME 1.0
+#define E_GESTURE_TAP_INTERVAL_TIME 1.0
 #define E_GESTURE_TAP_MOVING_RANGE 25
 
 #define E_GESTURE_PAN_START_TIME 0.05
@@ -140,6 +140,7 @@ struct _E_Gesture_Event_Info
 struct _E_Gesture_Conf_Edd
 {
    char *key_device_name;
+   Eina_Bool event_keep;
    struct
    {
       double time_done;
@@ -150,8 +151,24 @@ struct _E_Gesture_Conf_Edd
       int compose_key;
       int back_key;
       Eina_Bool default_enable_back;
-      Eina_Bool event_keep;
    } edge_swipe;
+   struct
+     {
+        int repeats_max;
+        double time_start;
+        double time_done;
+        double time_interval;
+        int moving_range;
+     } tap;
+   struct
+     {
+        double time_start;
+        int moving_range;
+     } pan;
+   struct
+     {
+        double moving_distance_range;
+     } pinch;
 };
 
 struct _E_Gesture_Config_Data
@@ -194,8 +211,6 @@ struct _E_Gesture_Event_Edge_Swipe
 
    Ecore_Timer *start_timer;
    Ecore_Timer *done_timer;
-
-   Eina_Bool event_keep;
 };
 
 struct _E_Gesture_Event_Tap_Finger_Repeats
@@ -276,6 +291,7 @@ struct _E_Gesture_Event
 
    int num_pressed;
    Eina_Bool recognized_gesture;
+   Eina_Bool event_keep;
 };
 
 struct _E_Gesture