Merge with devel/home/master
authorSung-jae Park <nicesj.park@samsung.com>
Mon, 3 Nov 2014 11:27:32 +0000 (20:27 +0900)
committerSung-jae Park <nicesj.park@samsung.com>
Mon, 3 Nov 2014 11:27:32 +0000 (20:27 +0900)
[model] Redwood,Kiran,B3(Wearable)
[binary_type] AP
[customer] Docomo/Orange/ATT/Open
[issue#] N/A
[problem]
[cause]
[solution]
[team] HomeTF
[request]
[horizontal_expansion]

Change-Id: Iac91db4bc38dea9589899c9c156fc3185dd10e72

include/dynamicbox.h
live.viewer/dbox.app/src/htt.c
live.viewer/dbox.app/src/main.c
live.viewer/dbox.video/src/main.c
src/dynamicbox.c

index c69a85d..f5af353 100644 (file)
@@ -288,17 +288,17 @@ typedef enum dynamicbox_visible_state {
 typedef enum dynamicbox_access_info_type {
     DBOX_ACCESS_TYPE_NONE = 0x00,           /**< Initialized */
 
-        DBOX_ACCESS_TYPE_DOWN = 0x00,           /**< Mouse down */
-        DBOX_ACCESS_TYPE_MOVE = 0x01,           /**< Mouse move */
-        DBOX_ACCESS_TYPE_UP   = 0x02,           /**< Mouse up */
+    DBOX_ACCESS_TYPE_DOWN = 0x00,           /**< Mouse down */
+    DBOX_ACCESS_TYPE_MOVE = 0x01,           /**< Mouse move */
+    DBOX_ACCESS_TYPE_UP   = 0x02,           /**< Mouse up */
 
-        DBOX_ACCESS_TYPE_HIGHLIGHT      = 0x00, /**< Highlight */
-        DBOX_ACCESS_TYPE_HIGHLIGHT_NEXT = 0x01, /**< Highlight next */
-        DBOX_ACCESS_TYPE_HIGHLIGHT_PREV = 0x02, /**< Highlight prev */
-        DBOX_ACCESS_TYPE_UNHIGHLIGHT    = 0x03, /**< Unhighlight */
+    DBOX_ACCESS_TYPE_HIGHLIGHT      = 0x00, /**< Highlight */
+    DBOX_ACCESS_TYPE_HIGHLIGHT_NEXT = 0x01, /**< Highlight next */
+    DBOX_ACCESS_TYPE_HIGHLIGHT_PREV = 0x02, /**< Highlight prev */
+    DBOX_ACCESS_TYPE_UNHIGHLIGHT    = 0x03, /**< Unhighlight */
 
-        DBOX_ACCESS_TYPE_DISABLE = 0x00,        /**< Disable */
-        DBOX_ACCESS_TYPE_ENABLE  = 0x01         /**< Enable */
+    DBOX_ACCESS_TYPE_DISABLE = 0x00,        /**< Disable */
+    DBOX_ACCESS_TYPE_ENABLE  = 0x01         /**< Enable */
 } dynamicbox_access_info_type_e;
 
 /**
index 05a1ec1..ef466d5 100644 (file)
@@ -2,10 +2,13 @@
 #include <stdlib.h>
 
 const char *enemies[] = { "sistar", "girlsday", "fx", "2ne1", "kara", "missa", "apink", "crayonpop", "4minute", "tara" };
-static Eina_List *enemy_list = NULL;
-static Evas_Object *bricks[9];
-static Evas_Object *score;
-static int score_val = 0;
+
+struct instance {
+    Eina_List *enemy_list;
+    Evas_Object *bricks[9];
+    Evas_Object *score;
+    int score_val;
+};
 
 Evas_Object *create_enemy(Evas *e)
 {
@@ -24,23 +27,27 @@ Evas_Object *create_enemy(Evas *e)
 
 Eina_Bool create_enemy_timer_cb(void *data)
 {
-   Evas *e = data;
+   Evas *e;
+   struct instance *inst;
+
+   e = evas_object_evas_get(data);
+   inst = evas_object_data_get(data, "instance");
 
    Evas_Object *enemy = create_enemy(e);
 
-   enemy_list = eina_list_append(enemy_list, enemy);
+   inst->enemy_list = eina_list_append(inst->enemy_list, enemy);
 
    return ECORE_CALLBACK_RENEW;
 }
 
-void remove_brick()
+void remove_brick(struct instance *inst)
 {
    int i;
 
    for (i = 0; i < 9; i++)
    {
-      if (!evas_object_visible_get(bricks[i])) continue;
-      evas_object_hide(bricks[i]);
+      if (!evas_object_visible_get(inst->bricks[i])) continue;
+      evas_object_hide(inst->bricks[i]);
       return;
    }
 
@@ -52,16 +59,19 @@ Eina_Bool move_enemy_timer_cb(void *data)
    Eina_List *l, *l_next;
    Evas_Object *enemy;
    Evas_Coord x, y;
+   struct instance *inst;
 
-   EINA_LIST_FOREACH_SAFE(enemy_list, l, l_next, enemy)
+   inst = evas_object_data_get(data, "instance");
+
+   EINA_LIST_FOREACH_SAFE(inst->enemy_list, l, l_next, enemy)
    {
       evas_object_geometry_get(enemy, &x, &y, NULL, NULL);
 
       if (y >= 400)
       {
-         enemy_list = eina_list_remove(enemy_list, enemy);
+         inst->enemy_list = eina_list_remove(inst->enemy_list, enemy);
          evas_object_del(enemy);
-         remove_brick();
+         remove_brick(inst);
       }
       else
       {
@@ -83,24 +93,41 @@ Evas_Object *create_brick(Evas *e, Evas_Coord x, Evas_Coord y)
    return img;
 }
 
-void attack(const char *input)
+void attack(Evas_Object *win, const char *input)
 {
    Eina_List *l, *l_next;
    Evas_Object *enemy;
+   struct instance *inst;
+
+   inst = evas_object_data_get(win, "instance");
 
-   EINA_LIST_FOREACH_SAFE(enemy_list, l, l_next, enemy)
+   EINA_LIST_FOREACH_SAFE(inst->enemy_list, l, l_next, enemy)
    {
       if (!strcmp(evas_object_text_text_get(enemy), input))
       {
-         enemy_list = eina_list_remove(enemy_list, enemy);
+         inst->enemy_list = eina_list_remove(inst->enemy_list, enemy);
          evas_object_del(enemy);
-         score_val += 100;
+         inst->score_val += 100;
       }
    }
 
+/*
    char buf[100];
-   snprintf(buf, sizeof(buf), "Score: %d", score_val);
-   evas_object_text_text_set(score, buf);
+   snprintf(buf, sizeof(buf), "Score: %d", inst->score_val);
+   evas_object_text_text_set(inst->score, buf);
+*/
+}
+
+void set_score(Evas_Object *win, const char *source, const char *emission)
+{
+    char *buf;
+    struct instance *inst;
+
+    inst = evas_object_data_get(win, "instance");
+
+    buf = malloc(strlen(source) + strlen(emission) + 100);
+    snprintf(buf, strlen(source) + strlen(emission) + 100, "%s/%s", source, emission);
+    evas_object_text_text_set(inst->score, buf);
 }
 
 void key_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
@@ -118,7 +145,7 @@ void key_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
 //   printf("%s %s %s %s (%d)\n", ev->keyname, ev->key, ev->string, ev->compose, ev->keycode);
    if (!strcmp(ev->keyname, "space") || !strcmp(ev->keyname, "Return"))
    {
-      attack(buf);
+      attack(obj, buf);
       evas_object_text_text_set(input, "");
       cur = 0;
       return;
@@ -143,6 +170,13 @@ void key_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
 
 int htt_main(Evas_Object *win)
 {
+   struct instance *inst;
+
+   inst = calloc(1, sizeof(*inst));
+   if (!inst) {
+      return -ENOMEM;
+   }
+
    srand((unsigned int) time(NULL));
 
    Evas *e = evas_object_evas_get(win);
@@ -159,15 +193,15 @@ int htt_main(Evas_Object *win)
    evas_object_resize(ocean, 500, 20);
    evas_object_show(ocean);
 
-   bricks[0] = create_brick(e, 225, 355);
-   bricks[1] = create_brick(e, 250, 355);
-   bricks[2] = create_brick(e, 275, 355);
-   bricks[3] = create_brick(e, 225, 370);
-   bricks[4] = create_brick(e, 250, 370);
-   bricks[5] = create_brick(e, 275, 370);
-   bricks[6] = create_brick(e, 225, 385);
-   bricks[7] = create_brick(e, 250, 385);
-   bricks[8] = create_brick(e, 275, 385);
+   inst->bricks[0] = create_brick(e, 225, 355);
+   inst->bricks[1] = create_brick(e, 250, 355);
+   inst->bricks[2] = create_brick(e, 275, 355);
+   inst->bricks[3] = create_brick(e, 225, 370);
+   inst->bricks[4] = create_brick(e, 250, 370);
+   inst->bricks[5] = create_brick(e, 275, 370);
+   inst->bricks[6] = create_brick(e, 225, 385);
+   inst->bricks[7] = create_brick(e, 250, 385);
+   inst->bricks[8] = create_brick(e, 275, 385);
 
    Evas_Object *entry = evas_object_image_filled_add(e);
    evas_object_image_file_set(entry, RESDIR"/entry.png", NULL);
@@ -175,12 +209,12 @@ int htt_main(Evas_Object *win)
    evas_object_resize(entry, 90, 30);
    evas_object_show(entry);
 
-   score = evas_object_text_add(e);
-   evas_object_text_font_set(score, "DejaVu", 12);
-   evas_object_text_text_set(score, "Score: 0");
-   evas_object_color_set(score, 0, 0, 0, 255);
-   evas_object_resize(score, 100, 30);
-   evas_object_show(score);
+   inst->score = evas_object_text_add(e);
+   evas_object_text_font_set(inst->score, "DejaVu", 12);
+   evas_object_text_text_set(inst->score, "Score: 0");
+   evas_object_color_set(inst->score, 0, 0, 0, 255);
+   evas_object_resize(inst->score, 100, 30);
+   evas_object_show(inst->score);
 
    Evas_Object *input = evas_object_text_add(e);
    evas_object_text_font_set(input, "DejaVu", 12);
@@ -189,8 +223,10 @@ int htt_main(Evas_Object *win)
    evas_object_resize(input, 100, 30);
    evas_object_show(input);
 
-   ecore_timer_add(2, create_enemy_timer_cb, e);
-   ecore_timer_add(0.8, move_enemy_timer_cb, e);
+   ecore_timer_add(2, create_enemy_timer_cb, win);
+   ecore_timer_add(0.8, move_enemy_timer_cb, win);
+
+   evas_object_data_set(win, "instance", inst);
 
    evas_object_event_callback_add(win, EVAS_CALLBACK_KEY_DOWN, key_down_cb, input);
    return 0;
index b1d854d..45b0e93 100644 (file)
@@ -25,6 +25,7 @@ struct dynamicbox_data {
 };
 
 extern int htt_main(Evas_Object *win);
+extern int set_score(Evas_Object *win, const char *source, const char *emission);
 
 static int dbox_create(const char *id, const char *content, int w, int h, void *data)
 {
@@ -94,7 +95,7 @@ static int dbox_resize(const char *id, int w, int h, void *data)
        return 0;
 }
 
-static int dbox_destroy(const char *id, int reason, void *data)
+static int dbox_destroy(const char *id, dynamicbox_destroy_type_e reason, void *data)
 {
        struct dynamicbox_data *dbox_data;
 
@@ -197,6 +198,7 @@ static int dbox_script_event(const char *id, const char *emission, const char *s
                return DBOX_STATUS_ERROR_INVALID_PARAMETER;
        }
 
+       set_score(dbox_data->win, source, emission);
        /**
         * @TODO:
         */
index b044e02..a1f1145 100644 (file)
@@ -12,6 +12,7 @@
 #include <dynamicbox_errno.h>
 #include <dynamicbox_buffer.h>
 
+#include <dynamicbox_provider.h>
 #include <dynamicbox_provider_buffer.h>
 
 #include <aul.h>
index d6f6552..0ba9a13 100644 (file)
@@ -3625,7 +3625,11 @@ EAPI int dynamicbox_emit_text_signal(dynamicbox_h handler, dynamicbox_text_event
        return DBOX_STATUS_ERROR_INVALID_PARAMETER;
     }
 
-    if ((handler->common->dbox.type != DBOX_TYPE_TEXT && handler->common->gbar.type != GBAR_TYPE_TEXT) || !handler->common->id) {
+    if (handler->common->dbox.type != DBOX_TYPE_TEXT && handler->common->gbar.type != GBAR_TYPE_TEXT) {
+       DbgPrint("Not a text box, but send signal\n");
+    }
+
+    if (!handler->common->id) {
        ErrPrint("Handler is not valid\n");
        return DBOX_STATUS_ERROR_INVALID_PARAMETER;
     }