X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Flttvwindow%2Flttvwindow%2Finit_module.c;h=c964481db12e80244a2c56523bc765c002ea72b5;hb=c4e6f4dcd943f5fc42a6f903c2ca336a343a4624;hp=a4e7d4272dfd9b9cc6a5db88d391f35a0f0e91c1;hpb=1ce324c60d5e864674b80514297c97e1a7e2919d;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/init_module.c b/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/init_module.c index a4e7d427..c964481d 100644 --- a/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/init_module.c +++ b/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/init_module.c @@ -27,6 +27,7 @@ #include #include +#include #include #include @@ -48,14 +49,17 @@ #include -LttvTraceInfo LTTV_TRACES, +__EXPORT LttvTraceInfo + LTTV_TRACES, LTTV_COMPUTATION, + LTTV_VIEWER_CONSTRUCTORS, LTTV_REQUESTS_QUEUE, LTTV_REQUESTS_CURRENT, LTTV_NOTIFY_QUEUE, LTTV_NOTIFY_CURRENT, LTTV_COMPUTATION_TRACESET, LTTV_COMPUTATION_TRACESET_CONTEXT, + LTTV_COMPUTATION_SYNC_POSITION, LTTV_BEFORE_CHUNK_TRACESET, LTTV_BEFORE_CHUNK_TRACE, LTTV_BEFORE_CHUNK_TRACEFILE, @@ -80,27 +84,18 @@ LttvHooks *main_hooks; /* Initial trace from command line */ -LttvTrace *g_init_trace = NULL; +static GSList *g_init_trace = NULL; static char *a_trace; +//static char g_init_trace[PATH_MAX] = ""; void lttv_trace_option(void *hook_data) { - LttTrace *trace; - gchar abs_path[PATH_MAX]; - - get_absolute_pathname(a_trace, abs_path); - g_init_trace = lttvwindowtraces_get_trace_by_name(abs_path); - if(g_init_trace == NULL) { - trace = ltt_trace_open(abs_path); - if(trace == NULL) { - g_warning("cannot open trace %s", abs_path); - } else { - g_init_trace = lttv_trace_new(trace); - lttvwindowtraces_add_trace(g_init_trace); - } - } + //LttTrace *trace; + + //get_absolute_pathname(a_trace, g_init_trace); + g_init_trace = g_slist_append(g_init_trace, a_trace); } /***************************************************************************** @@ -128,7 +123,8 @@ static gboolean window_creation_hook(void *hook_data, void *call_data) add_pixmap_directory ("pixmaps"); add_pixmap_directory ("../modules/gui/main/pixmaps"); - construct_main_window(NULL); + /* First window, use command line trace */ + create_main_window_with_trace_list(g_init_trace); gtk_main (); @@ -144,6 +140,7 @@ static void init() { LTTV_TRACES = g_quark_from_string("traces"); LTTV_COMPUTATION = g_quark_from_string("computation"); + LTTV_VIEWER_CONSTRUCTORS = g_quark_from_string("viewer_constructors"); LTTV_REQUESTS_QUEUE = g_quark_from_string("requests_queue"); LTTV_REQUESTS_CURRENT = g_quark_from_string("requests_current"); LTTV_NOTIFY_QUEUE = g_quark_from_string("notify_queue"); @@ -151,6 +148,8 @@ static void init() { LTTV_COMPUTATION_TRACESET = g_quark_from_string("computation_traceset"); LTTV_COMPUTATION_TRACESET_CONTEXT = g_quark_from_string("computation_traceset_context"); + LTTV_COMPUTATION_SYNC_POSITION = + g_quark_from_string("computation_sync_position"); LTTV_BEFORE_CHUNK_TRACESET = g_quark_from_string("before_chunk_traceset"); LTTV_BEFORE_CHUNK_TRACE = g_quark_from_string("before_chunk_trace"); LTTV_BEFORE_CHUNK_TRACEFILE = g_quark_from_string("before_chunk_tracefile"); @@ -228,6 +227,10 @@ main_window_destructor(MainWindow * mw) gtk_widget_destroy(mw->mwindow); } +static void destroy_walk(gpointer data, gpointer user_data) +{ + main_window_destructor((MainWindow*)data); +} /** * plugin's destroy function @@ -241,23 +244,17 @@ static void destroy() { LttvTrace *trace; GSList *iter = NULL; - lttvwindowtraces_unregister_requests(g_quark_from_string("stats")); - lttvwindowtraces_unregister_requests(g_quark_from_string("state")); - lttvwindowtraces_unregister_computation_hooks(g_quark_from_string("stats")); - lttvwindowtraces_unregister_computation_hooks(g_quark_from_string("state")); - lttv_option_remove("trace"); lttv_hooks_remove_data(main_hooks, window_creation_hook, NULL); g_debug("GUI destroy()"); - if(g_main_window_list){ - for(iter=g_main_window_list;iter!=NULL;iter=g_slist_next(iter)) { - main_window_destructor((MainWindow*)iter->data); - } - g_slist_free(g_main_window_list); - } + g_slist_foreach(g_main_window_list, destroy_walk, NULL); + + g_slist_free(g_main_window_list); + + g_slist_free(g_init_trace); }