/*! \brief select_datalog_for_import() loads a datalog file for playback \param widget is the Calling widget \param data is unused */ G_MODULE_EXPORT gboolean select_datalog_for_import(GtkWidget *widget, gpointer data) { MtxFileIO *fileio = NULL; gchar *filename = NULL; GIOChannel *iochannel = NULL; ENTER(); reset_logviewer_state(); free_log_info((Log_Info *)DATA_GET(global_data,"log_info")); fileio = g_new0(MtxFileIO ,1); fileio->default_path = g_strdup(DATALOG_DATA_DIR); fileio->project = (const gchar *)DATA_GET(global_data,"project_name"); fileio->parent = lookup_widget("main_window"); fileio->on_top = TRUE; fileio->title = g_strdup("Choose a datalog to view"); fileio->action = GTK_FILE_CHOOSER_ACTION_OPEN; filename = choose_file(fileio); if (filename == NULL) { update_logbar("dlog_view","warning",_("NO FILE opened for logviewing!\n"),FALSE,FALSE,FALSE); EXIT(); return FALSE; } iochannel = g_io_channel_new_file(filename, "r+",NULL); if (!iochannel) { update_logbar("dlog_view","warning",_("File open FAILURE! \n"),FALSE,FALSE,FALSE); EXIT(); return FALSE; } update_logbar("dlog_view",NULL,_("DataLog ViewFile Opened\n"),FALSE,FALSE,FALSE); load_logviewer_file(iochannel); g_io_channel_shutdown(iochannel,FALSE,NULL); g_io_channel_unref(iochannel); update_logbar("dlog_view",NULL,_("LogView File Closed\n"),FALSE,FALSE,FALSE); gtk_widget_set_sensitive(lookup_widget("logviewer_controls_hbox"),TRUE); enable_playback_controls(TRUE); free_mtxfileio(fileio); EXIT(); return TRUE; }
/*! \brief set_logviewer_mode() sets things up for playback mode \param mode Enumeration defining the logviewr mode (live or playback) */ G_MODULE_EXPORT void set_logviewer_mode(Lv_Mode mode) { GtkWidget *widget = NULL; reset_logviewer_state(); free_log_info(DATA_GET(global_data,"log_info")); if (mode == LV_PLAYBACK) { DATA_SET(global_data,"playback_mode",GINT_TO_POINTER(TRUE)); gtk_widget_set_sensitive(lookup_widget("logviewer_select_logfile_button"), TRUE); gtk_widget_set_sensitive(lookup_widget("logviewer_select_params_button"), FALSE); gtk_widget_hide(lookup_widget("logviewer_rt_control_vbox1")); /* This one should NOT be enabled until at least 1 var is selected */ gtk_widget_show(lookup_widget("logviewer_playback_control_vbox1")); gtk_widget_show(lookup_widget("scroll_speed_vbox")); widget = lookup_widget("logviewer_log_position_hscale"); if (GTK_IS_RANGE(widget)) gtk_range_set_value(GTK_RANGE(widget),0.0); hue = -60.0; col_sat = 1.0; col_val = 1.0; } else if (mode == LV_REALTIME) { enable_playback_controls(FALSE); stop_tickler(LV_PLAYBACK_TICKLER); DATA_SET(global_data,"playback_mode",GINT_TO_POINTER(FALSE)); gtk_widget_set_sensitive(lookup_widget("logviewer_select_logfile_button"), FALSE); gtk_widget_set_sensitive(lookup_widget("logviewer_select_params_button"), TRUE); gtk_widget_show(lookup_widget("logviewer_rt_control_vbox1")); gtk_widget_hide(lookup_widget("logviewer_playback_control_vbox1")); gtk_widget_hide(lookup_widget("scroll_speed_vbox")); widget = lookup_widget("logviewer_log_position_hscale"); if (GTK_IS_RANGE(widget)) gtk_range_set_value(GTK_RANGE(widget),100.0); hue = -60.0; col_sat = 1.0; col_val = 1.0; } }