+ // Let's call processTrace() !!
+ EventRequest event_request; // Variable freed at the end of the function.
+ event_request.Control_Flow_Data = control_flow_data;
+ event_request.time_begin = start;
+ event_request.time_end = end;
+ event_request.x_begin = x;
+ event_request.x_end = x+width;
+
+ g_critical("req : start : %u, %u", event_request.time_begin.tv_sec,
+ event_request.time_begin.tv_nsec);
+
+ g_critical("req : end : %u, %u", event_request.time_end.tv_sec,
+ event_request.time_end.tv_nsec);
+
+ LttvHooks *event = lttv_hooks_new();
+ LttvHooks *after_event = lttv_hooks_new();
+ LttvHooks *after_traceset = lttv_hooks_new();
+ lttv_hooks_add(after_traceset, after_data_request, &event_request);
+ lttv_hooks_add(event, draw_event_hook, &event_request);
+ //Modified by xiangxiu: state update hooks are added by the main window
+ //state_add_event_hooks_api(control_flow_data->Parent_Window);
+ lttv_hooks_add(after_event, draw_after_hook, &event_request);
+
+ lttv_process_traceset_seek_time(tsc, start);
+ // FIXME : would like to place the after_traceset hook after the traceset,
+ // but the traceset context state is not valid anymore.
+ lttv_traceset_context_add_hooks(tsc,
+ // NULL, after_traceset, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, after_traceset, NULL, event, after_event);
+ lttv_process_traceset(tsc, end, G_MAXULONG);
+ //after_data_request((void*)&event_request,(void*)tsc);
+ lttv_traceset_context_remove_hooks(tsc,
+ //NULL, after_traceset, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, after_traceset, NULL, event, after_event);
+ //Modified by xiangxiu: state update hooks are removed by the main window
+ //state_remove_event_hooks_api(control_flow_data->Parent_Window);
+
+ lttv_hooks_destroy(after_traceset);
+ lttv_hooks_destroy(event);
+ lttv_hooks_destroy(after_event);
+
+