exactness: Fixed Multuple-evas support

Signed-off-by: Aharon Hillel <a.hillel@partner.samsung.com>

SVN revision: 67928
This commit is contained in:
Aharon Hillel 2012-02-14 13:52:41 +00:00 committed by Tom Hacohen
parent 64137e1da6
commit eb03cf9f84
3 changed files with 278 additions and 89 deletions

View File

@ -35,6 +35,7 @@ static char *shot_key = SHOT_KEY_STR;
static Lists_st *vr_list = NULL;
static evas_hook_setting *_hook_setting = NULL;
static Tsuite_Data ts;
static Eina_List *evas_list = NULL; /* List of Evas pointers */
/**
* @internal
@ -145,9 +146,9 @@ tsuite_evas_hook_reset(void)
* @ingroup Tsuite
*/
void
tsuite_shot_do(char *name)
tsuite_shot_do(char *name, Evas *e)
{
if (!ts.e)
if (!e)
return;
Ecore_Evas *ee, *ee_orig;
@ -182,8 +183,7 @@ tsuite_shot_do(char *name)
}
/* A bit hackish, get the ecore_evas from the Evas canvas */
ee_orig = evas_data_attach_get(ts.e);
printf("<%s> ts.e=<%p> ee_orig=<%p> file=<%s>\n", __func__, ts.e, ee_orig, filename);
ee_orig = evas_data_attach_get(e);
ecore_evas_manual_render(ee_orig);
pixels = (void *)ecore_evas_buffer_pixels_get(ee_orig);
@ -210,7 +210,6 @@ ecore_init(void)
int (*_ecore_init)(void) =
dlsym(RTLD_NEXT, "ecore_init");
printf("<%s> Calling %s\n", __FILE__, __func__);
if (!_hook_setting)
{
_hook_setting = calloc(1, sizeof(evas_hook_setting));
@ -219,17 +218,15 @@ ecore_init(void)
_hook_setting->dest_dir = getenv("TSUITE_DEST_DIR");
_hook_setting->test_name = getenv("TSUITE_TEST_NAME");
_hook_setting->file_name = getenv("TSUITE_FILE_NAME");
#ifdef DEBUG_TSUITE
printf("<%s> test_name=<%s>\n", __func__, _hook_setting->test_name);
printf("<%s> base_dir=<%s>\n", __func__, _hook_setting->base_dir);
printf("<%s> dest_dir=<%s>\n", __func__, _hook_setting->dest_dir);
printf("<%s> recording=<%s>\n", __func__, _hook_setting->recording);
printf("<%s> rec file is <%s>\n", __func__, _hook_setting->file_name);
#endif
if (_hook_setting->recording)
tsuite_evas_hook_init();
printf("<%s> TSUITE_INI! %s\n", __FILE__, __func__);
}
return _ecore_init();
@ -255,6 +252,8 @@ ecore_shutdown(void)
if (ts.td)
free(ts.td);
evas_list = eina_list_free(evas_list);
memset(&ts, 0, sizeof(Tsuite_Data));
return _ecore_shutdown();
}
@ -267,7 +266,11 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
dlsym(RTLD_NEXT, "elm_win_add");
win = _elm_win_add(parent, name, type);
ts.e = evas_object_evas_get(win);
evas_list = eina_list_append(evas_list, evas_object_evas_get(win));
#ifdef DEBUG_TSUITE
printf("Appended EVAS=<%p> list size=<%d>\n", evas_object_evas_get(win), eina_list_count(evas_list));
#endif
return win;
}
@ -301,9 +304,10 @@ tsuite_feed_event(void *data)
mouse_in_mouse_out *t = v->data;
evt_time = t->timestamp;
#ifdef DEBUG_TSUITE
printf("%s evas_event_feed_mouse_in timestamp=<%u>\n", __func__, t->timestamp);
printf("%s evas_event_feed_mouse_in timestamp=<%u> t->n_evas=<%d>\n", __func__, t->timestamp, t->n_evas);
#endif
evas_event_feed_mouse_in(td->e, time(NULL), NULL);
evas_event_feed_mouse_in(eina_list_nth(evas_list, t->n_evas),
time(NULL), NULL);
break;
}
case TSUITE_EVENT_MOUSE_OUT:
@ -311,9 +315,10 @@ tsuite_feed_event(void *data)
mouse_in_mouse_out *t = v->data;
evt_time = t->timestamp;
#ifdef DEBUG_TSUITE
printf("%s evas_event_feed_mouse_out timestamp=<%u>\n", __func__, t->timestamp);
printf("%s evas_event_feed_mouse_out timestamp=<%u> t->n_evas=<%d>\n", __func__, t->timestamp,t->n_evas);
#endif
evas_event_feed_mouse_out(td->e, time(NULL), NULL);
evas_event_feed_mouse_out(eina_list_nth(evas_list, t->n_evas),
time(NULL), NULL);
break;
}
case TSUITE_EVENT_MOUSE_DOWN:
@ -321,9 +326,10 @@ tsuite_feed_event(void *data)
mouse_down_mouse_up *t = v->data;
evt_time = t->timestamp;
#ifdef DEBUG_TSUITE
printf("%s evas_event_feed_mouse_down timestamp=<%u>\n", __func__, t->timestamp);
printf("%s evas_event_feed_mouse_down timestamp=<%u> t->n_evas=<%d>\n", __func__, t->timestamp, t->n_evas);
#endif
evas_event_feed_mouse_down(td->e, t->b, t->flags, time(NULL),
evas_event_feed_mouse_down(eina_list_nth(evas_list, t->n_evas),
t->b, t->flags, time(NULL),
NULL);
break;
@ -333,9 +339,10 @@ tsuite_feed_event(void *data)
mouse_down_mouse_up *t = v->data;
evt_time = t->timestamp;
#ifdef DEBUG_TSUITE
printf("%s evas_event_feed_mouse_up timestamp=<%u>\n", __func__, t->timestamp);
printf("%s evas_event_feed_mouse_up timestamp=<%u> t->n_evas=<%d>\n", __func__, t->timestamp,t->n_evas);
#endif
evas_event_feed_mouse_up(td->e, t->b, t->flags, time(NULL),
evas_event_feed_mouse_up(eina_list_nth(evas_list, t->n_evas),
t->b, t->flags, time(NULL),
NULL);
break;
@ -345,9 +352,10 @@ tsuite_feed_event(void *data)
mouse_move *t = v->data;
evt_time = t->timestamp;
#ifdef DEBUG_TSUITE
printf("%s evas_event_feed_mouse_move (x,y)=(%d,%d) timestamp=<%u>\n", __func__, t->x, t->y, t->timestamp);
printf("%s evas_event_feed_mouse_move (x,y)=(%d,%d) timestamp=<%u> t->n_evas=<%d>\n", __func__, t->x, t->y, t->timestamp,t->n_evas);
#endif
evas_event_feed_mouse_move(td->e, t->x, t->y, time(NULL), NULL);
evas_event_feed_mouse_move(eina_list_nth(evas_list, t->n_evas),
t->x, t->y, time(NULL), NULL);
break;
}
case TSUITE_EVENT_MOUSE_WHEEL:
@ -355,9 +363,10 @@ tsuite_feed_event(void *data)
mouse_wheel *t = v->data;
evt_time = t->timestamp;
#ifdef DEBUG_TSUITE
printf("%s evas_event_feed_mouse_wheel timestamp=<%u>\n", __func__, t->timestamp);
printf("%s evas_event_feed_mouse_wheel timestamp=<%u> t->n_evas=<%d>\n", __func__, t->timestamp, t->n_evas);
#endif
evas_event_feed_mouse_wheel(td->e, t->direction, t->z,
evas_event_feed_mouse_wheel(eina_list_nth(evas_list, t->n_evas),
t->direction, t->z,
time(NULL), NULL);
break;
@ -367,9 +376,10 @@ tsuite_feed_event(void *data)
multi_event *t = v->data;
evt_time = t->timestamp;
#ifdef DEBUG_TSUITE
printf("%s evas_event_feed_multi_down timestamp=<%u>\n", __func__, t->timestamp);
printf("%s evas_event_feed_multi_down timestamp=<%u>, t->n_evas=<%d>\n", __func__, t->timestamp,t->n_evas);
#endif
evas_event_feed_multi_down(td->e, t->d, t->x, t->y, t->rad,
evas_event_feed_multi_down(eina_list_nth(evas_list, t->n_evas),
t->d, t->x, t->y, t->rad,
t->radx, t->rady, t->pres, t->ang, t->fx, t->fy,
t->flags, time(NULL), NULL);
@ -380,9 +390,10 @@ tsuite_feed_event(void *data)
multi_event *t = v->data;
evt_time = t->timestamp;
#ifdef DEBUG_TSUITE
printf("%s evas_event_feed_multi_up timestamp=<%u>\n", __func__, t->timestamp);
printf("%s evas_event_feed_multi_up timestamp=<%u> t->n_evas=<%d>\n", __func__, t->timestamp,t->n_evas);
#endif
evas_event_feed_multi_up(td->e, t->d, t->x, t->y, t->rad,
evas_event_feed_multi_up(eina_list_nth(evas_list, t->n_evas),
t->d, t->x, t->y, t->rad,
t->radx, t->rady, t->pres, t->ang, t->fx, t->fy,
t->flags, time(NULL), NULL);
@ -393,9 +404,10 @@ tsuite_feed_event(void *data)
multi_move *t = v->data;
evt_time = t->timestamp;
#ifdef DEBUG_TSUITE
printf("%s evas_event_feed_multi_move timestamp=<%u>\n", __func__, t->timestamp);
printf("%s evas_event_feed_multi_move timestamp=<%u> t->n_evas=<%d>\n", __func__, t->timestamp, t->n_evas);
#endif
evas_event_feed_multi_move(td->e, t->d, t->x, t->y, t->rad,
evas_event_feed_multi_move(eina_list_nth(evas_list, t->n_evas),
t->d, t->x, t->y, t->rad,
t->radx, t->rady, t->pres, t->ang, t->fx, t->fy,
time(NULL), NULL);
@ -406,9 +418,10 @@ tsuite_feed_event(void *data)
key_down_key_up *t = v->data;
evt_time = t->timestamp;
#ifdef DEBUG_TSUITE
printf("%s evas_event_feed_key_down timestamp=<%u>\n", __func__, t->timestamp);
printf("%s evas_event_feed_key_down timestamp=<%u> t->n_evas=<%d>\n", __func__, t->timestamp, t->n_evas);
#endif
evas_event_feed_key_down(td->e, t->keyname, t->key, t->string,
evas_event_feed_key_down(eina_list_nth(evas_list, t->n_evas),
t->keyname, t->key, t->string,
t->compose, time(NULL), NULL);
break;
@ -418,9 +431,10 @@ tsuite_feed_event(void *data)
key_down_key_up *t = v->data;
evt_time = t->timestamp;
#ifdef DEBUG_TSUITE
printf("%s evas_event_feed_key_up timestamp=<%u>\n", __func__, t->timestamp);
printf("%s evas_event_feed_key_up timestamp=<%u> t->n_evas=<%d>\n", __func__, t->timestamp, t->n_evas);
#endif
evas_event_feed_key_up(td->e, t->keyname, t->key, t->string,
evas_event_feed_key_up(eina_list_nth(evas_list, t->n_evas),
t->keyname, t->key, t->string,
t->compose, time(NULL), NULL);
break;
@ -430,9 +444,10 @@ tsuite_feed_event(void *data)
take_screenshot *t = v->data;
evt_time = t->timestamp;
#ifdef DEBUG_TSUITE
printf("%s take shot timestamp=<%u>\n", __func__, t->timestamp);
printf("%s take shot timestamp=<%u> t->n_evas=<%d>\n", __func__, t->timestamp, t->n_evas);
#endif
tsuite_shot_do(NULL); /* Serial name based on test-name */
tsuite_shot_do(NULL,
eina_list_nth(evas_list, t->n_evas)); /* Serial name based on test-name */
break;
}
default: /* All non-input events are not handeled */
@ -483,16 +498,15 @@ ecore_main_loop_begin(void)
{
ts.td = calloc(1, sizeof(Timer_Data));
#ifdef DEBUG_TSUITE
printf("<%s> rec file is <%s>\n", _hook_setting->file_name);
printf("<%s> rec file is <%s>\n", __func__, _hook_setting->file_name);
#endif
vr_list = read_events(_hook_setting->file_name, ts.e, ts.td);
vr_list = read_events(_hook_setting->file_name, ts.td);
if (ts.td->current_event)
{ /* Got first event in list, run test */
tsuite_feed_event(ts.td);
}
}
printf("<%s> Calling %s\n", __FILE__, __func__);
return _ecore_main_loop_begin();
}
@ -506,11 +520,29 @@ ecore_main_loop_begin(void)
_variant_type_set(tsuite_event_mapping_type_str_get(EVT_TYPE), \
&v->t, EINA_FALSE); \
memcpy(v->data, &INFO, sizeof(EVT_STRUCT_NAME)); \
printf("recording <%s> time=<%u>\n", #EVT_STRUCT_NAME, ((EVT_STRUCT_NAME *) v->data)->timestamp); \
vr_list->variant_list = eina_list_append(vr_list->variant_list, v); \
} \
} while (0)
static int evas_list_find(void *ptr)
{ /* We just compare the pointers */
Eina_List *l;
void *data;
int n = 0;
EINA_LIST_FOREACH(evas_list, l, data)
{ /* Get the nuber of Evas Pointer */
if (ptr == data)
{
return n;
}
n++;
}
return -1;
}
static Tsuite_Event_Type
tsuite_event_type_get(Evas_Callback_Type t)
{
@ -550,9 +582,11 @@ evas_event_feed_mouse_in(Evas *e, unsigned int timestamp, const void *data)
#ifdef DEBUG_TSUITE
printf("Calling %s timestamp=<%u>\n", __func__, timestamp);
#endif
mouse_in_mouse_out t = { timestamp };
mouse_in_mouse_out t = { timestamp, evas_list_find(e) };
int evt = tsuite_event_type_get(EVAS_CALLBACK_MOUSE_IN);
if (t.n_evas >= 0)
ADD_TO_LIST(evt, mouse_in_mouse_out, t);
void (*orig) (Evas *e, unsigned int timestamp, const void *data) =
dlsym(RTLD_NEXT, __func__);
@ -565,9 +599,11 @@ evas_event_feed_mouse_out(Evas *e, unsigned int timestamp, const void *data)
#ifdef DEBUG_TSUITE
printf("Calling %s timestamp=<%u>\n", __func__, timestamp);
#endif
mouse_in_mouse_out t = { timestamp };
mouse_in_mouse_out t = { timestamp, evas_list_find(e) };
int evt = tsuite_event_type_get(EVAS_CALLBACK_MOUSE_OUT);
if (t.n_evas >= 0)
ADD_TO_LIST(evt, mouse_in_mouse_out, t);
void (*orig) (Evas *e, unsigned int timestamp, const void *data) =
dlsym(RTLD_NEXT, __func__);
@ -581,9 +617,11 @@ evas_event_feed_mouse_down(Evas *e, int b, Evas_Button_Flags flags,
#ifdef DEBUG_TSUITE
printf("Calling %s timestamp=<%u>\n", __func__, timestamp);
#endif
mouse_down_mouse_up t = { b, flags, timestamp };
mouse_down_mouse_up t = { b, flags, timestamp, evas_list_find(e) };
int evt = tsuite_event_type_get(EVAS_CALLBACK_MOUSE_DOWN);
if (t.n_evas >= 0)
ADD_TO_LIST(evt, mouse_down_mouse_up, t);
void (*orig) (Evas *e, int b, Evas_Button_Flags flags,
unsigned int timestamp, const void *data) =
dlsym(RTLD_NEXT, __func__);
@ -598,9 +636,11 @@ evas_event_feed_mouse_up(Evas *e, int b, Evas_Button_Flags flags,
#ifdef DEBUG_TSUITE
printf("Calling %s timestamp=<%u>\n", __func__, timestamp);
#endif
mouse_down_mouse_up t = { b, flags, timestamp };
mouse_down_mouse_up t = { b, flags, timestamp, evas_list_find(e) };
int evt = tsuite_event_type_get(EVAS_CALLBACK_MOUSE_UP);
if (t.n_evas >= 0)
ADD_TO_LIST(evt, mouse_down_mouse_up, t);
void (*orig) (Evas *e, int b, Evas_Button_Flags flags,
unsigned int timestamp, const void *data) =
dlsym(RTLD_NEXT, __func__);
@ -612,12 +652,14 @@ EAPI void
evas_event_feed_mouse_move(Evas *e, int x, int y, unsigned int timestamp,
const void *data)
{
mouse_move t = { x, y, timestamp };
mouse_move t = { x, y, timestamp, evas_list_find(e) };
#ifdef DEBUG_TSUITE
printf("Calling %s timestamp=<%u>\n", __func__, timestamp);
#endif
int evt = tsuite_event_type_get(EVAS_CALLBACK_MOUSE_MOVE);
if (t.n_evas >= 0)
ADD_TO_LIST(evt, mouse_move, t);
void (*orig) (Evas *e, int x, int y, unsigned int timestamp,
const void *data) = dlsym(RTLD_NEXT, __func__);
orig(e, x, y, timestamp, data);
@ -630,9 +672,11 @@ evas_event_feed_mouse_wheel(Evas *e, int direction, int z,
#ifdef DEBUG_TSUITE
printf("Calling %s timestamp=<%u>\n", __func__, timestamp);
#endif
mouse_wheel t = { direction, z, timestamp };
mouse_wheel t = { direction, z, timestamp, evas_list_find(e) };
int evt = tsuite_event_type_get(EVAS_CALLBACK_MOUSE_WHEEL);
if (t.n_evas >= 0)
ADD_TO_LIST(evt, mouse_wheel, t);
void (*orig) (Evas *e, int direction, int z, unsigned int timestamp,
const void *data) = dlsym(RTLD_NEXT, __func__);
@ -649,10 +693,12 @@ evas_event_feed_multi_down(Evas *e, int d, int x, int y,
printf("Calling %s timestamp=<%u>\n", __func__, timestamp);
#endif
multi_event t = { d, x, y, rad, radx, rady, pres, ang,
fx, fy, flags, timestamp };
fx, fy, flags, timestamp, evas_list_find(e) };
int evt = tsuite_event_type_get(EVAS_CALLBACK_MULTI_DOWN);
if (t.n_evas >= 0)
ADD_TO_LIST(evt, multi_event, t);
void (*orig) (Evas *e, int d, int x, int y, double rad,
double radx, double rady, double pres, double ang,
double fx, double fy, Evas_Button_Flags flags,
@ -670,9 +716,11 @@ evas_event_feed_multi_up(Evas *e, int d, int x, int y,
#ifdef DEBUG_TSUITE
printf("Calling %s timestamp=<%u>\n", __func__, timestamp);
#endif
multi_event t = { d, x, y, rad, radx, rady, pres, ang, fx, fy, flags, timestamp };
multi_event t = { d, x, y, rad, radx, rady, pres, ang, fx, fy, flags, timestamp, evas_list_find(e) };
int evt = tsuite_event_type_get(EVAS_CALLBACK_MULTI_UP);
if (t.n_evas >= 0)
ADD_TO_LIST(evt, multi_event, t);
void (*orig) (Evas *e, int d, int x, int y, double rad,
double radx, double rady, double pres, double ang,
double fx, double fy, Evas_Button_Flags flags,
@ -690,9 +738,11 @@ evas_event_feed_multi_move(Evas *e, int d, int x, int y, double rad,
#ifdef DEBUG_TSUITE
printf("Calling %s timestamp=<%u>\n", __func__, timestamp);
#endif
multi_move t = { d, x, y, rad, radx, rady, pres, ang, fx, fy, timestamp };
multi_move t = { d, x, y, rad, radx, rady, pres, ang, fx, fy, timestamp, evas_list_find(e) };
int evt = tsuite_event_type_get(EVAS_CALLBACK_MULTI_MOVE);
if (t.n_evas >= 0)
ADD_TO_LIST(evt, multi_move, t);
void (*orig) (Evas *e, int d, int x, int y, double rad,
double radx, double rady, double pres, double ang,
double fx, double fy, unsigned int timestamp, const void *data) =
@ -719,7 +769,8 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key,
#ifdef DEBUG_TSUITE
printf("Take Screenshot: %s timestamp=<%u>\n", __func__, timestamp);
#endif
take_screenshot t = { timestamp };
take_screenshot t = { timestamp, evas_list_find(e) };
if (t.n_evas >= 0)
ADD_TO_LIST(TSUITE_EVENT_TAKE_SHOT, take_screenshot, t);
orig(e, keyname, key, string, compose, timestamp, data);
@ -735,6 +786,8 @@ evas_event_feed_key_down(Evas *e, const char *keyname, const char *key,
t.key = eina_stringshare_add(key);
t.string = eina_stringshare_add(string);
t.compose = eina_stringshare_add(compose);
t.n_evas = evas_list_find(e);
if (t.n_evas >= 0)
ADD_TO_LIST(evt, key_down_key_up, t);
}
@ -773,6 +826,8 @@ evas_event_feed_key_up(Evas *e, const char *keyname, const char *key,
t.key = eina_stringshare_add(key);
t.string = eina_stringshare_add(string);
t.compose = eina_stringshare_add(compose);
t.n_evas = evas_list_find(e);
if (t.n_evas >= 0)
ADD_TO_LIST(evt, key_down_key_up, t);
}

View File

@ -75,6 +75,102 @@ free_events(Lists_st *st, char *recording)
return NULL;
}
#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;
}
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
void
write_events(const char *filename, Lists_st *vr_list)
{
@ -82,6 +178,9 @@ write_events(const char *filename, Lists_st *vr_list)
Eet_File *fp = eet_open(filename, EET_FILE_MODE_WRITE);
if (fp)
{
#ifdef DEBUG_TSUITE
print_events(vr_list);
#endif
eet_data_write(fp, desc->_lists_descriptor, CACHE_FILE_ENTRY, vr_list,
EINA_TRUE);
@ -96,10 +195,9 @@ write_events(const char *filename, Lists_st *vr_list)
}
Lists_st *
read_events(char *filename, Evas *e, Timer_Data *td)
read_events(char *filename, Timer_Data *td)
{
Lists_st *vr_list;
td->e = e;
td->fp = eet_open(filename, EET_FILE_MODE_READ);
if (!td->fp)
{
@ -115,6 +213,9 @@ read_events(char *filename, Evas *e, Timer_Data *td)
if (!vr_list->variant_list)
return NULL;
#ifdef DEBUG_TSUITE
print_events(vr_list);
#endif
td->current_event = eina_list_nth_list(vr_list->variant_list, 0);
#ifdef DEBUG_TSUITE
printf("%s list size is <%d>\n", __func__, eina_list_count(vr_list->variant_list));
@ -155,29 +256,30 @@ _variant_type_set(const char *type,
} /* _variant_type_set */
/* START - Allocating and setting variant structs */
mouse_in_mouse_out *mouse_in_mouse_out_set(unsigned int timestamp)
mouse_in_mouse_out *mouse_in_mouse_out_set(unsigned int timestamp, int n_evas)
{
mouse_in_mouse_out *st = calloc(1, sizeof(mouse_in_mouse_out));
if (st)
{
st->timestamp = timestamp;
st->n_evas = n_evas;
}
return st;
}
Variant_st *mouse_in_mouse_out_new(Tsuite_Event_Type type,
unsigned int timestamp)
unsigned int timestamp, int n_evas)
{
Variant_st *va = calloc(1, sizeof(Variant_st));
va->t.type = eet_mapping[type].name;
va->data = mouse_in_mouse_out_set(timestamp);
va->data = mouse_in_mouse_out_set(timestamp, n_evas);
return va;
}
mouse_down_mouse_up *mouse_down_mouse_up_set(int b, Evas_Button_Flags flags,
unsigned int timestamp)
unsigned int timestamp, int n_evas)
{
mouse_down_mouse_up *st = calloc(1, sizeof(mouse_down_mouse_up));
if (st)
@ -185,22 +287,23 @@ mouse_down_mouse_up *mouse_down_mouse_up_set(int b, Evas_Button_Flags flags,
st->b = b;
st->flags = flags;
st->timestamp = timestamp;
st->n_evas = n_evas;
}
return st;
}
Variant_st *mouse_down_mouse_up_new(Tsuite_Event_Type type, int b,
Evas_Button_Flags flags, unsigned int timestamp)
Evas_Button_Flags flags, unsigned int timestamp, int n_evas)
{
Variant_st *va = calloc(1, sizeof(Variant_st));
va->t.type = eet_mapping[type].name;
va->data = mouse_down_mouse_up_set(b, flags, timestamp);
va->data = mouse_down_mouse_up_set(b, flags, timestamp, n_evas);
return va;
}
mouse_move *mouse_move_set(int x, int y, unsigned int timestamp)
mouse_move *mouse_move_set(int x, int y, unsigned int timestamp, int n_evas)
{
mouse_move *st = calloc(1, sizeof(mouse_move));
if (st)
@ -208,21 +311,23 @@ mouse_move *mouse_move_set(int x, int y, unsigned int timestamp)
st->x = x;
st->y = y;
st->timestamp = timestamp;
st->n_evas = n_evas;
}
return st;
}
Variant_st *mouse_move_new(int x, int y, unsigned int timestamp)
Variant_st *mouse_move_new(int x, int y, unsigned int timestamp, int n_evas)
{
Variant_st *va = calloc(1, sizeof(Variant_st));
va->t.type = eet_mapping[TSUITE_EVENT_MOUSE_MOVE].name;
va->data = mouse_move_set(x, y, timestamp);
va->data = mouse_move_set(x, y, timestamp, n_evas);
return va;
}
mouse_wheel *mouse_wheel_set(int direction, int z, unsigned int timestamp)
mouse_wheel *mouse_wheel_set(int direction, int z, unsigned int timestamp,
int n_evas)
{
mouse_wheel *st = calloc(1, sizeof(mouse_wheel));
if (st)
@ -230,23 +335,26 @@ mouse_wheel *mouse_wheel_set(int direction, int z, unsigned int timestamp)
st->direction = direction;
st->z = z;
st->timestamp = timestamp;
st->n_evas = n_evas;
}
return st;
}
Variant_st *mouse_wheel_new(int direction, int z, unsigned int timestamp)
Variant_st *mouse_wheel_new(int direction, int z, unsigned int timestamp,
int n_evas)
{
Variant_st *va = calloc(1, sizeof(Variant_st));
va->t.type = eet_mapping[TSUITE_EVENT_MOUSE_WHEEL].name;
va->data = mouse_wheel_set(direction, z, timestamp);
va->data = mouse_wheel_set(direction, z, timestamp, n_evas);
return va;
}
multi_event *multi_event_set(int d, int x, int y, double rad,
double radx, double rady, double pres, double ang,
double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp)
double fx, double fy, Evas_Button_Flags flags,
unsigned int timestamp, int n_evas)
{
multi_event *st = calloc(1, sizeof(multi_event));
if (st)
@ -263,6 +371,7 @@ multi_event *multi_event_set(int d, int x, int y, double rad,
st->fy = fy;
st->flags = flags;
st->timestamp = timestamp;
st->n_evas = n_evas;
}
return st;
@ -270,19 +379,20 @@ multi_event *multi_event_set(int d, int x, int y, double rad,
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,
double fx, double fy, Evas_Button_Flags flags, unsigned int timestamp)
double fx, double fy, Evas_Button_Flags flags,
unsigned int timestamp, int n_evas)
{
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,
flags, timestamp);
flags, timestamp, n_evas);
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,
unsigned int timestamp)
unsigned int timestamp, int n_evas)
{
multi_move *st = calloc(1, sizeof(multi_move));
if (st)
@ -298,6 +408,7 @@ multi_move *multi_move_set(int d, int x, int y, double rad, double radx,
st->fx = fx;
st->fy = fy;
st->timestamp = timestamp;
st->n_evas = n_evas;
}
return st;
@ -305,19 +416,19 @@ multi_move *multi_move_set(int d, int x, int y, double rad, double radx,
Variant_st *multi_move_new(int d, int x, int y,
double rad, double radx,double rady, double pres, double ang,
double fx, double fy, unsigned int timestamp)
double fx, double fy, unsigned int timestamp, int n_evas)
{
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,
fx, fy,timestamp);
fx, fy,timestamp, n_evas);
return va;
}
key_down_key_up *key_down_key_up_set(unsigned int timestamp,
const char *keyname, const char *key, const char *string,
const char *compose)
const char *compose, int n_evas)
{
key_down_key_up *st = calloc(1, sizeof(key_down_key_up));
if (st)
@ -327,6 +438,7 @@ key_down_key_up *key_down_key_up_set(unsigned int timestamp,
st->key = key;
st->string = string;
st->compose = compose;
st->n_evas = n_evas;
}
return st;
@ -334,31 +446,32 @@ key_down_key_up *key_down_key_up_set(unsigned int timestamp,
Variant_st *key_down_key_up_new(Tsuite_Event_Type type,
unsigned int timestamp, const char *keyname, const char *key,
const char *string, const char *compose)
const char *string, const char *compose, int n_evas)
{
Variant_st *va = calloc(1, sizeof(Variant_st));
va->t.type = eet_mapping[type].name;
va->data = key_down_key_up_set(timestamp, keyname, key, string, compose);
va->data = key_down_key_up_set(timestamp, keyname, key, string, compose, n_evas);
return va;
}
take_screenshot *take_screenshot_set(unsigned int timestamp)
take_screenshot *take_screenshot_set(unsigned int timestamp, int n_evas)
{
take_screenshot *st = calloc(1, sizeof(take_screenshot));
if (st)
{
st->timestamp = timestamp;
st->n_evas = n_evas;
}
return st;
}
Variant_st *take_screenshot_new(unsigned int timestamp)
Variant_st *take_screenshot_new(unsigned int timestamp, int n_evas)
{
Variant_st *va = calloc(1, sizeof(Variant_st));
va->t.type = eet_mapping[TSUITE_EVENT_TAKE_SHOT].name;
va->data = take_screenshot_set(timestamp);
va->data = take_screenshot_set(timestamp, n_evas);
return va;
}
@ -375,6 +488,8 @@ take_screenshot_desc_make(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, take_screenshot, "timestamp",
timestamp, EET_T_UINT);
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, take_screenshot, "n_evas",
n_evas, EET_T_INT);
return desc;
}
@ -389,6 +504,8 @@ mouse_in_mouse_out_desc_make(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, mouse_in_mouse_out, "timestamp",
timestamp, EET_T_UINT);
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, mouse_in_mouse_out, "n_evas",
n_evas, EET_T_INT);
return desc;
}
@ -407,6 +524,8 @@ mouse_down_mouse_up_desc_make(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, mouse_down_mouse_up, "timestamp",
timestamp, EET_T_UINT);
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, mouse_down_mouse_up, "n_evas",
n_evas, EET_T_INT);
return desc;
}
@ -423,6 +542,8 @@ mouse_move_desc_make(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, mouse_move, "y", y, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, mouse_move, "timestamp",
timestamp, EET_T_UINT);
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, mouse_move, "n_evas",
n_evas, EET_T_INT);
return desc;
}
@ -441,6 +562,8 @@ mouse_wheel_desc_make(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, mouse_wheel, "z", z, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, mouse_wheel, "timestamp",
timestamp, EET_T_UINT);
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, mouse_wheel, "n_evas",
n_evas, EET_T_INT);
return desc;
}
@ -467,6 +590,8 @@ key_down_key_up_desc_make(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, key_down_key_up, "compose",
compose, EET_T_STRING);
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, key_down_key_up, "n_evas",
n_evas, EET_T_INT);
return desc;
}
@ -492,6 +617,8 @@ multi_event_desc_make(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, multi_event, "flags", flags, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, multi_event, "timestamp",
timestamp, EET_T_UINT);
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, multi_event, "n_evas",
n_evas, EET_T_INT);
return desc;
}
@ -516,6 +643,8 @@ multi_move_desc_make(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, multi_move, "fy", fy, EET_T_DOUBLE);
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, multi_move, "timestamp",
timestamp, EET_T_UINT);
EET_DATA_DESCRIPTOR_ADD_BASIC(desc, multi_move, "n_evas",
n_evas, EET_T_INT);
return desc;
}

View File

@ -52,7 +52,6 @@ struct _Timer_Data
{
Eet_File *fp;
unsigned int recent_event_time;
Evas *e;
Eina_List *current_event;
};
typedef struct _Timer_Data Timer_Data;
@ -60,7 +59,6 @@ typedef struct _Timer_Data Timer_Data;
struct _Tsuite_Data
{
int serial; /**< Serial number of current-file */
Evas *e;
Timer_Data *td;
};
typedef struct _Tsuite_Data Tsuite_Data;
@ -68,6 +66,7 @@ typedef struct _Tsuite_Data Tsuite_Data;
struct _mouse_in_mouse_out
{
unsigned int timestamp;
int n_evas;
};
struct _mouse_down_mouse_up
@ -75,6 +74,7 @@ struct _mouse_down_mouse_up
int b;
Evas_Button_Flags flags;
unsigned int timestamp;
int n_evas;
};
struct _mouse_move
@ -82,6 +82,7 @@ struct _mouse_move
int x;
int y;
unsigned int timestamp;
int n_evas;
};
struct _mouse_wheel
@ -89,6 +90,7 @@ struct _mouse_wheel
int direction;
int z;
unsigned int timestamp;
int n_evas;
};
struct _key_down_key_up
@ -98,6 +100,7 @@ struct _key_down_key_up
const char *key;
const char *string;
const char *compose;
int n_evas;
};
struct _multi_event
@ -114,6 +117,7 @@ struct _multi_event
double fy;
Evas_Button_Flags flags;
unsigned int timestamp;
int n_evas;
};
struct _multi_move
@ -129,6 +133,7 @@ struct _multi_move
double fx;
double fy;
unsigned int timestamp;
int n_evas;
};
typedef struct _mouse_in_mouse_out mouse_in_mouse_out;
@ -199,5 +204,5 @@ Eina_Bool _variant_type_set(const char *type, void *data, Eina_Bool unknow);
Lists_st * free_events(Lists_st *st, char *recording);
void write_events(const char *filename, Lists_st *vr_list);
Lists_st *read_events(char *filename, Evas *e, Timer_Data *td);
Lists_st *read_events(char *filename, Timer_Data *td);
#endif