From eb03cf9f84698c87076a0bdf889945586ecb7f82 Mon Sep 17 00:00:00 2001 From: Aharon Hillel Date: Tue, 14 Feb 2012 13:52:41 +0000 Subject: [PATCH] exactness: Fixed Multuple-evas support Signed-off-by: Aharon Hillel SVN revision: 67928 --- src/lib/tsuite_evas_hook.c | 175 +++++++++++++++++++++++------------ src/lib/tsuite_file_data.c | 181 +++++++++++++++++++++++++++++++------ src/lib/tsuite_file_data.h | 11 ++- 3 files changed, 278 insertions(+), 89 deletions(-) diff --git a/src/lib/tsuite_evas_hook.c b/src/lib/tsuite_evas_hook.c index 888531d..c0293c1 100644 --- a/src/lib/tsuite_evas_hook.c +++ b/src/lib/tsuite_evas_hook.c @@ -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); - ADD_TO_LIST(evt, mouse_in_mouse_out, t); + 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); - ADD_TO_LIST(evt, mouse_in_mouse_out, t); + 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); - ADD_TO_LIST(evt, mouse_down_mouse_up, t); + 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); - ADD_TO_LIST(evt, mouse_down_mouse_up, t); + 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); - ADD_TO_LIST(evt, mouse_move, t); + 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); - ADD_TO_LIST(evt, mouse_wheel, t); + 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); - ADD_TO_LIST(evt, multi_event, t); + 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); - ADD_TO_LIST(evt, multi_event, t); + 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); - ADD_TO_LIST(evt, multi_move, t); + 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,8 +769,9 @@ 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 }; - ADD_TO_LIST(TSUITE_EVENT_TAKE_SHOT, take_screenshot, t); + 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); return; @@ -735,7 +786,9 @@ 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); - ADD_TO_LIST(evt, key_down_key_up, t); + t.n_evas = evas_list_find(e); + if (t.n_evas >= 0) + ADD_TO_LIST(evt, key_down_key_up, t); } orig(e, keyname, key, string, compose, timestamp, data); @@ -773,7 +826,9 @@ 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); - ADD_TO_LIST(evt, key_down_key_up, t); + t.n_evas = evas_list_find(e); + if (t.n_evas >= 0) + ADD_TO_LIST(evt, key_down_key_up, t); } orig(e, keyname, key, string, compose, timestamp, data); diff --git a/src/lib/tsuite_file_data.c b/src/lib/tsuite_file_data.c index bedec6e..cb39c82 100644 --- a/src/lib/tsuite_file_data.c +++ b/src/lib/tsuite_file_data.c @@ -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; } diff --git a/src/lib/tsuite_file_data.h b/src/lib/tsuite_file_data.h index 83558f7..8d3087b 100644 --- a/src/lib/tsuite_file_data.h +++ b/src/lib/tsuite_file_data.h @@ -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