/* Set the tab's time window and current time if
* out of bounds */
if(ltt_time_compare(tab->time_window.start_time, time_span.start_time) < 0
- || ltt_time_compare( ltt_time_add(tab->time_window.start_time,
- tab->time_window.time_width),
+ || ltt_time_compare(tab->time_window.end_time,
time_span.end_time) > 0) {
new_time_window.start_time = time_span.start_time;
tmp_time.tv_sec = time_span.end_time.tv_sec;
tmp_time.tv_nsec = 0;
new_time_window.time_width = tmp_time ;
+ new_time_window.time_width_double = ltt_time_to_double(tmp_time);
+ new_time_window.end_time = ltt_time_add(new_time_window.start_time,
+ new_time_window.time_width) ;
}
time_change_manager(tab, new_time_window);
current_time_change_manager(tab, new_current_time);
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;
if(size == 0){
new_time_window.start_time = time_span.start_time;
new_time_window.time_width = time_delta;
+ new_time_window.time_width_double = ltt_time_to_double(time_delta);
+ new_time_window.end_time = ltt_time_add(new_time_window.start_time,
+ new_time_window.time_width) ;
}else{
new_time_window.time_width = ltt_time_div(new_time_window.time_width, size);
+ new_time_window.time_width_double =
+ ltt_time_to_double(new_time_window.time_width);
if(ltt_time_compare(new_time_window.time_width,time_delta) > 0)
{ /* Case where zoom out is bigger than trace length */
new_time_window.start_time = time_span.start_time;
new_time_window.time_width = time_delta;
+ new_time_window.time_width_double = ltt_time_to_double(time_delta);
+ new_time_window.end_time = ltt_time_add(new_time_window.start_time,
+ new_time_window.time_width) ;
}
else
{
/* Center the image on the current time */
new_time_window.start_time =
- ltt_time_sub(current_time, ltt_time_div(new_time_window.time_width, 2.0));
+ ltt_time_sub(current_time,
+ ltt_time_from_double(new_time_window.time_width_double/2.0));
+ new_time_window.end_time = ltt_time_add(new_time_window.start_time,
+ new_time_window.time_width) ;
/* If on borders, don't fall off */
if(ltt_time_compare(new_time_window.start_time, time_span.start_time) <0)
{
new_time_window.start_time = time_span.start_time;
+ new_time_window.end_time = ltt_time_add(new_time_window.start_time,
+ new_time_window.time_width) ;
}
else
{
- if(ltt_time_compare(
- ltt_time_add(new_time_window.start_time, new_time_window.time_width),
- time_span.end_time) > 0)
+ if(ltt_time_compare(new_time_window.end_time,
+ time_span.end_time) > 0)
{
new_time_window.start_time =
ltt_time_sub(time_span.end_time, new_time_window.time_width);
+
+ new_time_window.end_time = ltt_time_add(new_time_window.start_time,
+ new_time_window.time_width) ;
}
}
LttvTracesetContext *tsc = LTTV_TRACESET_CONTEXT(tab->traceset_info->traceset_context);
TimeInterval time_span = tsc->time_span;
LttTime start_time = new_time_window.start_time;
- LttTime end_time = ltt_time_add(new_time_window.start_time,
- new_time_window.time_width);
+ LttTime end_time = new_time_window.end_time;
/* Set scrollbar */
GtkAdjustment *adjustment = gtk_range_get_adjustment(GTK_RANGE(tab->scrollbar));
"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 */
+ new_time_window.time_width_double
+ / SCROLL_STEP_PER_PAGE, /* step increment */
"page_increment",
- ltt_time_to_double(new_time_window.time_width)
- * NANOSECONDS_PER_SECOND, /* page increment */
+ new_time_window.time_width_double,
+ /* page increment */
"page_size",
- ltt_time_to_double(new_time_window.time_width)
- * NANOSECONDS_PER_SECOND, /* page size */
+ new_time_window.time_width_double, /* 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 */
TimeWindow new_time_window = tab->time_window;
- LttTime end_time = ltt_time_add(new_time_window.start_time,
- new_time_window.time_width);
+ LttTime end_time = new_time_window.end_time;
new_time_window.start_time.tv_sec = value;
new_time_window.start_time.tv_nsec = time_span.end_time.tv_nsec-1;
}
- /* check if end time selected is below or equal */
if(ltt_time_compare(new_time_window.start_time, end_time) >= 0) {
/* Then, we must push back end time : keep the same time width
* if possible, else end traceset time */
- end_time = LTT_TIME_MIN(time_span.end_time,
- ltt_time_add(new_time_window.start_time,
- new_time_window.time_width)
- );
+ end_time = LTT_TIME_MIN(ltt_time_add(new_time_window.start_time,
+ new_time_window.time_width),
+ time_span.end_time);
}
/* Fix the time width to fit start time and end time */
new_time_window.time_width = ltt_time_sub(end_time,
new_time_window.start_time);
+ new_time_window.time_width_double =
+ ltt_time_to_double(new_time_window.time_width);
+
+ new_time_window.end_time = end_time;
time_change_manager(tab, new_time_window);
TimeWindow new_time_window = tab->time_window;
- LttTime end_time = ltt_time_add(new_time_window.start_time,
- new_time_window.time_width);
+ LttTime end_time = new_time_window.end_time;
new_time_window.start_time.tv_nsec = value;
- /* check if end time selected is below or equal */
if(ltt_time_compare(new_time_window.start_time, end_time) >= 0) {
/* Then, we must push back end time : keep the same time width
* if possible, else end traceset time */
- end_time = LTT_TIME_MIN(time_span.end_time,
- ltt_time_add(new_time_window.start_time,
- new_time_window.time_width)
- );
+ end_time = LTT_TIME_MIN(ltt_time_add(new_time_window.start_time,
+ new_time_window.time_width),
+ time_span.end_time);
}
/* Fix the time width to fit start time and end time */
new_time_window.time_width = ltt_time_sub(end_time,
new_time_window.start_time);
+ new_time_window.time_width_double =
+ ltt_time_to_double(new_time_window.time_width);
+
+ new_time_window.end_time = end_time;
time_change_manager(tab, new_time_window);
TimeWindow new_time_window = tab->time_window;
- LttTime end_time = ltt_time_add(new_time_window.start_time,
- new_time_window.time_width);
+ LttTime end_time = new_time_window.end_time;
+
end_time.tv_sec = value;
/* end nanoseconds */
end_time.tv_nsec = time_span.end_time.tv_nsec;
}
- /* check if end time selected is below or equal */
if(ltt_time_compare(new_time_window.start_time, end_time) >= 0) {
/* Then, we must push front start time : keep the same time width
* if possible, else end traceset time */
- new_time_window.start_time = LTT_TIME_MAX(time_span.start_time,
- ltt_time_sub(end_time,
- new_time_window.time_width)
- );
+ new_time_window.start_time = LTT_TIME_MAX(
+ ltt_time_sub(end_time,
+ new_time_window.time_width),
+ time_span.start_time);
}
/* Fix the time width to fit start time and end time */
new_time_window.time_width = ltt_time_sub(end_time,
new_time_window.start_time);
+ new_time_window.time_width_double =
+ ltt_time_to_double(new_time_window.time_width);
+ new_time_window.end_time = end_time;
+
time_change_manager(tab, new_time_window);
}
TimeWindow new_time_window = tab->time_window;
- LttTime end_time = ltt_time_add(new_time_window.start_time,
- new_time_window.time_width);
+ LttTime end_time = new_time_window.end_time;
+
end_time.tv_nsec = value;
- /* check if end time selected is below or equal */
if(ltt_time_compare(new_time_window.start_time, end_time) >= 0) {
/* Then, we must push front start time : keep the same time width
* if possible, else end traceset time */
- new_time_window.start_time = LTT_TIME_MAX(time_span.start_time,
- ltt_time_sub(end_time,
- new_time_window.time_width)
- );
+ new_time_window.start_time = LTT_TIME_MAX(
+ ltt_time_sub(end_time,
+ new_time_window.time_width),
+ time_span.start_time);
}
/* Fix the time width to fit start time and end time */
new_time_window.time_width = ltt_time_sub(end_time,
new_time_window.start_time);
+ new_time_window.time_width_double =
+ ltt_time_to_double(new_time_window.time_width);
+ new_time_window.end_time = end_time;
time_change_manager(tab, new_time_window);
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);
+
+ new_time_window.time_width_double =
+ page_size;
+
+ new_time_window.end_time = ltt_time_add(new_time_window.start_time,
+ new_time_window.time_width);
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;