default_backend: leave timestamp inside frame callback and make use of ani_info for... 68/220668/1
authorSung-Jin Park <sj76.park@samsung.com>
Wed, 28 Aug 2019 01:14:36 +0000 (10:14 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Fri, 20 Dec 2019 07:20:06 +0000 (16:20 +0900)
Change-Id: I4e4aab6e885c5680ceb3c26e8a4e8fbc959f89d2
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
backends/default_backend.c
configure.ac

index 36cc4a8..4f3eb32 100644 (file)
@@ -31,6 +31,7 @@
 #include <dirent.h>
 #include <errno.h>
 #include <Eina.h>
+#include <Ecore.h>
 #include <config.h>
 
 #define ANI_COLLECTION_DIR "/usr/share/pui/"
@@ -96,24 +97,33 @@ _ani_backend_frame_cb(void *data, int serial)
        pui_ani_t *ani = (pui_ani_t *)data;
        pui_backend_ani_data *ani_data = NULL;
        pui_ani_control_buffer *buffer = NULL;
+       double now;
 
        ani_data = pui_backend_ani_get_ani_data(ani);
        default_ani_info *ani_info = (default_ani_info *)ani_data->ani_info;
 
-       pui_info("... serial=%d\n", serial);
+       now = ecore_time_unix_get();
+
+       pui_info("[time:%.3f] serial=%d\n", now, serial);
 
        /* TODO : make use of ani_info */
        (void) ani_info;
 
        buffer = pui_backend_ani_get_buffer(ani);
 
+       if (!buffer)
+       {
+               pui_err("Failed to get buffer !\n");
+               return 0;
+       }
+
        /* test example */
        for(int i = 0; i<12; i++)
        {
                buffer->ptr[4*i] = 0;
-               buffer->ptr[4*i + 1] = (((serial%3) == 0) ? 0xFF:0); /* BLUE */
-               buffer->ptr[4*i + 2] = (((serial%3) == 1) ? 0xFF:0); /* GREEN */
-               buffer->ptr[4*i + 3] = (((serial%3) == 2) ? 0xFF:0); /* RED */
+               buffer->ptr[4*i + 1] = (ani_info->frames[ani_info->key_frame_idx].leds[i].color & 0xFF0000) >> 16;//R
+               buffer->ptr[4*i + 2] = (ani_info->frames[ani_info->key_frame_idx].leds[i].color & 0x00FF00) >> 8;//G
+               buffer->ptr[4*i + 3] = ani_info->frames[ani_info->key_frame_idx].leds[i].color & 0x0000FF;//B
        }
 
        e = pui_backend_ani_set_buffer(ani, buffer);
@@ -142,10 +152,6 @@ get_ani_info_from_ani_collection(pui_id id)
 {
        default_ani_info *ani_info = NULL;
 
-       //TODO
-       //ex> data->id = id;
-       //ex> data->interval = 30;
-
        if (!_animations_hash)
                return NULL;
 
@@ -172,15 +178,12 @@ _ani_start(pui_ani_t *ani, int repeat)
        pui_backend_ani_data *ani_data = NULL;
 
        ani_data = pui_backend_ani_get_ani_data(ani);
-       default_ani_info *info = (default_ani_info *)ani_data->ani_info;
-
-       //TODO
-       (void) info;
+       default_ani_info *ani_info = (default_ani_info *)ani_data->ani_info;
 
-       pui_info("... info->id: %s, repeat : %d\n", info->id, repeat);
+       pui_info("... info->id: %s, repeat : %d\n", ani_info->id, repeat);
 
        pui_backend_ani_status_update(ani, PUI_ANI_STATUS_STARTED);
-       ret = pui_backend_ani_add_frame_cb(ani, _ani_backend_frame_cb, 0.1);
+       ret = pui_backend_ani_add_frame_cb(ani, _ani_backend_frame_cb, (double)ani_info->interval / 1000);
 
        if (!ret)
        {
index 5a36a35..832fed7 100644 (file)
@@ -50,10 +50,9 @@ AC_SUBST(LIBPUI_CFLAGS)
 AC_SUBST(LIBPUI_LIBS)
 
 # libpui default backend
-DEFAULT_BACKEND_REQUIRES="eina json-c"
+DEFAULT_BACKEND_REQUIRES="eina ecore json-c"
 PKG_CHECK_MODULES(DEFAULT_BACKEND, $[DEFAULT_BACKEND_REQUIRES])
 DEFAULT_BACKEND_CFLAGS="$DEFAULT_BACKEND_CFLAGS $LIBPUI_DIR "
-#DEFAULT_BACKEND_CFLAGS="$DEFAULT_BACKEND_CFLAGS $LIBPUI_CFLAGS "
 DEFAULT_BACKEND_LIBS="$DEFAULT_BACKEND_LIBS $LIBPUI_LIB "
 
 AC_SUBST(DEFAULT_BACKEND_CFLAGS)