Added options to run different tests in module batchtest
[lttv.git] / ltt / branches / poly / lttv / modules / gui / detailedevents / events.c
index f2d4a73a203eb7822e99cf74fea4abf12c6810be..17cc9321c5255f45f969668d3e270801245fc1cc 100644 (file)
@@ -1,3 +1,22 @@
+/* This file is part of the Linux Trace Toolkit viewer
+ * Copyright (C) 2003-2004 Mathieu Desnoyers and XangXiu Yang
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License Version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, 
+ * MA 02111-1307, USA.
+ */
+
+
 //*! \defgroup GuiEvents libGuiEvents: The GUI Events display plugin */
 /*\@{*/
 
@@ -27,7 +46,7 @@
 
 #include <lttv/module.h>
 #include <lttv/hook.h>
-#include <lttv/gtkTraceSet.h>
+#include <lttv/gtktraceset.h>
 #include <lttv/processTrace.h>
 #include <lttv/state.h>
 #include <ltt/ltt.h>
@@ -459,12 +478,12 @@ gui_events(MainWindow *parent_window, LttvTracesetSelector * s,char* key )
         G_OBJECT(event_viewer_data->hbox_v),
         MAX_NUMBER_EVENT,
         &event_viewer_data->size);
-  
+/*  
   g_object_set_data(
         G_OBJECT(event_viewer_data->hbox_v),
         TRACESET_TIME_SPAN,
         &event_viewer_data->time_span);
-
+*/
   event_viewer_data->filter_key = g_strdup(key);
   g_object_set_data(
         G_OBJECT(event_viewer_data->hbox_v),
@@ -786,6 +805,12 @@ gboolean show_event_detail(void * hook_data, void * call_data)
   EventViewerData *event_viewer_data = (EventViewerData*) hook_data;
   LttvTracesetContext * tsc = get_traceset_context(event_viewer_data->mw);
 
+  if(event_viewer_data->raw_trace_data_queue_tmp->length == 0 &&
+     event_viewer_data->raw_trace_data_queue->length == 0){
+    event_viewer_data->shown = FALSE;
+    return FALSE;
+  }
+
   if(event_viewer_data->shown == FALSE){
     event_viewer_data->shown = TRUE;
     update_raw_data_array(event_viewer_data, 
@@ -1182,6 +1207,7 @@ gui_events_free(EventViewerData *event_viewer_data)
     unreg_show_viewer(show_event_detail,event_viewer_data, event_viewer_data->mw);
     unreg_update_traceset(traceset_changed,event_viewer_data, event_viewer_data->mw);
 
+    g_free(event_viewer_data->filter_key);
     g_event_viewer_data_list = g_slist_remove(g_event_viewer_data_list, event_viewer_data);
     g_free(event_viewer_data);
   }
@@ -1194,8 +1220,8 @@ gui_events_destructor(EventViewerData *event_viewer_data)
 
   /* May already been done by GTK window closing */
   if(GTK_IS_WIDGET(event_viewer_data->hbox_v)){
+    gui_events_free(event_viewer_data);
     gtk_widget_destroy(event_viewer_data->hbox_v);
-    g_free(event_viewer_data->filter_key);
     event_viewer_data = NULL;
   }
   
@@ -1247,7 +1273,7 @@ void add_context_hooks(EventViewerData * event_viewer_data,
            LttvTracesetContext * tsc)
 {
   gint i, j, k, m,n, nbi, id;
-  gint nb_tracefile, nb_control, nb_per_cpu, nb_facility, nb_event;
+  gint nb_tracefile, nb_facility, nb_event;
   LttTrace *trace;
   LttvTraceContext *tc;
   LttvTracefileContext *tfc;
@@ -1273,19 +1299,14 @@ void add_context_hooks(EventViewerData * event_viewer_data,
     trace = tc->t;
     //if there are hooks for trace, add them here
 
-    nb_control = ltt_trace_control_tracefile_number(trace);
-    nb_per_cpu = ltt_trace_per_cpu_tracefile_number(trace);
-    nb_tracefile = nb_control + nb_per_cpu;
+    nb_tracefile = ltt_trace_control_tracefile_number(trace) +
+        ltt_trace_per_cpu_tracefile_number(trace);
     
     for(j = 0 ; j < nb_tracefile ; j++) {
       tf_s = lttv_trace_selector_tracefile_get(t_s,j);
       selected = lttv_tracefile_selector_get_selected(tf_s);
       if(!selected) continue;
-      
-      if(j < nb_control)
-  tfc = tc->control_tracefiles[j];
-      else
-  tfc = tc->per_cpu_tracefiles[j - nb_control];
+      tfc = tc->tracefiles[j];
       
       //if there are hooks for tracefile, add them here
       //      lttv_tracefile_context_add_hooks(tfc, NULL,NULL,NULL,NULL,
@@ -1323,7 +1344,7 @@ void remove_context_hooks(EventViewerData * event_viewer_data,
         LttvTracesetContext * tsc)
 {
   gint i, j, k, m, nbi, n, id;
-  gint nb_tracefile, nb_control, nb_per_cpu, nb_facility, nb_event;
+  gint nb_tracefile, nb_facility, nb_event;
   LttTrace *trace;
   LttvTraceContext *tc;
   LttvTracefileContext *tfc;
@@ -1349,19 +1370,14 @@ void remove_context_hooks(EventViewerData * event_viewer_data,
     trace = tc->t;
     //if there are hooks for trace, remove them here
 
-    nb_control = ltt_trace_control_tracefile_number(trace);
-    nb_per_cpu = ltt_trace_per_cpu_tracefile_number(trace);
-    nb_tracefile = nb_control + nb_per_cpu;
+    nb_tracefile = ltt_trace_control_tracefile_number(trace) +
+        ltt_trace_per_cpu_tracefile_number(trace);
     
     for(j = 0 ; j < nb_tracefile ; j++) {
       tf_s = lttv_trace_selector_tracefile_get(t_s,j);
       selected = lttv_tracefile_selector_get_selected(tf_s);
       if(!selected) continue;
-      
-      if(j < nb_control)
-  tfc = tc->control_tracefiles[j];
-      else
-  tfc = tc->per_cpu_tracefiles[j - nb_control];
+      tfc = tc->tracefiles[j];
       
       //if there are hooks for tracefile, remove them here
       //      lttv_tracefile_context_remove_hooks(tfc, NULL,NULL,NULL,NULL,
@@ -1422,6 +1438,8 @@ gboolean update_current_time(void * hook_data, void * call_data)
   int i, j;
   LttTime t;
 
+  if(!event_viewer_data->raw_trace_data_queue->head) return FALSE;
+
   if(event_viewer_data->current_time_updated ){
     event_viewer_data->current_time_updated = FALSE;
     return FALSE;
This page took 0.023785 seconds and 4 git commands to generate.