lttv_traceset_context_position_destroy(events_request->start_position);
if(events_request->end_position != NULL)
lttv_traceset_context_position_destroy(events_request->end_position);
+ if(events_request->hooks != NULL)
+ g_array_free(events_request->hooks, TRUE);
if(events_request->before_chunk_traceset != NULL)
lttv_hooks_destroy(events_request->before_chunk_traceset);
if(events_request->before_chunk_trace != NULL)
/* 1.3.2 call before chunk
* 1.3.3 events hooks added
*/
- lttv_process_traceset_begin(tsc, events_request->before_chunk_traceset,
- events_request->before_chunk_trace,
- events_request->before_chunk_tracefile,
- events_request->event,
- events_request->event_by_id);
+ if(events_request->trace == -1)
+ lttv_process_traceset_begin(tsc,
+ events_request->before_chunk_traceset,
+ events_request->before_chunk_trace,
+ events_request->before_chunk_tracefile,
+ events_request->event,
+ events_request->event_by_id);
+ else {
+ guint nb_trace = lttv_traceset_number(tsc->ts);
+ g_assert(events_request->trace < nb_trace &&
+ events_request->trace > -1);
+ LttvTraceContext *tc = tsc->traces[events_request->trace];
+
+ lttv_hooks_call(events_request->before_chunk_traceset, tsc);
+
+ lttv_trace_context_add_hooks(tc,
+ events_request->before_chunk_trace,
+ events_request->before_chunk_tracefile,
+ events_request->event,
+ events_request->event_by_id);
+ }
}
}
} else {
/* - Call before chunk
* - events hooks added
*/
- lttv_process_traceset_begin(tsc, events_request->before_chunk_traceset,
+ if(events_request->trace == -1)
+ lttv_process_traceset_begin(tsc,
+ events_request->before_chunk_traceset,
+ events_request->before_chunk_trace,
+ events_request->before_chunk_tracefile,
+ events_request->event,
+ events_request->event_by_id);
+ else {
+ guint nb_trace = lttv_traceset_number(tsc->ts);
+ g_assert(events_request->trace < nb_trace &&
+ events_request->trace > -1);
+ LttvTraceContext *tc = tsc->traces[events_request->trace];
+
+ lttv_hooks_call(events_request->before_chunk_traceset, tsc);
+
+ lttv_trace_context_add_hooks(tc,
events_request->before_chunk_trace,
events_request->before_chunk_tracefile,
events_request->event,
events_request->event_by_id);
+ }
iter = g_slist_next(iter);
}
/* call before chunk
* events hooks added
*/
- lttv_process_traceset_begin(tsc, events_request->before_chunk_traceset,
- events_request->before_chunk_trace,
- events_request->before_chunk_tracefile,
- events_request->event,
- events_request->event_by_id);
+ if(events_request->trace == -1)
+ lttv_process_traceset_begin(tsc,
+ events_request->before_chunk_traceset,
+ events_request->before_chunk_trace,
+ events_request->before_chunk_tracefile,
+ events_request->event,
+ events_request->event_by_id);
+ else {
+ guint nb_trace = lttv_traceset_number(tsc->ts);
+ g_assert(events_request->trace < nb_trace &&
+ events_request->trace > -1);
+ LttvTraceContext *tc = tsc->traces[events_request->trace];
+
+ lttv_hooks_call(events_request->before_chunk_traceset, tsc);
+
+ lttv_trace_context_add_hooks(tc,
+ events_request->before_chunk_trace,
+ events_request->before_chunk_tracefile,
+ events_request->event,
+ events_request->event_by_id);
+ }
+
+
}
/* Go to next */
/* - Remove events hooks for req
* - Call end chunk for req
*/
- lttv_process_traceset_end(tsc, events_request->after_chunk_traceset,
+
+ if(events_request->trace == -1)
+ lttv_process_traceset_end(tsc,
+ events_request->after_chunk_traceset,
+ events_request->after_chunk_trace,
+ events_request->after_chunk_tracefile,
+ events_request->event,
+ events_request->event_by_id);
+
+ else {
+ guint nb_trace = lttv_traceset_number(tsc->ts);
+ g_assert(events_request->trace < nb_trace &&
+ events_request->trace > -1);
+ LttvTraceContext *tc = tsc->traces[events_request->trace];
+
+ lttv_trace_context_remove_hooks(tc,
events_request->after_chunk_trace,
events_request->after_chunk_tracefile,
events_request->event,
events_request->event_by_id);
+ lttv_hooks_call(events_request->after_chunk_traceset, tsc);
+
+
+ }
+
/* - Call end request for req */
lttv_hooks_call(events_request->after_request, (gpointer)tsc);
/* - Remove events hooks for req
* - Call end chunk for req
*/
- lttv_process_traceset_end(tsc, events_request->after_chunk_traceset,
+ if(events_request->trace == -1)
+ lttv_process_traceset_end(tsc,
+ events_request->after_chunk_traceset,
events_request->after_chunk_trace,
events_request->after_chunk_tracefile,
events_request->event,
events_request->event_by_id);
+ else {
+ guint nb_trace = lttv_traceset_number(tsc->ts);
+ g_assert(events_request->trace < nb_trace &&
+ events_request->trace > -1);
+ LttvTraceContext *tc = tsc->traces[events_request->trace];
+
+ lttv_trace_context_remove_hooks(tc,
+ events_request->after_chunk_trace,
+ events_request->after_chunk_tracefile,
+ events_request->event,
+ events_request->event_by_id);
+
+ lttv_hooks_call(events_request->after_chunk_traceset, tsc);
+ }
+
/* - req.num -= count */
g_assert(events_request->num_events >= count);
events_request->num_events -= count;
"lower",
0.0, /* lower */
"upper",
- ltt_time_to_double(upper)
- * NANOSECONDS_PER_SECOND, /* upper */
+ ltt_time_to_double(upper), /* upper */
"step_increment",
ltt_time_to_double(new_time_window.time_width)
- / SCROLL_STEP_PER_PAGE
- * NANOSECONDS_PER_SECOND, /* step increment */
+ / SCROLL_STEP_PER_PAGE, /* step increment */
"page_increment",
- ltt_time_to_double(new_time_window.time_width)
- * NANOSECONDS_PER_SECOND, /* page increment */
+ ltt_time_to_double(new_time_window.time_width),
+ /* page increment */
"page_size",
- ltt_time_to_double(new_time_window.time_width)
- * NANOSECONDS_PER_SECOND, /* page size */
+ ltt_time_to_double(new_time_window.time_width), /* page size */
NULL);
gtk_adjustment_changed(adjustment);
// "value",
// ltt_time_to_double(
// ltt_time_sub(start_time, time_span.start_time))
- // * NANOSECONDS_PER_SECOND, /* value */
+ // , /* value */
// NULL);
//gtk_adjustment_value_changed(adjustment);
gtk_range_set_value(GTK_RANGE(tab->scrollbar),
ltt_time_to_double(
- ltt_time_sub(start_time, time_span.start_time))
- * NANOSECONDS_PER_SECOND /* value */);
+ ltt_time_sub(start_time, time_span.start_time)) /* value */);
/* set the time bar. */
/* start seconds */
LTTV_TRACESET_CONTEXT(tab->traceset_info->traceset_context);
TimeInterval time_span = tsc->time_span;
- time = ltt_time_add(ltt_time_from_double(value/NANOSECONDS_PER_SECOND),
+ time = ltt_time_add(ltt_time_from_double(value),
time_span.start_time);
new_time_window.start_time = time;
page_size = adjust->page_size;
new_time_window.time_width =
- ltt_time_from_double(page_size/NANOSECONDS_PER_SECOND);
+ ltt_time_from_double(page_size);
time_change_manager(tab, new_time_window);
//time = ltt_time_sub(time_span->end_time, time_span->start_time);
//time = ltt_time_mul(time, (float)ratio);
//time = ltt_time_add(time_span->start_time, time);
- time = ltt_time_add(ltt_time_from_double(value/NANOSECONDS_PER_SECOND),
+ time = ltt_time_add(ltt_time_from_double(value),
time_span.start_time);
time_window.start_time = time;
page_size = adjust->page_size;
time_window.time_width =
- ltt_time_from_double(page_size/NANOSECONDS_PER_SECOND);
+ ltt_time_from_double(page_size);
//time = ltt_time_sub(time_span.end_time, time);
//if(ltt_time_compare(time,time_window.time_width) < 0){
// time_window.time_width = time;
}
LttvTraceset *traceset = new_tab->traceset_info->traceset;
SetTraceset(new_tab, traceset);
+
+ /* Insert default viewers */
+ {
+ LttvAttributeType type;
+ LttvAttributeName name;
+ LttvAttributeValue value;
+ LttvAttribute *attribute;
+
+ LttvIAttribute *attributes_global =
+ LTTV_IATTRIBUTE(lttv_global_attributes());
+
+ g_assert(attribute =
+ LTTV_ATTRIBUTE(lttv_iattribute_find_subdir(
+ LTTV_IATTRIBUTE(attributes_global),
+ LTTV_VIEWER_CONSTRUCTORS)));
+
+ name = g_quark_from_string("guievents");
+ type = lttv_iattribute_get_by_name(LTTV_IATTRIBUTE(attribute),
+ name, &value);
+ if(type == LTTV_POINTER) {
+ lttvwindow_viewer_constructor viewer_constructor =
+ (lttvwindow_viewer_constructor)*value.v_pointer;
+ insert_viewer(new_window, viewer_constructor);
+ }
+
+ name = g_quark_from_string("guicontrolflow");
+ type = lttv_iattribute_get_by_name(LTTV_IATTRIBUTE(attribute),
+ name, &value);
+ if(type == LTTV_POINTER) {
+ lttvwindow_viewer_constructor viewer_constructor =
+ (lttvwindow_viewer_constructor)*value.v_pointer;
+ insert_viewer(new_window, viewer_constructor);
+ }
+
+ name = g_quark_from_string("guistatistics");
+ type = lttv_iattribute_get_by_name(LTTV_IATTRIBUTE(attribute),
+ name, &value);
+ if(type == LTTV_POINTER) {
+ lttvwindow_viewer_constructor viewer_constructor =
+ (lttvwindow_viewer_constructor)*value.v_pointer;
+ insert_viewer(new_window, viewer_constructor);
+ }
+
+ }
}
g_printf("There are now : %d windows\n",g_slist_length(g_main_window_list));
* destroy the tab
*/
-void tab_destructor(Tab * tab_instance)
+void tab_destructor(Tab * tab)
{
int i, nb, ref_count;
LttvTrace * trace;
- if(tab_instance->attributes)
- g_object_unref(tab_instance->attributes);
+ gtk_object_destroy(GTK_OBJECT(tab->tooltips));
+
+ if(tab->attributes)
+ g_object_unref(tab->attributes);
- if(tab_instance->interrupted_state)
- g_object_unref(tab_instance->interrupted_state);
+ if(tab->interrupted_state)
+ g_object_unref(tab->interrupted_state);
- if(tab_instance->traceset_info->traceset_context != NULL){
+ if(tab->traceset_info->traceset_context != NULL){
//remove state update hooks
lttv_state_remove_event_hooks(
- (LttvTracesetState*)tab_instance->traceset_info->
+ (LttvTracesetState*)tab->traceset_info->
traceset_context);
- lttv_context_fini(LTTV_TRACESET_CONTEXT(tab_instance->traceset_info->
+ lttv_context_fini(LTTV_TRACESET_CONTEXT(tab->traceset_info->
traceset_context));
- g_object_unref(tab_instance->traceset_info->traceset_context);
+ g_object_unref(tab->traceset_info->traceset_context);
}
- if(tab_instance->traceset_info->traceset != NULL) {
- nb = lttv_traceset_number(tab_instance->traceset_info->traceset);
+ if(tab->traceset_info->traceset != NULL) {
+ nb = lttv_traceset_number(tab->traceset_info->traceset);
for(i = 0 ; i < nb ; i++) {
- trace = lttv_traceset_get(tab_instance->traceset_info->traceset, i);
+ trace = lttv_traceset_get(tab->traceset_info->traceset, i);
ref_count = lttv_trace_get_ref_number(trace);
if(ref_count <= 1){
ltt_trace_close(lttv_trace(trace));
}
}
}
- lttv_traceset_destroy(tab_instance->traceset_info->traceset);
+ lttv_traceset_destroy(tab->traceset_info->traceset);
/* Remove the idle events requests processing function of the tab */
- g_idle_remove_by_data(tab_instance);
+ g_idle_remove_by_data(tab);
- g_slist_free(tab_instance->events_requests);
- g_free(tab_instance->traceset_info);
- g_free(tab_instance);
+ g_slist_free(tab->events_requests);
+ g_free(tab->traceset_info);
+ g_free(tab);
}
{
tab->MTimebar = gtk_hbox_new(FALSE, 2);
gtk_widget_show(tab->MTimebar);
- GtkTooltips *tooltips = gtk_tooltips_new();
+ tab->tooltips = gtk_tooltips_new();
tab->MEventBox1a = gtk_event_box_new();
gtk_widget_show(tab->MEventBox1a);
- gtk_tooltips_set_tip(tooltips, tab->MEventBox1a,
+ gtk_tooltips_set_tip(tab->tooltips, tab->MEventBox1a,
"Paste Start and End Times Here", "");
tab->MText1a = gtk_label_new("Time Frame ");
gtk_widget_show(tab->MText1a);
gtk_container_add(GTK_CONTAINER(tab->MEventBox1a), tab->MText1a);
tab->MEventBox1b = gtk_event_box_new();
gtk_widget_show(tab->MEventBox1b);
- gtk_tooltips_set_tip(tooltips, tab->MEventBox1b,
+ gtk_tooltips_set_tip(tab->tooltips, tab->MEventBox1b,
"Paste Start Time Here", "");
tab->MText1b = gtk_label_new("start: ");
gtk_widget_show(tab->MText1b);
gtk_widget_show(tab->MText3a);
tab->MEventBox3b = gtk_event_box_new();
gtk_widget_show(tab->MEventBox3b);
- gtk_tooltips_set_tip(tooltips, tab->MEventBox3b,
+ gtk_tooltips_set_tip(tab->tooltips, tab->MEventBox3b,
"Paste End Time Here", "");
tab->MText3b = gtk_label_new("end:");
gtk_widget_show(tab->MText3b);
gtk_widget_show(tab->MText5a);
tab->MEventBox5b = gtk_event_box_new();
gtk_widget_show(tab->MEventBox5b);
- gtk_tooltips_set_tip(tooltips, tab->MEventBox5b,
+ gtk_tooltips_set_tip(tab->tooltips, tab->MEventBox5b,
"Paste Current Time Here", "");
tab->MText5b = gtk_label_new("Current Time:");
gtk_widget_show(tab->MText5b);