LttTime window_end = ltt_time_add(control_flow_data->Time_Window.time_width,
control_flow_data->Time_Window.start_time);
- convert_pixels_to_time(Drawing, x,
+ g_critical("req : window_end : %u, %u", window_end.tv_sec,
+ window_end.tv_nsec);
+
+ g_critical("req : time width : %u, %u", control_flow_data->Time_Window.time_width.tv_sec,
+ control_flow_data->Time_Window.time_width.tv_nsec);
+
+ g_critical("x is : %i, x+width is : %i", x, x+width);
+
+ convert_pixels_to_time(width, x,
&control_flow_data->Time_Window.start_time,
&window_end,
&start);
- convert_pixels_to_time(Drawing, x + width,
+ convert_pixels_to_time(width, x + width,
&control_flow_data->Time_Window.start_time,
&window_end,
&end);
width, // do not overlap
height);
- send_test_process(
- guicontrolflow_get_process_list(Drawing->Control_Flow_Data),
- Drawing);
+ //send_test_process(
+ //guicontrolflow_get_process_list(Drawing->Control_Flow_Data),
+ //Drawing);
//send_test_drawing(
//guicontrolflow_get_process_list(Drawing->Control_Flow_Data),
//Drawing, *Pixmap, x, y, width, height);
event_request.time_begin = start;
event_request.time_end = end;
+ 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();
lttv_hooks_add(event, draw_event_hook, &event_request);
* Convert from window pixel and time interval to an absolute time.
*/
void convert_pixels_to_time(
- Drawing_t *Drawing,
+ gint width,
guint x,
LttTime *window_time_begin,
LttTime *window_time_end,
window_time_interval = ltt_time_sub(*window_time_end,
*window_time_begin);
- *time = ltt_time_mul(window_time_interval, (x/(float)Drawing->width));
+ *time = ltt_time_mul(window_time_interval, (x/(float)width));
*time = ltt_time_add(*window_time_begin, *time);
}
LttTime window_time_begin,
LttTime window_time_end,
LttTime time,
- Drawing_t *Drawing,
+ int width,
guint *x)
{
LttTime window_time_interval;
interval_float = ltt_time_to_double(window_time_interval);
time_float = ltt_time_to_double(time);
- *x = (guint)(time_float/interval_float * Drawing->width);
+ *x = (guint)(time_float/interval_float * width);
}
{
EventRequest *Event_Request = (EventRequest*)hook_data;
+ //static int i=0;
+
+ //i++;
+ //g_critical("%i", i);
+
+ /* Text dumping if the information */
+ GString *string = g_string_new("");;
+ gboolean field_names = TRUE, state = TRUE;
+ LttvTracefileContext *tfc = (LttvTracefileContext *)call_data;
+
+ LttvTracefileState *tfs = (LttvTracefileState *)call_data;
+
+ LttEvent *e;
+
+ e = tfc->e;
+
+ lttv_event_to_string(e, tfc->tf, string, TRUE, field_names, tfs);
+ g_string_append_printf(string,"\n");
+
+ if(state) {
+ g_string_append_printf(string, " %s",
+ g_quark_to_string(tfs->process->state->s));
+ }
+
+ g_info("%s",string->str);
+
+ g_string_free(string, TRUE);
+
+ /* End of text dump */
+
+ /* Add process to process list (if not present) and get drawing "y" from
+ * process position */
+ guint pid = tfs->process->pid;
+ LttTime birth = tfs->process->creation_time;
+ guint y = 0, height = 0;
+ ProcessList *process_list =
+ guicontrolflow_get_process_list(Event_Request->Control_Flow_Data);
+
+ if(processlist_get_process_pixels(process_list,
+ pid,
+ &birth,
+ &y,
+ &height) == 1)
+ {
+ /* Process not present */
+ processlist_add(process_list,
+ pid,
+ &birth,
+ &y);
+ drawing_insert_square( Event_Request->Control_Flow_Data->Drawing, y, height);
+ }
+
+ /* Find pixels corresponding to time of the event. If the time does
+ * not fit in the window, show a warning, not supposed to happend. */
+
+
+ /* Finally, draw what represents the event. */
+
return 0;
}