2011-12-06 08:05:14 -08:00
|
|
|
#include <Eina.h>
|
|
|
|
#include <Eet.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <limits.h>
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include <sys/stat.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <Evas.h>
|
|
|
|
#include "tsuite_file_data.h"
|
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
static data_desc *_desc = NULL; /* this struct holds descs (alloc on init) */
|
2011-12-06 08:05:14 -08:00
|
|
|
|
|
|
|
static eet_event_type_mapping eet_mapping[] = {
|
|
|
|
{ TSUITE_EVENT_MOUSE_IN, TSUITE_EVENT_MOUSE_IN_STR },
|
|
|
|
{ TSUITE_EVENT_MOUSE_OUT, TSUITE_EVENT_MOUSE_OUT_STR },
|
|
|
|
{ TSUITE_EVENT_MOUSE_DOWN, TSUITE_EVENT_MOUSE_DOWN_STR },
|
|
|
|
{ TSUITE_EVENT_MOUSE_UP, TSUITE_EVENT_MOUSE_UP_STR },
|
|
|
|
{ TSUITE_EVENT_MOUSE_MOVE, TSUITE_EVENT_MOUSE_MOVE_STR },
|
|
|
|
{ TSUITE_EVENT_MOUSE_WHEEL, TSUITE_EVENT_MOUSE_WHEEL_STR },
|
|
|
|
{ TSUITE_EVENT_MULTI_DOWN, TSUITE_EVENT_MULTI_DOWN_STR },
|
|
|
|
{ TSUITE_EVENT_MULTI_UP, TSUITE_EVENT_MULTI_UP_STR },
|
|
|
|
{ TSUITE_EVENT_MULTI_MOVE, TSUITE_EVENT_MULTI_MOVE_STR },
|
|
|
|
{ TSUITE_EVENT_KEY_DOWN, TSUITE_EVENT_KEY_DOWN_STR },
|
|
|
|
{ TSUITE_EVENT_KEY_UP, TSUITE_EVENT_KEY_UP_STR },
|
2015-03-04 06:55:17 -08:00
|
|
|
{ TSUITE_EVENT_KEY_DOWN_WITH_KEYCODE, TSUITE_EVENT_KEY_DOWN_WITH_KEYCODE_STR },
|
|
|
|
{ TSUITE_EVENT_KEY_UP_WITH_KEYCODE, TSUITE_EVENT_KEY_UP_WITH_KEYCODE_STR },
|
2011-12-06 08:05:14 -08:00
|
|
|
{ TSUITE_EVENT_TAKE_SHOT, TSUITE_EVENT_TAKE_SHOT_STR },
|
|
|
|
{ TSUITE_EVENT_NOT_SUPPORTED, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
Tsuite_Event_Type
|
|
|
|
tsuite_event_mapping_type_get(const char *name)
|
|
|
|
{
|
|
|
|
int i;
|
|
|
|
for (i = 0; eet_mapping[i].name != NULL; ++i)
|
|
|
|
if (strcmp(name, eet_mapping[i].name) == 0)
|
|
|
|
return eet_mapping[i].t;
|
|
|
|
|
|
|
|
return TSUITE_EVENT_NOT_SUPPORTED;
|
|
|
|
}
|
|
|
|
|
|
|
|
const char *
|
|
|
|
tsuite_event_mapping_type_str_get(Tsuite_Event_Type t)
|
|
|
|
{
|
|
|
|
int i;
|
|
|
|
for (i = 0; eet_mapping[i].name != NULL; ++i)
|
|
|
|
if (t == eet_mapping[i].t)
|
|
|
|
return eet_mapping[i].name;
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2012-02-14 05:52:17 -08:00
|
|
|
Lists_st *
|
2016-10-09 00:15:37 -07:00
|
|
|
free_events(Lists_st *st, Eina_Bool recording)
|
2012-02-14 05:52:17 -08:00
|
|
|
{
|
|
|
|
Variant_st *v;
|
2016-10-09 00:15:37 -07:00
|
|
|
if (!st) goto end;
|
2012-02-14 05:52:17 -08:00
|
|
|
EINA_LIST_FREE(st->variant_list, v)
|
|
|
|
{
|
|
|
|
if (recording)
|
|
|
|
{
|
|
|
|
Tsuite_Event_Type e = tsuite_event_mapping_type_get(v->t.type);
|
2015-03-04 06:55:17 -08:00
|
|
|
if ((e == TSUITE_EVENT_KEY_DOWN) || (e == TSUITE_EVENT_KEY_UP)
|
|
|
|
|| (e == TSUITE_EVENT_KEY_DOWN_WITH_KEYCODE)
|
|
|
|
|| (e == TSUITE_EVENT_KEY_UP_WITH_KEYCODE))
|
2012-02-14 05:52:17 -08:00
|
|
|
{ /* Allocated in tsuite_evas_hook.c */
|
|
|
|
key_down_key_up *t = v->data;
|
|
|
|
eina_stringshare_del(t->keyname);
|
|
|
|
eina_stringshare_del(t->key);
|
|
|
|
eina_stringshare_del(t->string);
|
|
|
|
eina_stringshare_del(t->compose);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
free(v->data);
|
|
|
|
free(v);
|
|
|
|
}
|
|
|
|
|
|
|
|
free(st); /* Allocated when reading data from EET file */
|
2016-10-09 00:15:37 -07:00
|
|
|
end:
|
2012-02-14 05:52:17 -08:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2012-02-14 05:52:41 -08:00
|
|
|
#ifdef DEBUG_TSUITE
|
|
|
|
static void
|
|
|
|
print_events(Lists_st *vr_list)
|
|
|
|
{
|
|
|
|
Eina_List *l;
|
|
|
|
void *data;
|
|
|
|
Variant_st *v;
|
|
|
|
int n = 0;
|
|
|
|
printf("List size = <%d>\n", eina_list_count(vr_list->variant_list));
|
|
|
|
|
|
|
|
EINA_LIST_FOREACH(vr_list->variant_list, l , data)
|
|
|
|
{
|
|
|
|
n++;
|
|
|
|
v = data;
|
|
|
|
switch(tsuite_event_mapping_type_get(v->t.type))
|
|
|
|
{
|
|
|
|
case TSUITE_EVENT_MOUSE_IN:
|
|
|
|
{
|
|
|
|
mouse_in_mouse_out *t = v->data;
|
|
|
|
printf("%d evas_event_feed_mouse_in timestamp=<%u> t->n_evas=<%d>\n", n, t->timestamp, t->n_evas);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case TSUITE_EVENT_MOUSE_OUT:
|
|
|
|
{
|
|
|
|
mouse_in_mouse_out *t = v->data;
|
|
|
|
printf("%d evas_event_feed_mouse_out timestamp=<%u> t->n_evas=<%d>\n", n, t->timestamp,t->n_evas);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case TSUITE_EVENT_MOUSE_DOWN:
|
|
|
|
{
|
|
|
|
mouse_down_mouse_up *t = v->data;
|
|
|
|
printf("%d evas_event_feed_mouse_down timestamp=<%u> t->n_evas=<%d>\n", n, t->timestamp, t->n_evas);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case TSUITE_EVENT_MOUSE_UP:
|
|
|
|
{
|
|
|
|
mouse_down_mouse_up *t = v->data;
|
|
|
|
printf("%d evas_event_feed_mouse_up timestamp=<%u> t->n_evas=<%d>\n", n, t->timestamp,t->n_evas);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case TSUITE_EVENT_MOUSE_MOVE:
|
|
|
|
{
|
|
|
|
mouse_move *t = v->data;
|
|
|
|
printf("%d evas_event_feed_mouse_move (x,y)=(%d,%d) timestamp=<%u> t->n_evas=<%d>\n", n, t->x, t->y, t->timestamp,t->n_evas);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case TSUITE_EVENT_MOUSE_WHEEL:
|
|
|
|
{
|
|
|
|
mouse_wheel *t = v->data;
|
|
|
|
printf("%d evas_event_feed_mouse_wheel timestamp=<%u> t->n_evas=<%d>\n", n, t->timestamp, t->n_evas);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case TSUITE_EVENT_MULTI_DOWN:
|
|
|
|
{
|
|
|
|
multi_event *t = v->data;
|
|
|
|
printf("%d evas_event_feed_multi_down timestamp=<%u>, t->n_evas=<%d>\n", n, t->timestamp,t->n_evas);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case TSUITE_EVENT_MULTI_UP:
|
|
|
|
{
|
|
|
|
multi_event *t = v->data;
|
|
|
|
printf("%d evas_event_feed_multi_up timestamp=<%u> t->n_evas=<%d>\n", n, t->timestamp,t->n_evas);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case TSUITE_EVENT_MULTI_MOVE:
|
|
|
|
{
|
|
|
|
multi_move *t = v->data;
|
|
|
|
printf("%d evas_event_feed_multi_move timestamp=<%u> t->n_evas=<%d>\n", n, t->timestamp, t->n_evas);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case TSUITE_EVENT_KEY_DOWN:
|
|
|
|
{
|
|
|
|
key_down_key_up *t = v->data;
|
|
|
|
printf("%d evas_event_feed_key_down timestamp=<%u> t->n_evas=<%d>\n", n, t->timestamp, t->n_evas);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case TSUITE_EVENT_KEY_UP:
|
|
|
|
{
|
|
|
|
key_down_key_up *t = v->data;
|
|
|
|
printf("%d evas_event_feed_key_up timestamp=<%u> t->n_evas=<%d>\n", n, t->timestamp, t->n_evas);
|
|
|
|
break;
|
|
|
|
}
|
2015-03-04 06:55:17 -08:00
|
|
|
case TSUITE_EVENT_KEY_DOWN_WITH_KEYCODE:
|
|
|
|
{
|
|
|
|
key_down_key_up_with_keycode *t = v->data;
|
|
|
|
printf("%d evas_event_feed_key_down_with_keycode timestamp=<%u> t->n_evas=<%d>\n", n, t->timestamp, t->n_evas);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case TSUITE_EVENT_KEY_UP_WITH_KEYCODE:
|
|
|
|
{
|
|
|
|
key_down_key_up_with_keycode *t = v->data;
|
|
|
|
printf("%d evas_event_feed_key_up_with_keycode timestamp=<%u> t->n_evas=<%d>\n", n, t->timestamp, t->n_evas);
|
|
|
|
break;
|
|
|
|
}
|
2012-02-14 05:52:41 -08:00
|
|
|
case TSUITE_EVENT_TAKE_SHOT:
|
|
|
|
{
|
|
|
|
take_screenshot *t = v->data;
|
|
|
|
printf("%d take shot timestamp=<%u> t->n_evas=<%d>\n", n, t->timestamp, t->n_evas);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
default: /* All non-input events are not handeled */
|
|
|
|
printf("%d --- Uknown event ---\n", n);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2011-12-06 08:05:14 -08:00
|
|
|
void
|
|
|
|
write_events(const char *filename, Lists_st *vr_list)
|
|
|
|
{
|
|
|
|
_data_descriptors_init();
|
|
|
|
Eet_File *fp = eet_open(filename, EET_FILE_MODE_WRITE);
|
2011-12-20 00:58:02 -08:00
|
|
|
if (fp)
|
|
|
|
{
|
2012-02-14 05:52:41 -08:00
|
|
|
#ifdef DEBUG_TSUITE
|
|
|
|
print_events(vr_list);
|
|
|
|
#endif
|
2016-10-15 22:26:11 -07:00
|
|
|
eet_data_write(fp, _desc->_lists_descriptor, CACHE_FILE_ENTRY, vr_list,
|
2011-12-20 00:58:02 -08:00
|
|
|
EINA_TRUE);
|
|
|
|
|
|
|
|
eet_close(fp);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
printf("Failed to create record file <%s>.\n", filename);
|
|
|
|
}
|
2011-12-06 08:05:14 -08:00
|
|
|
|
|
|
|
_data_descriptors_shutdown();
|
|
|
|
}
|
|
|
|
|
|
|
|
Lists_st *
|
2016-03-23 05:41:47 -07:00
|
|
|
read_events(const char *filename, Timer_Data *td)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
Lists_st *vr_list;
|
2018-01-25 02:45:37 -08:00
|
|
|
Eina_List *itr;
|
|
|
|
Variant_st *v;
|
2016-03-23 00:05:46 -07:00
|
|
|
Eet_File *fp = eet_open(filename, EET_FILE_MODE_READ);
|
|
|
|
if (!fp)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
printf("Failed to open input file <%s>.\n", filename);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Read events list */
|
|
|
|
_data_descriptors_init();
|
2016-10-15 22:26:11 -07:00
|
|
|
vr_list = eet_data_read(fp, _desc->_lists_descriptor, CACHE_FILE_ENTRY);
|
2016-03-23 00:05:46 -07:00
|
|
|
eet_close(fp);
|
2011-12-06 08:05:14 -08:00
|
|
|
_data_descriptors_shutdown();
|
|
|
|
if (!vr_list->variant_list)
|
|
|
|
return NULL;
|
|
|
|
|
2018-01-25 02:45:37 -08:00
|
|
|
EINA_LIST_FOREACH(vr_list->variant_list, itr, v)
|
|
|
|
{
|
|
|
|
unsigned int tm = evt_time_get(0, v);
|
|
|
|
if (tm) evt_time_set(tm - vr_list->first_timestamp, v);
|
|
|
|
}
|
2018-01-25 11:36:49 -08:00
|
|
|
vr_list->first_timestamp = 0;
|
2012-02-14 05:52:41 -08:00
|
|
|
#ifdef DEBUG_TSUITE
|
|
|
|
print_events(vr_list);
|
|
|
|
#endif
|
2018-01-02 01:07:47 -08:00
|
|
|
if (td) td->current_event = eina_list_nth_list(vr_list->variant_list, 0);
|
2011-12-06 08:05:14 -08:00
|
|
|
#ifdef DEBUG_TSUITE
|
|
|
|
printf("%s list size is <%d>\n", __func__, eina_list_count(vr_list->variant_list));
|
|
|
|
#endif
|
|
|
|
|
|
|
|
return vr_list;
|
|
|
|
}
|
|
|
|
|
|
|
|
const char *
|
|
|
|
_variant_type_get(const void *data, Eina_Bool *unknow)
|
|
|
|
{
|
|
|
|
const Variant_Type_st *type = data;
|
|
|
|
int i;
|
|
|
|
|
|
|
|
if (unknow)
|
|
|
|
*unknow = type->unknow;
|
|
|
|
|
|
|
|
for (i = 0; eet_mapping[i].name != NULL; ++i)
|
|
|
|
if (strcmp(type->type, eet_mapping[i].name) == 0)
|
|
|
|
return eet_mapping[i].name;
|
|
|
|
|
|
|
|
if (unknow)
|
|
|
|
*unknow = EINA_FALSE;
|
|
|
|
|
|
|
|
return type->type;
|
|
|
|
} /* _variant_type_get */
|
|
|
|
|
|
|
|
Eina_Bool
|
|
|
|
_variant_type_set(const char *type,
|
|
|
|
void *data,
|
|
|
|
Eina_Bool unknow)
|
|
|
|
{
|
|
|
|
Variant_Type_st *vt = data;
|
|
|
|
|
|
|
|
vt->type = type;
|
|
|
|
vt->unknow = unknow;
|
|
|
|
return EINA_TRUE;
|
|
|
|
} /* _variant_type_set */
|
|
|
|
|
|
|
|
/* START - Allocating and setting variant structs */
|
2012-02-14 05:52:41 -08:00
|
|
|
mouse_in_mouse_out *mouse_in_mouse_out_set(unsigned int timestamp, int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
mouse_in_mouse_out *st = calloc(1, sizeof(mouse_in_mouse_out));
|
|
|
|
if (st)
|
|
|
|
{
|
|
|
|
st->timestamp = timestamp;
|
2012-02-14 05:52:41 -08:00
|
|
|
st->n_evas = n_evas;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
return st;
|
|
|
|
}
|
|
|
|
|
|
|
|
Variant_st *mouse_in_mouse_out_new(Tsuite_Event_Type type,
|
2012-02-14 05:52:41 -08:00
|
|
|
unsigned int timestamp, int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
Variant_st *va = calloc(1, sizeof(Variant_st));
|
|
|
|
va->t.type = eet_mapping[type].name;
|
2012-02-14 05:52:41 -08:00
|
|
|
va->data = mouse_in_mouse_out_set(timestamp, n_evas);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
|
|
|
return va;
|
|
|
|
}
|
|
|
|
|
|
|
|
mouse_down_mouse_up *mouse_down_mouse_up_set(int b, Evas_Button_Flags flags,
|
2012-02-14 05:52:41 -08:00
|
|
|
unsigned int timestamp, int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
mouse_down_mouse_up *st = calloc(1, sizeof(mouse_down_mouse_up));
|
|
|
|
if (st)
|
|
|
|
{
|
|
|
|
st->b = b;
|
|
|
|
st->flags = flags;
|
|
|
|
st->timestamp = timestamp;
|
2012-02-14 05:52:41 -08:00
|
|
|
st->n_evas = n_evas;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
return st;
|
|
|
|
}
|
|
|
|
|
|
|
|
Variant_st *mouse_down_mouse_up_new(Tsuite_Event_Type type, int b,
|
2012-02-14 05:52:41 -08:00
|
|
|
Evas_Button_Flags flags, unsigned int timestamp, int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
Variant_st *va = calloc(1, sizeof(Variant_st));
|
|
|
|
va->t.type = eet_mapping[type].name;
|
2012-02-14 05:52:41 -08:00
|
|
|
va->data = mouse_down_mouse_up_set(b, flags, timestamp, n_evas);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
|
|
|
return va;
|
|
|
|
}
|
|
|
|
|
2012-02-14 05:52:41 -08:00
|
|
|
mouse_move *mouse_move_set(int x, int y, unsigned int timestamp, int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
mouse_move *st = calloc(1, sizeof(mouse_move));
|
|
|
|
if (st)
|
|
|
|
{
|
|
|
|
st->x = x;
|
|
|
|
st->y = y;
|
|
|
|
st->timestamp = timestamp;
|
2012-02-14 05:52:41 -08:00
|
|
|
st->n_evas = n_evas;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
return st;
|
|
|
|
}
|
|
|
|
|
2012-02-14 05:52:41 -08:00
|
|
|
Variant_st *mouse_move_new(int x, int y, unsigned int timestamp, int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
Variant_st *va = calloc(1, sizeof(Variant_st));
|
|
|
|
va->t.type = eet_mapping[TSUITE_EVENT_MOUSE_MOVE].name;
|
2012-02-14 05:52:41 -08:00
|
|
|
va->data = mouse_move_set(x, y, timestamp, n_evas);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
|
|
|
return va;
|
|
|
|
}
|
|
|
|
|
2012-02-14 05:52:41 -08:00
|
|
|
mouse_wheel *mouse_wheel_set(int direction, int z, unsigned int timestamp,
|
|
|
|
int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
mouse_wheel *st = calloc(1, sizeof(mouse_wheel));
|
|
|
|
if (st)
|
|
|
|
{
|
|
|
|
st->direction = direction;
|
|
|
|
st->z = z;
|
|
|
|
st->timestamp = timestamp;
|
2012-02-14 05:52:41 -08:00
|
|
|
st->n_evas = n_evas;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
return st;
|
|
|
|
}
|
|
|
|
|
2012-02-14 05:52:41 -08:00
|
|
|
Variant_st *mouse_wheel_new(int direction, int z, unsigned int timestamp,
|
|
|
|
int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
Variant_st *va = calloc(1, sizeof(Variant_st));
|
|
|
|
va->t.type = eet_mapping[TSUITE_EVENT_MOUSE_WHEEL].name;
|
2012-02-14 05:52:41 -08:00
|
|
|
va->data = mouse_wheel_set(direction, z, timestamp, n_evas);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
|
|
|
return va;
|
|
|
|
}
|
|
|
|
|
|
|
|
multi_event *multi_event_set(int d, int x, int y, double rad,
|
|
|
|
double radx, double rady, double pres, double ang,
|
2012-02-14 05:52:41 -08:00
|
|
|
double fx, double fy, Evas_Button_Flags flags,
|
|
|
|
unsigned int timestamp, int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
multi_event *st = calloc(1, sizeof(multi_event));
|
|
|
|
if (st)
|
|
|
|
{
|
|
|
|
st->d = d;
|
|
|
|
st->x = x;
|
|
|
|
st->y = y;
|
|
|
|
st->rad = rad;
|
|
|
|
st->radx = radx;
|
|
|
|
st->rady = rady;
|
|
|
|
st->pres = pres;
|
|
|
|
st->ang = ang;
|
|
|
|
st->fx = fx;
|
|
|
|
st->fy = fy;
|
|
|
|
st->flags = flags;
|
|
|
|
st->timestamp = timestamp;
|
2012-02-14 05:52:41 -08:00
|
|
|
st->n_evas = n_evas;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
return st;
|
|
|
|
}
|
|
|
|
|
|
|
|
Variant_st *multi_event_new(Tsuite_Event_Type type, int d, int x, int y,
|
|
|
|
double rad, double radx, double rady, double pres, double ang,
|
2012-02-14 05:52:41 -08:00
|
|
|
double fx, double fy, Evas_Button_Flags flags,
|
|
|
|
unsigned int timestamp, int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
Variant_st *va = calloc(1, sizeof(Variant_st));
|
|
|
|
va->t.type = eet_mapping[type].name;
|
|
|
|
va->data = multi_event_set(d, x, y, rad, radx, rady, pres, ang, fx, fy,
|
2012-02-14 05:52:41 -08:00
|
|
|
flags, timestamp, n_evas);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
|
|
|
return va;
|
|
|
|
}
|
|
|
|
|
|
|
|
multi_move *multi_move_set(int d, int x, int y, double rad, double radx,
|
|
|
|
double rady, double pres, double ang, double fx, double fy,
|
2012-02-14 05:52:41 -08:00
|
|
|
unsigned int timestamp, int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
multi_move *st = calloc(1, sizeof(multi_move));
|
|
|
|
if (st)
|
|
|
|
{
|
|
|
|
st->d = d;
|
|
|
|
st->x = x;
|
|
|
|
st->y = y;
|
|
|
|
st->rad = rad;
|
|
|
|
st->radx = radx;
|
|
|
|
st->rady = rady;
|
|
|
|
st->pres = pres;
|
|
|
|
st->ang = ang;
|
|
|
|
st->fx = fx;
|
|
|
|
st->fy = fy;
|
|
|
|
st->timestamp = timestamp;
|
2012-02-14 05:52:41 -08:00
|
|
|
st->n_evas = n_evas;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
return st;
|
|
|
|
}
|
|
|
|
|
|
|
|
Variant_st *multi_move_new(int d, int x, int y,
|
|
|
|
double rad, double radx,double rady, double pres, double ang,
|
2012-02-14 05:52:41 -08:00
|
|
|
double fx, double fy, unsigned int timestamp, int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
Variant_st *va = calloc(1, sizeof(Variant_st));
|
|
|
|
va->t.type = eet_mapping[TSUITE_EVENT_MULTI_MOVE].name;
|
|
|
|
va->data = multi_move_set(d, x, y, rad, radx, rady, pres, ang,
|
2012-02-14 05:52:41 -08:00
|
|
|
fx, fy,timestamp, n_evas);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
|
|
|
return va;
|
|
|
|
}
|
|
|
|
|
|
|
|
key_down_key_up *key_down_key_up_set(unsigned int timestamp,
|
|
|
|
const char *keyname, const char *key, const char *string,
|
2012-02-14 05:52:41 -08:00
|
|
|
const char *compose, int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
key_down_key_up *st = calloc(1, sizeof(key_down_key_up));
|
|
|
|
if (st)
|
|
|
|
{
|
|
|
|
st->timestamp = timestamp;
|
|
|
|
st->keyname = keyname;
|
|
|
|
st->key = key;
|
|
|
|
st->string = string;
|
|
|
|
st->compose = compose;
|
2012-02-14 05:52:41 -08:00
|
|
|
st->n_evas = n_evas;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
return st;
|
|
|
|
}
|
|
|
|
|
|
|
|
Variant_st *key_down_key_up_new(Tsuite_Event_Type type,
|
|
|
|
unsigned int timestamp, const char *keyname, const char *key,
|
2012-02-14 05:52:41 -08:00
|
|
|
const char *string, const char *compose, int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
Variant_st *va = calloc(1, sizeof(Variant_st));
|
|
|
|
va->t.type = eet_mapping[type].name;
|
2012-02-14 05:52:41 -08:00
|
|
|
va->data = key_down_key_up_set(timestamp, keyname, key, string, compose, n_evas);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
|
|
|
return va;
|
|
|
|
}
|
|
|
|
|
2015-03-04 06:55:17 -08:00
|
|
|
key_down_key_up_with_keycode *key_down_key_up_with_keycode_set(unsigned int timestamp,
|
|
|
|
const char *keyname, const char *key, const char *string,
|
|
|
|
const char *compose, int n_evas, unsigned int keycode)
|
|
|
|
{
|
|
|
|
key_down_key_up_with_keycode *st = calloc(1, sizeof(key_down_key_up_with_keycode));
|
|
|
|
if (st)
|
|
|
|
{
|
|
|
|
st->timestamp = timestamp;
|
|
|
|
st->keyname = keyname;
|
|
|
|
st->key = key;
|
|
|
|
st->string = string;
|
|
|
|
st->compose = compose;
|
|
|
|
st->n_evas = n_evas;
|
|
|
|
st->keycode = keycode;
|
|
|
|
}
|
|
|
|
|
|
|
|
return st;
|
|
|
|
}
|
|
|
|
|
|
|
|
Variant_st *key_down_key_up_with_keycode_new(Tsuite_Event_Type type,
|
|
|
|
unsigned int timestamp, const char *keyname, const char *key,
|
|
|
|
const char *string, const char *compose, int n_evas, unsigned int keycode)
|
|
|
|
{
|
|
|
|
Variant_st *va = calloc(1, sizeof(Variant_st));
|
|
|
|
va->t.type = eet_mapping[type].name;
|
|
|
|
va->data = key_down_key_up_with_keycode_set(timestamp, keyname, key, string,
|
|
|
|
compose, n_evas, keycode);
|
|
|
|
return va;
|
|
|
|
}
|
|
|
|
|
2012-02-14 05:52:41 -08:00
|
|
|
take_screenshot *take_screenshot_set(unsigned int timestamp, int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
take_screenshot *st = calloc(1, sizeof(take_screenshot));
|
|
|
|
if (st)
|
|
|
|
{
|
|
|
|
st->timestamp = timestamp;
|
2012-02-14 05:52:41 -08:00
|
|
|
st->n_evas = n_evas;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
return st;
|
|
|
|
}
|
|
|
|
|
2012-02-14 05:52:41 -08:00
|
|
|
Variant_st *take_screenshot_new(unsigned int timestamp, int n_evas)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
|
|
|
Variant_st *va = calloc(1, sizeof(Variant_st));
|
|
|
|
va->t.type = eet_mapping[TSUITE_EVENT_TAKE_SHOT].name;
|
2012-02-14 05:52:41 -08:00
|
|
|
va->data = take_screenshot_set(timestamp, n_evas);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
|
|
|
return va;
|
|
|
|
}
|
|
|
|
/* END - Allocating and setting variant structs */
|
|
|
|
|
|
|
|
/* START Event struct descriptors */
|
|
|
|
Eet_Data_Descriptor *
|
|
|
|
take_screenshot_desc_make(void)
|
|
|
|
{
|
|
|
|
Eet_Data_Descriptor_Class eddc;
|
2012-02-23 05:59:44 -08:00
|
|
|
Eet_Data_Descriptor *_d;
|
2011-12-06 08:05:14 -08:00
|
|
|
EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, take_screenshot);
|
2012-02-23 05:59:44 -08:00
|
|
|
_d = eet_data_descriptor_stream_new(&eddc);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, take_screenshot, "timestamp",
|
2011-12-06 08:05:14 -08:00
|
|
|
timestamp, EET_T_UINT);
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, take_screenshot, "n_evas",
|
2012-02-14 05:52:41 -08:00
|
|
|
n_evas, EET_T_INT);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
return _d;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
Eet_Data_Descriptor *
|
|
|
|
mouse_in_mouse_out_desc_make(void)
|
|
|
|
{
|
|
|
|
Eet_Data_Descriptor_Class eddc;
|
2012-02-23 05:59:44 -08:00
|
|
|
Eet_Data_Descriptor *_d;
|
2011-12-06 08:05:14 -08:00
|
|
|
EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, mouse_in_mouse_out);
|
2012-02-23 05:59:44 -08:00
|
|
|
_d = eet_data_descriptor_stream_new(&eddc);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, mouse_in_mouse_out, "timestamp",
|
2011-12-06 08:05:14 -08:00
|
|
|
timestamp, EET_T_UINT);
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, mouse_in_mouse_out, "n_evas",
|
2012-02-14 05:52:41 -08:00
|
|
|
n_evas, EET_T_INT);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
return _d;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
Eet_Data_Descriptor *
|
|
|
|
mouse_down_mouse_up_desc_make(void)
|
|
|
|
{
|
|
|
|
Eet_Data_Descriptor_Class eddc;
|
2012-02-23 05:59:44 -08:00
|
|
|
Eet_Data_Descriptor *_d;
|
2011-12-06 08:05:14 -08:00
|
|
|
EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, mouse_down_mouse_up);
|
2012-02-23 05:59:44 -08:00
|
|
|
_d = eet_data_descriptor_stream_new(&eddc);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, mouse_down_mouse_up, "b", b, EET_T_INT);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, mouse_down_mouse_up, "flags",
|
2011-12-06 08:05:14 -08:00
|
|
|
flags, EET_T_INT);
|
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, mouse_down_mouse_up, "timestamp",
|
2011-12-06 08:05:14 -08:00
|
|
|
timestamp, EET_T_UINT);
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, mouse_down_mouse_up, "n_evas",
|
2012-02-14 05:52:41 -08:00
|
|
|
n_evas, EET_T_INT);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
return _d;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
Eet_Data_Descriptor *
|
|
|
|
mouse_move_desc_make(void)
|
|
|
|
{
|
|
|
|
Eet_Data_Descriptor_Class eddc;
|
2012-02-23 05:59:44 -08:00
|
|
|
Eet_Data_Descriptor *_d;
|
2011-12-06 08:05:14 -08:00
|
|
|
EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, mouse_move);
|
2012-02-23 05:59:44 -08:00
|
|
|
_d = eet_data_descriptor_stream_new(&eddc);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, mouse_move, "x", x, EET_T_INT);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, mouse_move, "y", y, EET_T_INT);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, mouse_move, "timestamp",
|
2011-12-06 08:05:14 -08:00
|
|
|
timestamp, EET_T_UINT);
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, mouse_move, "n_evas",
|
2012-02-14 05:52:41 -08:00
|
|
|
n_evas, EET_T_INT);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
return _d;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
Eet_Data_Descriptor *
|
|
|
|
mouse_wheel_desc_make(void)
|
|
|
|
{
|
|
|
|
Eet_Data_Descriptor_Class eddc;
|
2012-02-23 05:59:44 -08:00
|
|
|
Eet_Data_Descriptor *_d;
|
2011-12-06 08:05:14 -08:00
|
|
|
EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, mouse_wheel);
|
2012-02-23 05:59:44 -08:00
|
|
|
_d = eet_data_descriptor_stream_new(&eddc);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, mouse_wheel, "direction",
|
2011-12-06 08:05:14 -08:00
|
|
|
direction, EET_T_INT);
|
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, mouse_wheel, "z", z, EET_T_INT);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, mouse_wheel, "timestamp",
|
2011-12-06 08:05:14 -08:00
|
|
|
timestamp, EET_T_UINT);
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, mouse_wheel, "n_evas",
|
2012-02-14 05:52:41 -08:00
|
|
|
n_evas, EET_T_INT);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
return _d;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
Eet_Data_Descriptor *
|
|
|
|
key_down_key_up_desc_make(void)
|
|
|
|
{
|
|
|
|
Eet_Data_Descriptor_Class eddc;
|
2012-02-23 05:59:44 -08:00
|
|
|
Eet_Data_Descriptor *_d;
|
2011-12-06 08:05:14 -08:00
|
|
|
EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, key_down_key_up);
|
2012-02-23 05:59:44 -08:00
|
|
|
_d = eet_data_descriptor_stream_new(&eddc);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, key_down_key_up, "timestamp",
|
2011-12-06 08:05:14 -08:00
|
|
|
timestamp, EET_T_UINT);
|
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, key_down_key_up, "keyname",
|
2011-12-06 08:05:14 -08:00
|
|
|
keyname, EET_T_STRING);
|
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, key_down_key_up, "key",
|
2011-12-06 08:05:14 -08:00
|
|
|
key, EET_T_STRING);
|
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, key_down_key_up, "string",
|
2011-12-06 08:05:14 -08:00
|
|
|
string, EET_T_STRING);
|
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, key_down_key_up, "compose",
|
2011-12-06 08:05:14 -08:00
|
|
|
compose, EET_T_STRING);
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, key_down_key_up, "n_evas",
|
2012-02-14 05:52:41 -08:00
|
|
|
n_evas, EET_T_INT);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
return _d;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
2015-03-04 06:55:17 -08:00
|
|
|
Eet_Data_Descriptor *
|
|
|
|
key_down_key_up_with_keycode_desc_make(void)
|
|
|
|
{
|
|
|
|
Eet_Data_Descriptor_Class eddc;
|
|
|
|
Eet_Data_Descriptor *_d;
|
|
|
|
EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, key_down_key_up_with_keycode);
|
|
|
|
_d = eet_data_descriptor_stream_new(&eddc);
|
|
|
|
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, key_down_key_up_with_keycode, "timestamp",
|
|
|
|
timestamp, EET_T_UINT);
|
|
|
|
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, key_down_key_up_with_keycode, "keyname",
|
|
|
|
keyname, EET_T_STRING);
|
|
|
|
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, key_down_key_up_with_keycode, "key",
|
|
|
|
key, EET_T_STRING);
|
|
|
|
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, key_down_key_up_with_keycode, "string",
|
|
|
|
string, EET_T_STRING);
|
|
|
|
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, key_down_key_up_with_keycode, "compose",
|
|
|
|
compose, EET_T_STRING);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, key_down_key_up_with_keycode, "n_evas",
|
|
|
|
n_evas, EET_T_INT);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, key_down_key_up_with_keycode, "keycode",
|
|
|
|
keycode, EET_T_INT);
|
|
|
|
|
|
|
|
return _d;
|
|
|
|
}
|
|
|
|
|
2011-12-06 08:05:14 -08:00
|
|
|
Eet_Data_Descriptor *
|
|
|
|
multi_event_desc_make(void)
|
|
|
|
{
|
|
|
|
Eet_Data_Descriptor_Class eddc;
|
2012-02-23 05:59:44 -08:00
|
|
|
Eet_Data_Descriptor *_d;
|
2011-12-06 08:05:14 -08:00
|
|
|
EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, multi_event);
|
2012-02-23 05:59:44 -08:00
|
|
|
_d = eet_data_descriptor_stream_new(&eddc);
|
|
|
|
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_event, "d", d, EET_T_UINT);
|
2016-09-21 21:28:56 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_event, "b", b, EET_T_UINT);
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_event, "x", x, EET_T_UINT);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_event, "y", y, EET_T_UINT);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_event, "rad", rad, EET_T_DOUBLE);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_event, "radx", radx, EET_T_DOUBLE);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_event, "rady", rady, EET_T_DOUBLE);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_event, "pres", pres, EET_T_DOUBLE);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_event, "ang", ang, EET_T_DOUBLE);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_event, "fx", fx, EET_T_DOUBLE);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_event, "fy", fy, EET_T_DOUBLE);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_event, "flags", flags, EET_T_INT);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_event, "timestamp",
|
2011-12-06 08:05:14 -08:00
|
|
|
timestamp, EET_T_UINT);
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_event, "n_evas",
|
2012-02-14 05:52:41 -08:00
|
|
|
n_evas, EET_T_INT);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
return _d;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
Eet_Data_Descriptor *
|
|
|
|
multi_move_desc_make(void)
|
|
|
|
{
|
|
|
|
Eet_Data_Descriptor_Class eddc;
|
2012-02-23 05:59:44 -08:00
|
|
|
Eet_Data_Descriptor *_d;
|
2011-12-06 08:05:14 -08:00
|
|
|
EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, multi_move);
|
2012-02-23 05:59:44 -08:00
|
|
|
_d = eet_data_descriptor_stream_new(&eddc);
|
|
|
|
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_move, "d", d, EET_T_UINT);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_move, "x", x, EET_T_UINT);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_move, "y", y, EET_T_UINT);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_move, "rad", rad, EET_T_DOUBLE);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_move, "radx", radx, EET_T_DOUBLE);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_move, "rady", rady, EET_T_DOUBLE);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_move, "pres", pres, EET_T_DOUBLE);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_move, "ang", ang, EET_T_DOUBLE);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_move, "fx", fx, EET_T_DOUBLE);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_move, "fy", fy, EET_T_DOUBLE);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_move, "timestamp",
|
2011-12-06 08:05:14 -08:00
|
|
|
timestamp, EET_T_UINT);
|
2012-02-23 05:59:44 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_d, multi_move, "n_evas",
|
2012-02-14 05:52:41 -08:00
|
|
|
n_evas, EET_T_INT);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2012-02-23 05:59:44 -08:00
|
|
|
return _d;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
2016-10-12 21:46:39 -07:00
|
|
|
#define INFO_CHECK(i1, i2, obj_path, var) \
|
|
|
|
({ \
|
|
|
|
Eina_Bool _ret = EINA_TRUE; \
|
|
|
|
if (i1->var != i2->var) \
|
|
|
|
{ \
|
|
|
|
if (verbose) fprintf(stderr, "%s value is different for %s: %d-%d\n", #var, obj_path, i1->var, i2->var); \
|
|
|
|
_ret = EINA_FALSE; \
|
|
|
|
} \
|
|
|
|
_ret; \
|
|
|
|
})
|
|
|
|
|
|
|
|
|
2018-02-14 00:11:11 -08:00
|
|
|
#if 0
|
2016-10-12 21:46:39 -07:00
|
|
|
static Eina_Bool
|
|
|
|
_object_info_compare(Object_Info *info1, Object_Info *info2, Eina_Bool verbose, const char *path)
|
|
|
|
{
|
|
|
|
/* The caller has to give 2 infos whose kl_name and id are respectively the same */
|
|
|
|
Eina_List *itr1, *itr2;
|
|
|
|
Object_Info *c1, *c2;
|
|
|
|
int cnt1, cnt2;
|
|
|
|
Eina_Bool ret = EINA_TRUE;
|
|
|
|
char fpath[512];
|
|
|
|
if (!info1 || !info2) return EINA_FALSE;
|
|
|
|
if (info1->kl_name)
|
|
|
|
sprintf(fpath, "%s/%s_%d", path, info1->kl_name, info1->id);
|
|
|
|
else
|
|
|
|
*fpath = '\0';
|
|
|
|
|
|
|
|
ret &= INFO_CHECK(info1, info2, fpath, x);
|
|
|
|
ret &= INFO_CHECK(info1, info2, fpath, y);
|
|
|
|
ret &= INFO_CHECK(info1, info2, fpath, w);
|
|
|
|
ret &= INFO_CHECK(info1, info2, fpath, h);
|
|
|
|
|
|
|
|
cnt1 = eina_list_count(info1->children);
|
|
|
|
cnt2 = eina_list_count(info2->children);
|
|
|
|
if (cnt1 != cnt2 && verbose)
|
|
|
|
fprintf(stderr, "Object %s - number of children differs (%d - %d)\n", fpath, cnt1, cnt2);
|
|
|
|
EINA_LIST_FOREACH(info1->children, itr1, c1)
|
|
|
|
{
|
|
|
|
Eina_Bool found = EINA_FALSE;
|
|
|
|
if (!verbose && !ret) goto end;
|
|
|
|
EINA_LIST_FOREACH(info2->children, itr2, c2)
|
|
|
|
{
|
|
|
|
if (!found && c1->id == c2->id && c1->kl_name == c2->kl_name)
|
|
|
|
{
|
|
|
|
found = EINA_TRUE;
|
|
|
|
ret &= _object_info_compare(c1, c2, verbose, fpath);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
end:
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
EAPI Eina_Bool
|
|
|
|
objects_files_compare(const char *filename1, const char *filename2, Eina_Bool verbose)
|
|
|
|
{
|
|
|
|
Eina_Bool ret = EINA_FALSE;
|
|
|
|
Eet_File *f1, *f2;
|
|
|
|
Eet_Data_Descriptor *desc = NULL;
|
|
|
|
Object_Info *lst1 = NULL, *lst2 = NULL;
|
|
|
|
|
|
|
|
f1 = eet_open(filename1, EET_FILE_MODE_READ);
|
|
|
|
f2 = eet_open(filename2, EET_FILE_MODE_READ);
|
2018-02-14 00:11:11 -08:00
|
|
|
desc = _object_info_desc_make();
|
2016-10-12 21:46:39 -07:00
|
|
|
if (!f1 || !f2)
|
|
|
|
{
|
|
|
|
if (verbose) fprintf(stderr, "Can't open %s\n", !f1?filename1:filename2);
|
|
|
|
goto end;
|
|
|
|
}
|
|
|
|
|
|
|
|
lst1 = eet_data_read(f1, desc, "entry");
|
|
|
|
lst2 = eet_data_read(f2, desc, "entry");
|
|
|
|
if (!lst1 || !lst2)
|
|
|
|
{
|
|
|
|
if (verbose) fprintf(stderr, "Can't decode %s data\n", !lst1?filename1:filename2);
|
|
|
|
goto end;
|
|
|
|
}
|
|
|
|
|
2018-02-14 00:11:11 -08:00
|
|
|
// ret = _object_info_compare(lst1, lst2, verbose, NULL);
|
2016-10-12 21:46:39 -07:00
|
|
|
end:
|
|
|
|
if (desc) eet_data_descriptor_free(desc);
|
|
|
|
if (f1) eet_close(f1);
|
|
|
|
if (f2) eet_close(f2);
|
|
|
|
return ret;
|
|
|
|
}
|
2018-02-14 00:11:11 -08:00
|
|
|
#endif
|
2016-10-12 21:46:39 -07:00
|
|
|
|
2011-12-06 08:05:14 -08:00
|
|
|
/* declaring types */
|
|
|
|
data_desc *_data_descriptors_init(void)
|
|
|
|
{
|
2016-10-15 22:26:11 -07:00
|
|
|
if (_desc) /* Was allocated */
|
|
|
|
return _desc;
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
_desc = calloc(1, sizeof(data_desc));
|
2011-12-06 08:05:14 -08:00
|
|
|
|
|
|
|
Eet_Data_Descriptor_Class eddc;
|
|
|
|
|
|
|
|
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Lists_st);
|
2016-10-15 22:26:11 -07:00
|
|
|
_desc->_lists_descriptor = eet_data_descriptor_file_new(&eddc);
|
|
|
|
|
|
|
|
_desc->take_screenshot = take_screenshot_desc_make();
|
|
|
|
_desc->mouse_in_mouse_out = mouse_in_mouse_out_desc_make();
|
|
|
|
_desc->mouse_down_mouse_up = mouse_down_mouse_up_desc_make();
|
|
|
|
_desc->mouse_move = mouse_move_desc_make();
|
|
|
|
_desc->mouse_wheel = mouse_wheel_desc_make();
|
|
|
|
_desc->multi_event = multi_event_desc_make();
|
|
|
|
_desc->multi_move = multi_move_desc_make();
|
|
|
|
_desc->key_down_key_up = key_down_key_up_desc_make();
|
|
|
|
_desc->key_down_key_up_with_keycode = key_down_key_up_with_keycode_desc_make();
|
2011-12-06 08:05:14 -08:00
|
|
|
|
|
|
|
/* for variant */
|
|
|
|
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Variant_st);
|
2016-10-15 22:26:11 -07:00
|
|
|
_desc->_variant_descriptor = eet_data_descriptor_file_new(&eddc);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
|
|
|
eddc.version = EET_DATA_DESCRIPTOR_CLASS_VERSION;
|
|
|
|
eddc.func.type_get = _variant_type_get;
|
|
|
|
eddc.func.type_set = _variant_type_set;
|
2016-10-15 22:26:11 -07:00
|
|
|
_desc->_variant_unified_descriptor = eet_data_descriptor_stream_new(&eddc);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor,
|
|
|
|
TSUITE_EVENT_MOUSE_IN_STR, _desc->mouse_in_mouse_out);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor,
|
|
|
|
TSUITE_EVENT_MOUSE_OUT_STR, _desc->mouse_in_mouse_out);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor,
|
|
|
|
TSUITE_EVENT_MOUSE_DOWN_STR, _desc->mouse_down_mouse_up);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor,
|
|
|
|
TSUITE_EVENT_MOUSE_UP_STR, _desc->mouse_down_mouse_up);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor,
|
|
|
|
TSUITE_EVENT_MOUSE_MOVE_STR, _desc->mouse_move);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor,
|
|
|
|
TSUITE_EVENT_MOUSE_WHEEL_STR, _desc->mouse_wheel);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor,
|
|
|
|
TSUITE_EVENT_MULTI_DOWN_STR, _desc->multi_event);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor,
|
|
|
|
TSUITE_EVENT_MULTI_UP_STR, _desc->multi_event);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor,
|
|
|
|
TSUITE_EVENT_MULTI_MOVE_STR, _desc->multi_move);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor,
|
|
|
|
TSUITE_EVENT_KEY_DOWN_STR, _desc->key_down_key_up);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor,
|
|
|
|
TSUITE_EVENT_KEY_UP_STR, _desc->key_down_key_up);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor,
|
|
|
|
TSUITE_EVENT_KEY_DOWN_WITH_KEYCODE_STR, _desc->key_down_key_up_with_keycode);
|
2015-03-04 06:55:17 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor,
|
|
|
|
TSUITE_EVENT_KEY_UP_WITH_KEYCODE_STR, _desc->key_down_key_up_with_keycode);
|
2015-03-04 06:55:17 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor,
|
|
|
|
TSUITE_EVENT_TAKE_SHOT_STR, _desc->take_screenshot);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_VARIANT(_desc->_variant_descriptor,
|
|
|
|
Variant_st, "data", data, t, _desc->_variant_unified_descriptor);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_desc->_lists_descriptor,
|
2016-03-23 02:42:47 -07:00
|
|
|
Lists_st, "first_timestamp", first_timestamp, EET_T_UINT);
|
2016-10-15 22:26:11 -07:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_LIST(_desc->_lists_descriptor,
|
|
|
|
Lists_st, "variant_list", variant_list, _desc->_variant_descriptor);
|
2011-12-06 08:05:14 -08:00
|
|
|
|
2016-10-15 22:26:11 -07:00
|
|
|
return _desc;
|
2011-12-06 08:05:14 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
void _data_descriptors_shutdown(void)
|
|
|
|
{
|
2016-10-15 22:26:11 -07:00
|
|
|
if (_desc)
|
2011-12-06 08:05:14 -08:00
|
|
|
{
|
2016-10-15 22:26:11 -07:00
|
|
|
eet_data_descriptor_free(_desc->mouse_in_mouse_out);
|
|
|
|
eet_data_descriptor_free(_desc->mouse_down_mouse_up);
|
|
|
|
eet_data_descriptor_free(_desc->mouse_move);
|
|
|
|
eet_data_descriptor_free(_desc->mouse_wheel);
|
|
|
|
eet_data_descriptor_free(_desc->multi_event);
|
|
|
|
eet_data_descriptor_free(_desc->multi_move);
|
|
|
|
eet_data_descriptor_free(_desc->key_down_key_up);
|
|
|
|
eet_data_descriptor_free(_desc->key_down_key_up_with_keycode);
|
|
|
|
eet_data_descriptor_free(_desc->take_screenshot);
|
|
|
|
eet_data_descriptor_free(_desc->_lists_descriptor);
|
|
|
|
eet_data_descriptor_free(_desc->_variant_descriptor);
|
|
|
|
eet_data_descriptor_free(_desc->_variant_unified_descriptor);
|
|
|
|
|
|
|
|
free(_desc);
|
|
|
|
_desc = NULL;
|
2011-12-06 08:05:14 -08:00
|
|
|
/* FIXME: Should probably only init and shutdown once */
|
|
|
|
}
|
|
|
|
}
|
2018-01-24 23:58:56 -08:00
|
|
|
|
2018-01-30 01:37:37 -08:00
|
|
|
static Eet_Data_Descriptor *
|
|
|
|
_unit_desc_make(void)
|
2018-01-24 23:58:56 -08:00
|
|
|
{
|
|
|
|
Eet_Data_Descriptor_Class eddc;
|
|
|
|
static Eet_Data_Descriptor *unit_d = NULL;
|
2018-02-14 00:11:11 -08:00
|
|
|
static Eet_Data_Descriptor *obj_d = NULL;
|
|
|
|
static Eet_Data_Descriptor *objs_d = NULL;
|
2018-01-24 23:58:56 -08:00
|
|
|
_data_descriptors_init();
|
2018-02-14 00:11:11 -08:00
|
|
|
if (!obj_d)
|
|
|
|
{
|
|
|
|
EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Exactness_Object);
|
|
|
|
obj_d = eet_data_descriptor_stream_new(&eddc);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(obj_d, Exactness_Object, "kl_name", kl_name, EET_T_STRING);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(obj_d, Exactness_Object, "id", id, EET_T_ULONG_LONG);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(obj_d, Exactness_Object, "parent_id", parent_id, EET_T_ULONG_LONG);
|
|
|
|
/* Evas stuff */
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(obj_d, Exactness_Object, "x", x, EET_T_INT);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(obj_d, Exactness_Object, "y", y, EET_T_INT);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(obj_d, Exactness_Object, "w", w, EET_T_INT);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(obj_d, Exactness_Object, "h", h, EET_T_INT);
|
|
|
|
|
|
|
|
EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Exactness_Objects);
|
|
|
|
objs_d = eet_data_descriptor_stream_new(&eddc);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_LIST(objs_d, Exactness_Objects, "objs", objs, obj_d);
|
|
|
|
}
|
2018-01-24 23:58:56 -08:00
|
|
|
if (!unit_d)
|
|
|
|
{
|
|
|
|
/* Exactness_Unit */
|
|
|
|
EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Exactness_Unit);
|
|
|
|
unit_d = eet_data_descriptor_stream_new(&eddc);
|
|
|
|
EET_DATA_DESCRIPTOR_ADD_LIST(unit_d, Exactness_Unit,
|
|
|
|
"events", events, _desc->_variant_descriptor);
|
2018-02-14 00:11:11 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_LIST(unit_d, Exactness_Unit,
|
|
|
|
"objs", objs, objs_d);
|
2018-01-30 01:37:37 -08:00
|
|
|
EET_DATA_DESCRIPTOR_ADD_BASIC(unit_d, Exactness_Unit,
|
|
|
|
"nb_shots", nb_shots, EET_T_UINT);
|
2018-01-24 23:58:56 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
return unit_d;
|
|
|
|
}
|
2011-12-06 08:05:14 -08:00
|
|
|
/* END Event struct descriptors */
|
2018-01-30 01:37:37 -08:00
|
|
|
|
|
|
|
EAPI Exactness_Unit *
|
|
|
|
unit_eet_read(const char *filename)
|
|
|
|
{
|
|
|
|
int i;
|
2018-02-14 00:11:11 -08:00
|
|
|
Eina_List *itr, *itr2;
|
|
|
|
Exactness_Objects *e_objs;
|
|
|
|
Exactness_Object *e_obj, *e_parent;
|
2018-01-30 01:37:37 -08:00
|
|
|
Exactness_Unit *unit = NULL;
|
|
|
|
Eet_File *file = eet_open(filename, EET_FILE_MODE_READ);
|
|
|
|
if (!file)
|
|
|
|
{
|
|
|
|
fprintf(stderr, "Impossible to extract EET from %s\n", filename);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
unit = eet_data_read(file, _unit_desc_make(), CACHE_FILE_ENTRY);
|
|
|
|
for (i = 0; i < unit->nb_shots; i++)
|
|
|
|
{
|
|
|
|
char entry[16];
|
|
|
|
Exactness_Image *ex_img = malloc(sizeof(*ex_img));
|
|
|
|
sprintf(entry, "images/%d", i + 1);
|
|
|
|
ex_img->pixels = eet_data_image_read(file, entry,
|
|
|
|
&ex_img->w, &ex_img->h, &ex_img->alpha,
|
|
|
|
NULL, NULL, NULL);
|
|
|
|
unit->imgs = eina_list_append(unit->imgs, ex_img);
|
|
|
|
}
|
2018-02-14 00:11:11 -08:00
|
|
|
EINA_LIST_FOREACH(unit->objs, itr, e_objs)
|
|
|
|
{
|
|
|
|
e_objs->hash = eina_hash_pointer_new(NULL);
|
|
|
|
EINA_LIST_FOREACH(e_objs->objs, itr2, e_obj)
|
|
|
|
{
|
|
|
|
eina_hash_set(e_objs->hash, &(e_obj->id), e_obj);
|
|
|
|
}
|
|
|
|
EINA_LIST_FOREACH(e_objs->objs, itr2, e_obj)
|
|
|
|
{
|
|
|
|
if (!e_obj->parent_id)
|
|
|
|
e_objs->main_objs = eina_list_append(e_objs->main_objs, e_obj);
|
|
|
|
else
|
|
|
|
{
|
|
|
|
e_parent = eina_hash_find(e_objs->hash, &(e_obj->parent_id));
|
|
|
|
if (e_parent) e_parent->children = eina_list_append(e_parent->children, e_obj);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2018-01-30 01:37:37 -08:00
|
|
|
eet_close(file);
|
|
|
|
return unit;
|
|
|
|
}
|
|
|
|
|
|
|
|
EAPI Eina_Bool unit_eet_write(Exactness_Unit *unit, const char *filename)
|
|
|
|
{
|
|
|
|
Eina_List *itr;
|
|
|
|
Exactness_Image *ex_img;
|
|
|
|
int i = 1;
|
|
|
|
Eet_File *file = eet_open(filename, EET_FILE_MODE_WRITE);
|
|
|
|
eet_data_write(file, _unit_desc_make(), CACHE_FILE_ENTRY, unit, EINA_TRUE);
|
|
|
|
EINA_LIST_FOREACH(unit->imgs, itr, ex_img)
|
|
|
|
{
|
|
|
|
char entry[16];
|
|
|
|
sprintf(entry, "images/%d", i++);
|
|
|
|
eet_data_image_write(file, entry,
|
|
|
|
ex_img->pixels, ex_img->w, ex_img->h, ex_img->alpha,
|
|
|
|
0, 100, EET_IMAGE_LOSSLESS);
|
|
|
|
}
|
|
|
|
eet_close(file);
|
|
|
|
return EINA_TRUE;
|
|
|
|
}
|
|
|
|
|