[Gpredict-svn] SF.net SVN: gpredict:[307] trunk/src/gtk-sat-list.c
Real time satellite tracking and orbit prediction
Status: Beta
Brought to you by:
csete
From: <cs...@us...> - 2009-05-13 20:11:16
|
Revision: 307 http://gpredict.svn.sourceforge.net/gpredict/?rev=307&view=rev Author: csete Date: 2009-05-13 20:11:07 +0000 (Wed, 13 May 2009) Log Message: ----------- Fixed bug 2691792: Potential array index out of range. Modified Paths: -------------- trunk/src/gtk-sat-list.c Modified: trunk/src/gtk-sat-list.c =================================================================== --- trunk/src/gtk-sat-list.c 2009-05-13 19:50:01 UTC (rev 306) +++ trunk/src/gtk-sat-list.c 2009-05-13 20:11:07 UTC (rev 307) @@ -50,89 +50,89 @@ /** \brief Column titles indexed with column symb. refs. */ const gchar *SAT_LIST_COL_TITLE[SAT_LIST_COL_NUMBER] = { - N_("Satellite"), - N_("Catnum"), - N_("Az"), - N_("El"), - N_("Dir"), - N_("Ra"), - N_("Dec"), - N_("Range"), - N_("Rate"), - N_("Next Event"), - N_("Next AOS"), - N_("Next LOS"), - N_("Lat"), - N_("Lon"), - N_("SSP"), - N_("Footp"), - N_("Alt"), - N_("Vel"), - N_("Dop"), - N_("Loss"), - N_("Del"), - N_("MA"), - N_("Phase"), - N_("Orbit"), - N_("Vis") + N_("Satellite"), + N_("Catnum"), + N_("Az"), + N_("El"), + N_("Dir"), + N_("Ra"), + N_("Dec"), + N_("Range"), + N_("Rate"), + N_("Next Event"), + N_("Next AOS"), + N_("Next LOS"), + N_("Lat"), + N_("Lon"), + N_("SSP"), + N_("Footp"), + N_("Alt"), + N_("Vel"), + N_("Dop"), + N_("Loss"), + N_("Del"), + N_("MA"), + N_("Phase"), + N_("Orbit"), + N_("Vis") }; /** \brief Column title hints indexed with column symb. refs. */ const gchar *SAT_LIST_COL_HINT[SAT_LIST_COL_NUMBER] = { - N_("Satellite Name"), - N_("Catalogue Number"), - N_("Azimuth"), - N_("Elevation"), - N_("Direction"), - N_("Right Ascension"), - N_("Declination"), - N_("Slant Range"), - N_("Range Rate"), - N_("Next Event"), - N_("Next AOS"), - N_("Next LOS"), - N_("Latitude"), - N_("Longitude"), - N_("Sub-Satellite Point"), - N_("Footprint"), - N_("Altitude"), - N_("Velocity"), - N_("Doppler Shift @ 100MHz"), - N_("Signal Loss @ 100MHz"), - N_("Signal Delay"), - N_("Mean Anomaly"), - N_("Orbit Phase"), - N_("Orbit Number"), - N_("Visibility") + N_("Satellite Name"), + N_("Catalogue Number"), + N_("Azimuth"), + N_("Elevation"), + N_("Direction"), + N_("Right Ascension"), + N_("Declination"), + N_("Slant Range"), + N_("Range Rate"), + N_("Next Event"), + N_("Next AOS"), + N_("Next LOS"), + N_("Latitude"), + N_("Longitude"), + N_("Sub-Satellite Point"), + N_("Footprint"), + N_("Altitude"), + N_("Velocity"), + N_("Doppler Shift @ 100MHz"), + N_("Signal Loss @ 100MHz"), + N_("Signal Delay"), + N_("Mean Anomaly"), + N_("Orbit Phase"), + N_("Orbit Number"), + N_("Visibility") }; const gfloat SAT_LIST_COL_XALIGN[SAT_LIST_COL_NUMBER] = { - 0.0, // name - 0.5, // catnum - 0.0, // az - 0.0, // el - 0.5, // direction - 0.0, // RA - 0.0, // dec - 0.0, // range - 0.0, // range rate - 0.5, // next event - 0.5, // AOS - 0.5, // LOS - 0.0, // lat - 0.0, // lon - 0.0, // SSP - 0.0, // footprint - 1.0, // alt - 0.0, // vel - 0.0, // doppler - 0.0, // loss - 0.0, // delay - 0.0, // MA - 0.0, // phase - 1.0, // orbit - 0.5, // visibility + 0.0, // name + 0.5, // catnum + 0.0, // az + 0.0, // el + 0.5, // direction + 0.0, // RA + 0.0, // dec + 0.0, // range + 0.0, // range rate + 0.5, // next event + 0.5, // AOS + 0.5, // LOS + 0.0, // lat + 0.0, // lon + 0.0, // SSP + 0.0, // footprint + 1.0, // alt + 0.0, // vel + 0.0, // doppler + 0.0, // loss + 0.0, // delay + 0.0, // MA + 0.0, // phase + 1.0, // orbit + 0.5, // visibility }; static void gtk_sat_list_class_init (GtkSatListClass *class); @@ -140,70 +140,70 @@ static void gtk_sat_list_destroy (GtkObject *object); static GtkTreeModel *create_and_fill_model (GHashTable *sats); static void sat_list_add_satellites (gpointer key, - gpointer value, - gpointer user_data); + gpointer value, + gpointer user_data); static gboolean sat_list_update_sats (GtkTreeModel *model, - GtkTreePath *path, - GtkTreeIter *iter, - gpointer data); + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data); /* cell rendering related functions */ static void check_and_set_cell_renderer (GtkTreeViewColumn *column, - GtkCellRenderer *renderer, - gint i); + GtkCellRenderer *renderer, + gint i); static void latlon_cell_data_function (GtkTreeViewColumn *col, - GtkCellRenderer *renderer, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer column); + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer column); static void degree_cell_data_function (GtkTreeViewColumn *col, - GtkCellRenderer *renderer, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer column); + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer column); static void distance_cell_data_function (GtkTreeViewColumn *col, - GtkCellRenderer *renderer, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer column); + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer column); static void range_rate_cell_data_function (GtkTreeViewColumn *col, - GtkCellRenderer *renderer, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer column); + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer column); static void float_to_int_cell_data_function (GtkTreeViewColumn *col, - GtkCellRenderer *renderer, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer column); + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer column); static void two_dec_cell_data_function (GtkTreeViewColumn *col, - GtkCellRenderer *renderer, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer column); + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer column); static void event_cell_data_function (GtkTreeViewColumn *col, - GtkCellRenderer *renderer, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer column); + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer column); static gboolean popup_menu_cb (GtkWidget *treeview, - gpointer list); + gpointer list); static gboolean button_press_cb (GtkWidget *treeview, - GdkEventButton *event, - gpointer list); + GdkEventButton *event, + gpointer list); static void view_popup_menu (GtkWidget *treeview, - GdkEventButton *event, - gpointer list); + GdkEventButton *event, + gpointer list); static void Calculate_RADec (sat_t *sat, qth_t *qth, obs_astro_t *obs_set); @@ -216,49 +216,49 @@ GType gtk_sat_list_get_type () { - static GType gtk_sat_list_type = 0; + static GType gtk_sat_list_type = 0; - if (!gtk_sat_list_type) - { - static const GTypeInfo gtk_sat_list_info = - { - sizeof (GtkSatListClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) gtk_sat_list_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (GtkSatList), - 5, /* n_preallocs */ - (GInstanceInitFunc) gtk_sat_list_init, - }; + if (!gtk_sat_list_type) + { + static const GTypeInfo gtk_sat_list_info = + { + sizeof (GtkSatListClass), + NULL, /* base_init */ + NULL, /* base_finalize */ + (GClassInitFunc) gtk_sat_list_class_init, + NULL, /* class_finalize */ + NULL, /* class_data */ + sizeof (GtkSatList), + 5, /* n_preallocs */ + (GInstanceInitFunc) gtk_sat_list_init, + }; - gtk_sat_list_type = g_type_register_static (GTK_TYPE_VBOX, - "GtkSatList", - >k_sat_list_info, - 0); - } + gtk_sat_list_type = g_type_register_static (GTK_TYPE_VBOX, + "GtkSatList", + >k_sat_list_info, + 0); + } - return gtk_sat_list_type; + return gtk_sat_list_type; } static void gtk_sat_list_class_init (GtkSatListClass *class) { - GObjectClass *gobject_class; - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - GtkContainerClass *container_class; + GObjectClass *gobject_class; + GtkObjectClass *object_class; + GtkWidgetClass *widget_class; + GtkContainerClass *container_class; - gobject_class = G_OBJECT_CLASS (class); - object_class = (GtkObjectClass*) class; - widget_class = (GtkWidgetClass*) class; - container_class = (GtkContainerClass*) class; + gobject_class = G_OBJECT_CLASS (class); + object_class = (GtkObjectClass*) class; + widget_class = (GtkWidgetClass*) class; + container_class = (GtkContainerClass*) class; - parent_class = g_type_class_peek_parent (class); + parent_class = g_type_class_peek_parent (class); - object_class->destroy = gtk_sat_list_destroy; + object_class->destroy = gtk_sat_list_destroy; } @@ -267,28 +267,28 @@ static void gtk_sat_list_init (GtkSatList *list) { - /* GtkWidget *vbox,*hbox; */ + /* GtkWidget *vbox,*hbox; */ - /* hbox = gtk_hbox_new (TRUE, 5); */ - /* gtk_box_pack_start_defaults (GTK_BOX (hbox), gtk_label_new ("POLAR")); */ - /* gtk_box_pack_start_defaults (GTK_BOX (hbox), gtk_label_new ("LIST")); */ + /* hbox = gtk_hbox_new (TRUE, 5); */ + /* gtk_box_pack_start_defaults (GTK_BOX (hbox), gtk_label_new ("POLAR")); */ + /* gtk_box_pack_start_defaults (GTK_BOX (hbox), gtk_label_new ("LIST")); */ - /* vbox = gtk_vbox_new (TRUE, 5); */ - /* gtk_box_pack_start_defaults (GTK_BOX (vbox), gtk_label_new ("MAP")); */ - /* gtk_box_pack_start_defaults (GTK_BOX (vbox), hbox); */ + /* vbox = gtk_vbox_new (TRUE, 5); */ + /* gtk_box_pack_start_defaults (GTK_BOX (vbox), gtk_label_new ("MAP")); */ + /* gtk_box_pack_start_defaults (GTK_BOX (vbox), hbox); */ - /* gtk_container_add (GTK_CONTAINER (module), vbox); */ - /* gtk_widget_show_all (vbox); */ + /* gtk_container_add (GTK_CONTAINER (module), vbox); */ + /* gtk_widget_show_all (vbox); */ - /* initialise data structures */ + /* initialise data structures */ } static void gtk_sat_list_destroy (GtkObject *object) { - (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); + (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); } @@ -297,116 +297,116 @@ GtkWidget * gtk_sat_list_new (GKeyFile *cfgdata, GHashTable *sats, qth_t *qth, guint32 columns) { - GtkWidget *widget; - GtkTreeModel *model; - guint i; + GtkWidget *widget; + GtkTreeModel *model; + guint i; - GtkCellRenderer *renderer; - GtkTreeViewColumn *column; + GtkCellRenderer *renderer; + GtkTreeViewColumn *column; - widget = g_object_new (GTK_TYPE_SAT_LIST, NULL); + widget = g_object_new (GTK_TYPE_SAT_LIST, NULL); - GTK_SAT_LIST (widget)->update = gtk_sat_list_update; + GTK_SAT_LIST (widget)->update = gtk_sat_list_update; - /* Read configuration data. */ - /* ... */ + /* Read configuration data. */ + /* ... */ - GTK_SAT_LIST (widget)->satellites = sats; - GTK_SAT_LIST (widget)->qth = qth; + GTK_SAT_LIST (widget)->satellites = sats; + GTK_SAT_LIST (widget)->qth = qth; - /* initialise column flags */ - if (columns > 0) - GTK_SAT_LIST (widget)->flags = columns; - else - GTK_SAT_LIST (widget)->flags = mod_cfg_get_int (cfgdata, - MOD_CFG_LIST_SECTION, - MOD_CFG_LIST_COLUMNS, - SAT_CFG_INT_LIST_COLUMNS); - - /* get refresh rate and cycle counter */ - GTK_SAT_LIST (widget)->refresh = mod_cfg_get_int (cfgdata, - MOD_CFG_LIST_SECTION, - MOD_CFG_LIST_REFRESH, - SAT_CFG_INT_LIST_REFRESH); + /* initialise column flags */ + if (columns > 0) + GTK_SAT_LIST (widget)->flags = columns; + else + GTK_SAT_LIST (widget)->flags = mod_cfg_get_int (cfgdata, + MOD_CFG_LIST_SECTION, + MOD_CFG_LIST_COLUMNS, + SAT_CFG_INT_LIST_COLUMNS); + + /* get refresh rate and cycle counter */ + GTK_SAT_LIST (widget)->refresh = mod_cfg_get_int (cfgdata, + MOD_CFG_LIST_SECTION, + MOD_CFG_LIST_REFRESH, + SAT_CFG_INT_LIST_REFRESH); - GTK_SAT_LIST (widget)->counter = 1; + GTK_SAT_LIST (widget)->counter = 1; - /* create the tree view and add columns */ - GTK_SAT_LIST (widget)->treeview = gtk_tree_view_new (); + /* create the tree view and add columns */ + GTK_SAT_LIST (widget)->treeview = gtk_tree_view_new (); - gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (GTK_SAT_LIST (widget)->treeview), - sat_cfg_get_bool (SAT_CFG_BOOL_RULES_HINT)); + gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (GTK_SAT_LIST (widget)->treeview), + sat_cfg_get_bool (SAT_CFG_BOOL_RULES_HINT)); - /* create treeview columns */ - for (i = 0; i < SAT_LIST_COL_NUMBER; i++) { + /* create treeview columns */ + for (i = 0; i < SAT_LIST_COL_NUMBER; i++) { - renderer = gtk_cell_renderer_text_new (); - g_object_set (G_OBJECT (renderer), "xalign", SAT_LIST_COL_XALIGN[i], NULL); + renderer = gtk_cell_renderer_text_new (); + g_object_set (G_OBJECT (renderer), "xalign", SAT_LIST_COL_XALIGN[i], NULL); - /* in win32 use special font for direction column because default font - does not have arrow symbols. - */ + /* in win32 use special font for direction column because default font + does not have arrow symbols. + */ #ifdef G_OS_WIN32 - if (i == SAT_LIST_COL_DIR) - g_object_set (G_OBJECT (renderer), - "font", "courier 12", - NULL); + if (i == SAT_LIST_COL_DIR) + g_object_set (G_OBJECT (renderer), + "font", "courier 12", + NULL); #endif - column = gtk_tree_view_column_new_with_attributes (_(SAT_LIST_COL_TITLE[i]), - renderer, - "text", i, - NULL); - gtk_tree_view_insert_column (GTK_TREE_VIEW (GTK_SAT_LIST (widget)->treeview), - column, -1); + column = gtk_tree_view_column_new_with_attributes (_(SAT_LIST_COL_TITLE[i]), + renderer, + "text", i, + NULL); + gtk_tree_view_insert_column (GTK_TREE_VIEW (GTK_SAT_LIST (widget)->treeview), + column, -1); - /* only aligns the headers */ - gtk_tree_view_column_set_alignment (column, 0.5); + /* only aligns the headers */ + gtk_tree_view_column_set_alignment (column, 0.5); - /* set sort id */ - gtk_tree_view_column_set_sort_column_id (column, i); + /* set sort id */ + gtk_tree_view_column_set_sort_column_id (column, i); - /* set cell data function; allows to format data before rendering */ - check_and_set_cell_renderer (column, renderer, i); + /* set cell data function; allows to format data before rendering */ + check_and_set_cell_renderer (column, renderer, i); - /* hide columns that have not been specified */ - if (!(GTK_SAT_LIST (widget)->flags & (1 << i))) { - gtk_tree_view_column_set_visible (column, FALSE); - } - + /* hide columns that have not been specified */ + if (!(GTK_SAT_LIST (widget)->flags & (1 << i))) { + gtk_tree_view_column_set_visible (column, FALSE); + } + - } + } - /* create model and finalise treeview */ - model = create_and_fill_model (GTK_SAT_LIST (widget)->satellites); - gtk_tree_view_set_model (GTK_TREE_VIEW (GTK_SAT_LIST (widget)->treeview), model); + /* create model and finalise treeview */ + model = create_and_fill_model (GTK_SAT_LIST (widget)->satellites); + gtk_tree_view_set_model (GTK_TREE_VIEW (GTK_SAT_LIST (widget)->treeview), model); - /* satellite name should be initial sorting criteria */ - gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), - SAT_LIST_COL_NAME, - GTK_SORT_ASCENDING), + /* satellite name should be initial sorting criteria */ + gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), + SAT_LIST_COL_NAME, + GTK_SORT_ASCENDING), - g_object_unref (model); + g_object_unref (model); - g_signal_connect (GTK_SAT_LIST (widget)->treeview, "button-press-event", - G_CALLBACK (button_press_cb), widget); - g_signal_connect (GTK_SAT_LIST (widget)->treeview, "popup-menu", - G_CALLBACK (popup_menu_cb), widget); + g_signal_connect (GTK_SAT_LIST (widget)->treeview, "button-press-event", + G_CALLBACK (button_press_cb), widget); + g_signal_connect (GTK_SAT_LIST (widget)->treeview, "popup-menu", + G_CALLBACK (popup_menu_cb), widget); - GTK_SAT_LIST (widget)->swin = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (GTK_SAT_LIST (widget)->swin), - GTK_POLICY_AUTOMATIC, - GTK_POLICY_AUTOMATIC); + GTK_SAT_LIST (widget)->swin = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (GTK_SAT_LIST (widget)->swin), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); - gtk_container_add (GTK_CONTAINER (GTK_SAT_LIST (widget)->swin), - GTK_SAT_LIST (widget)->treeview); + gtk_container_add (GTK_CONTAINER (GTK_SAT_LIST (widget)->swin), + GTK_SAT_LIST (widget)->treeview); - gtk_container_add (GTK_CONTAINER (widget), GTK_SAT_LIST (widget)->swin); - gtk_widget_show_all (widget); + gtk_container_add (GTK_CONTAINER (widget), GTK_SAT_LIST (widget)->swin); + gtk_widget_show_all (widget); - return widget; + return widget; } @@ -415,42 +415,42 @@ static GtkTreeModel * create_and_fill_model (GHashTable *sats) { - GtkListStore *liststore; + GtkListStore *liststore; - liststore = gtk_list_store_new (SAT_LIST_COL_NUMBER, - G_TYPE_STRING, // name - G_TYPE_INT, // catnum - G_TYPE_DOUBLE, // az - G_TYPE_DOUBLE, // el - G_TYPE_STRING, // direction - G_TYPE_DOUBLE, // RA - G_TYPE_DOUBLE, // Dec - G_TYPE_DOUBLE, // range - G_TYPE_DOUBLE, // range rate - G_TYPE_STRING, // next event - G_TYPE_DOUBLE, // next AOS - G_TYPE_DOUBLE, // next LOS - G_TYPE_DOUBLE, // ssp lat - G_TYPE_DOUBLE, // ssp lon - G_TYPE_STRING, // ssp qra - G_TYPE_DOUBLE, // footprint - G_TYPE_DOUBLE, // alt - G_TYPE_DOUBLE, // vel - G_TYPE_DOUBLE, // doppler - G_TYPE_DOUBLE, // path loss - G_TYPE_DOUBLE, // delay - G_TYPE_DOUBLE, // mean anomaly - G_TYPE_DOUBLE, // phase - G_TYPE_ULONG, // orbit - G_TYPE_STRING); // visibility + liststore = gtk_list_store_new (SAT_LIST_COL_NUMBER, + G_TYPE_STRING, // name + G_TYPE_INT, // catnum + G_TYPE_DOUBLE, // az + G_TYPE_DOUBLE, // el + G_TYPE_STRING, // direction + G_TYPE_DOUBLE, // RA + G_TYPE_DOUBLE, // Dec + G_TYPE_DOUBLE, // range + G_TYPE_DOUBLE, // range rate + G_TYPE_STRING, // next event + G_TYPE_DOUBLE, // next AOS + G_TYPE_DOUBLE, // next LOS + G_TYPE_DOUBLE, // ssp lat + G_TYPE_DOUBLE, // ssp lon + G_TYPE_STRING, // ssp qra + G_TYPE_DOUBLE, // footprint + G_TYPE_DOUBLE, // alt + G_TYPE_DOUBLE, // vel + G_TYPE_DOUBLE, // doppler + G_TYPE_DOUBLE, // path loss + G_TYPE_DOUBLE, // delay + G_TYPE_DOUBLE, // mean anomaly + G_TYPE_DOUBLE, // phase + G_TYPE_ULONG, // orbit + G_TYPE_STRING); // visibility - g_hash_table_foreach (sats, sat_list_add_satellites, liststore); + g_hash_table_foreach (sats, sat_list_add_satellites, liststore); - return GTK_TREE_MODEL (liststore); + return GTK_TREE_MODEL (liststore); } @@ -458,41 +458,41 @@ static void sat_list_add_satellites (gpointer key, gpointer value, gpointer user_data) { - GtkListStore *store = GTK_LIST_STORE (user_data); - GtkTreeIter item; - sat_t *sat = SAT (value); + GtkListStore *store = GTK_LIST_STORE (user_data); + GtkTreeIter item; + sat_t *sat = SAT (value); - gtk_list_store_append (store, &item); - gtk_list_store_set (store, &item, - SAT_LIST_COL_NAME, sat->tle.sat_name, - SAT_LIST_COL_CATNUM, sat->tle.catnr, - SAT_LIST_COL_AZ, sat->az, - SAT_LIST_COL_EL, sat->el, - SAT_LIST_COL_VISIBILITY, "-", - SAT_LIST_COL_RA, sat->ra, - SAT_LIST_COL_DEC, sat->dec, - SAT_LIST_COL_RANGE, sat->range, - SAT_LIST_COL_RANGE_RATE, sat->range_rate, - SAT_LIST_COL_DIR, "-", - SAT_LIST_COL_NEXT_EVENT, "--- N/A ---", - SAT_LIST_COL_AOS, sat->aos, - SAT_LIST_COL_LOS, sat->los, - SAT_LIST_COL_LAT, sat->ssplat, - SAT_LIST_COL_LON, sat->ssplon, - SAT_LIST_COL_SSP, "", - SAT_LIST_COL_FOOTPRINT, sat->footprint, - SAT_LIST_COL_ALT, sat->alt, - SAT_LIST_COL_VEL, sat->velo, - SAT_LIST_COL_DOPPLER, 0.0, - SAT_LIST_COL_LOSS, 0.0, - SAT_LIST_COL_DELAY, 0.0, - SAT_LIST_COL_MA, sat->ma, - SAT_LIST_COL_PHASE, sat->phase, - SAT_LIST_COL_ORBIT, sat->orbit, - -1); + gtk_list_store_append (store, &item); + gtk_list_store_set (store, &item, + SAT_LIST_COL_NAME, sat->tle.sat_name, + SAT_LIST_COL_CATNUM, sat->tle.catnr, + SAT_LIST_COL_AZ, sat->az, + SAT_LIST_COL_EL, sat->el, + SAT_LIST_COL_VISIBILITY, "-", + SAT_LIST_COL_RA, sat->ra, + SAT_LIST_COL_DEC, sat->dec, + SAT_LIST_COL_RANGE, sat->range, + SAT_LIST_COL_RANGE_RATE, sat->range_rate, + SAT_LIST_COL_DIR, "-", + SAT_LIST_COL_NEXT_EVENT, "--- N/A ---", + SAT_LIST_COL_AOS, sat->aos, + SAT_LIST_COL_LOS, sat->los, + SAT_LIST_COL_LAT, sat->ssplat, + SAT_LIST_COL_LON, sat->ssplon, + SAT_LIST_COL_SSP, "", + SAT_LIST_COL_FOOTPRINT, sat->footprint, + SAT_LIST_COL_ALT, sat->alt, + SAT_LIST_COL_VEL, sat->velo, + SAT_LIST_COL_DOPPLER, 0.0, + SAT_LIST_COL_LOSS, 0.0, + SAT_LIST_COL_DELAY, 0.0, + SAT_LIST_COL_MA, sat->ma, + SAT_LIST_COL_PHASE, sat->phase, + SAT_LIST_COL_ORBIT, sat->orbit, + -1); - + } @@ -501,45 +501,45 @@ void gtk_sat_list_update (GtkWidget *widget) { - GtkTreeModel *model; - GtkSatList *satlist = GTK_SAT_LIST (widget); + GtkTreeModel *model; + GtkSatList *satlist = GTK_SAT_LIST (widget); - /* first, do some sanity checks */ - if ((satlist == NULL) || !IS_GTK_SAT_LIST (satlist)) { - - sat_log_log (SAT_LOG_LEVEL_BUG, - _("%s: Invalid GtkSatList!"), - __FUNCTION__); - } + /* first, do some sanity checks */ + if ((satlist == NULL) || !IS_GTK_SAT_LIST (satlist)) { + + sat_log_log (SAT_LOG_LEVEL_BUG, + _("%s: Invalid GtkSatList!"), + __FUNCTION__); + } - /* check refresh rate */ - if (satlist->counter < satlist->refresh) { - satlist->counter++; - } - else { - satlist->counter = 1; + /* check refresh rate */ + if (satlist->counter < satlist->refresh) { + satlist->counter++; + } + else { + satlist->counter = 1; - /* get and tranverse the model */ - model = gtk_tree_view_get_model (GTK_TREE_VIEW (satlist->treeview)); + /* get and tranverse the model */ + model = gtk_tree_view_get_model (GTK_TREE_VIEW (satlist->treeview)); - /* optimisation: detach model from view while updating */ - /* No, we do not do it, because it makes selections and scrolling - impossible - */ - /* g_object_ref (model); */ - /* gtk_tree_view_set_model (GTK_TREE_VIEW (satlist->treeview), NULL); */ + /* optimisation: detach model from view while updating */ + /* No, we do not do it, because it makes selections and scrolling + impossible + */ + /* g_object_ref (model); */ + /* gtk_tree_view_set_model (GTK_TREE_VIEW (satlist->treeview), NULL); */ - /* update */ - gtk_tree_model_foreach (model, sat_list_update_sats, satlist); + /* update */ + gtk_tree_model_foreach (model, sat_list_update_sats, satlist); - /* re-attach model to view */ - /* gtk_tree_view_set_model (GTK_TREE_VIEW (satlist->treeview), model); */ + /* re-attach model to view */ + /* gtk_tree_view_set_model (GTK_TREE_VIEW (satlist->treeview), model); */ - /* g_object_unref (model); */ - } + /* g_object_unref (model); */ + } } @@ -547,250 +547,249 @@ /** \brief Update data in each column in a given row */ static gboolean sat_list_update_sats (GtkTreeModel *model, - GtkTreePath *path, - GtkTreeIter *iter, - gpointer data) + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data) { - GtkSatList *satlist = GTK_SAT_LIST (data); - guint *catnum; - sat_t *sat; - gchar *buff; - gdouble doppler; - gdouble delay; - gdouble loss; - gdouble oldrate; - gint retcode; + GtkSatList *satlist = GTK_SAT_LIST (data); + guint *catnum; + sat_t *sat; + gchar *buff; + gdouble doppler; + gdouble delay; + gdouble loss; + gdouble oldrate; + gint retcode; - /* get the catalogue number for this row - then look it up in the hash table - */ - catnum = g_new0 (guint, 1); - gtk_tree_model_get (model, iter, SAT_LIST_COL_CATNUM, catnum, -1); - sat = SAT (g_hash_table_lookup (satlist->satellites, catnum)); + /* get the catalogue number for this row + then look it up in the hash table + */ + catnum = g_new0 (guint, 1); + gtk_tree_model_get (model, iter, SAT_LIST_COL_CATNUM, catnum, -1); + sat = SAT (g_hash_table_lookup (satlist->satellites, catnum)); - if (sat == NULL) { - /* satellite not tracked anymore => remove */ - sat_log_log (SAT_LOG_LEVEL_MSG, - _("%s: Failed to get data for #%d."), - __FUNCTION__, *catnum); + if (sat == NULL) { + /* satellite not tracked anymore => remove */ + sat_log_log (SAT_LOG_LEVEL_MSG, + _("%s: Failed to get data for #%d."), + __FUNCTION__, *catnum); - gtk_list_store_remove (GTK_LIST_STORE (model), iter); + gtk_list_store_remove (GTK_LIST_STORE (model), iter); - sat_log_log (SAT_LOG_LEVEL_BUG, - _("%s: Satellite #%d removed from list."), - __FUNCTION__, *catnum); - } - else { - /* store new data */ - gtk_list_store_set (GTK_LIST_STORE (model), iter, - SAT_LIST_COL_AZ, sat->az, - SAT_LIST_COL_EL, sat->el, - SAT_LIST_COL_RANGE, sat->range, - SAT_LIST_COL_RANGE_RATE, sat->range_rate, - SAT_LIST_COL_LAT, sat->ssplat, - SAT_LIST_COL_LON, sat->ssplon, - SAT_LIST_COL_FOOTPRINT, sat->footprint, - SAT_LIST_COL_ALT, sat->alt, - SAT_LIST_COL_VEL, sat->velo, - SAT_LIST_COL_MA, sat->ma, - SAT_LIST_COL_PHASE, sat->phase, - SAT_LIST_COL_ORBIT, sat->orbit, - -1); + sat_log_log (SAT_LOG_LEVEL_BUG, + _("%s: Satellite #%d removed from list."), + __FUNCTION__, *catnum); + } + else { + /* store new data */ + gtk_list_store_set (GTK_LIST_STORE (model), iter, + SAT_LIST_COL_AZ, sat->az, + SAT_LIST_COL_EL, sat->el, + SAT_LIST_COL_RANGE, sat->range, + SAT_LIST_COL_RANGE_RATE, sat->range_rate, + SAT_LIST_COL_LAT, sat->ssplat, + SAT_LIST_COL_LON, sat->ssplon, + SAT_LIST_COL_FOOTPRINT, sat->footprint, + SAT_LIST_COL_ALT, sat->alt, + SAT_LIST_COL_VEL, sat->velo, + SAT_LIST_COL_MA, sat->ma, + SAT_LIST_COL_PHASE, sat->phase, + SAT_LIST_COL_ORBIT, sat->orbit, + -1); - /* doppler shift @ 100 MHz */ - if (satlist->flags & SAT_LIST_FLAG_DOPPLER) { - doppler = -100.0e06 * (sat->range_rate / 299792.4580); // Hz - gtk_list_store_set (GTK_LIST_STORE (model), iter, - SAT_LIST_COL_DOPPLER, doppler, - -1); - } + /* doppler shift @ 100 MHz */ + if (satlist->flags & SAT_LIST_FLAG_DOPPLER) { + doppler = -100.0e06 * (sat->range_rate / 299792.4580); // Hz + gtk_list_store_set (GTK_LIST_STORE (model), iter, + SAT_LIST_COL_DOPPLER, doppler, + -1); + } - /* delay */ - if (satlist->flags & SAT_LIST_FLAG_DELAY) { - delay = sat->range / 299.7924580; // msec - gtk_list_store_set (GTK_LIST_STORE (model), iter, - SAT_LIST_COL_DELAY, delay, - -1); - } + /* delay */ + if (satlist->flags & SAT_LIST_FLAG_DELAY) { + delay = sat->range / 299.7924580; // msec + gtk_list_store_set (GTK_LIST_STORE (model), iter, + SAT_LIST_COL_DELAY, delay, + -1); + } - /* path loss */ - if (satlist->flags & SAT_LIST_FLAG_LOSS) { - loss = 72.4 + 20.0*log10(sat->range); // dB - gtk_list_store_set (GTK_LIST_STORE (model), iter, - SAT_LIST_COL_LOSS, loss, - -1); - } + /* path loss */ + if (satlist->flags & SAT_LIST_FLAG_LOSS) { + loss = 72.4 + 20.0*log10(sat->range); // dB + gtk_list_store_set (GTK_LIST_STORE (model), iter, + SAT_LIST_COL_LOSS, loss, + -1); + } - /* calculate direction */ - if (satlist->flags & SAT_LIST_FLAG_DIR) { + /* calculate direction */ + if (satlist->flags & SAT_LIST_FLAG_DIR) { - if (sat->otype == ORBIT_TYPE_GEO) { - buff = g_strdup ("G"); - } - else if (sat->otype == ORBIT_TYPE_DECAYED) { - buff = g_strdup ("D"); - } - else if (sat->range_rate > 0.001) { - /* going down */ - buff = g_strdup ("\342\206\223"); - } - else if ((sat->range_rate <= 0.001) && (sat->range_rate >= -0.001)) { - gtk_tree_model_get (model, iter, - SAT_LIST_COL_RANGE_RATE, &oldrate, - -1); - /* turning around; don't know which way ? */ - if (sat->range_rate < oldrate) { - /* starting to approach */ - buff = g_strdup ("\342\206\272"); - } - else { - /* to receed */ - buff = g_strdup ("\342\206\267"); - } - } - else if (sat->range_rate < -0.001) { - /* coming up */ - buff = g_strdup ("\342\206\221"); - } - else { - buff = g_strdup ("-"); - } + if (sat->otype == ORBIT_TYPE_GEO) { + buff = g_strdup ("G"); + } + else if (sat->otype == ORBIT_TYPE_DECAYED) { + buff = g_strdup ("D"); + } + else if (sat->range_rate > 0.001) { + /* going down */ + buff = g_strdup ("\342\206\223"); + } + else if ((sat->range_rate <= 0.001) && (sat->range_rate >= -0.001)) { + gtk_tree_model_get (model, iter, + SAT_LIST_COL_RANGE_RATE, &oldrate, + -1); + /* turning around; don't know which way ? */ + if (sat->range_rate < oldrate) { + /* starting to approach */ + buff = g_strdup ("\342\206\272"); + } + else { + /* to receed */ + buff = g_strdup ("\342\206\267"); + } + } + else if (sat->range_rate < -0.001) { + /* coming up */ + buff = g_strdup ("\342\206\221"); + } + else { + buff = g_strdup ("-"); + } - gtk_list_store_set (GTK_LIST_STORE (model), iter, - SAT_LIST_COL_DIR, buff, - -1); + gtk_list_store_set (GTK_LIST_STORE (model), iter, + SAT_LIST_COL_DIR, buff, + -1); - /* free memory */ - g_free (buff); + /* free memory */ + g_free (buff); - } - - /* SSP locator */ - if (satlist->flags & SAT_LIST_FLAG_SSP) { - - buff = g_try_malloc (7); + } + + /* SSP locator */ + if (satlist->flags & SAT_LIST_FLAG_SSP) { + + buff = g_try_malloc (7); - retcode = longlat2locator (sat->ssplon, sat->ssplat, buff, 3); - if (retcode == RIG_OK) { - buff[6] = '\0'; - gtk_list_store_set (GTK_LIST_STORE (model), iter, - SAT_LIST_COL_SSP, buff, - -1); - } - g_free (buff); - } + retcode = longlat2locator (sat->ssplon, sat->ssplat, buff, 3); + if (retcode == RIG_OK) { + buff[6] = '\0'; + gtk_list_store_set (GTK_LIST_STORE (model), iter, + SAT_LIST_COL_SSP, buff, + -1); + } + g_free (buff); + } - /* Ra and Dec */ - if (satlist->flags & (SAT_LIST_FLAG_RA | SAT_LIST_FLAG_DEC)) { - obs_astro_t astro; + /* Ra and Dec */ + if (satlist->flags & (SAT_LIST_FLAG_RA | SAT_LIST_FLAG_DEC)) { + obs_astro_t astro; - Calculate_RADec (sat, satlist->qth, &astro); + Calculate_RADec (sat, satlist->qth, &astro); - sat->ra = Degrees(astro.ra); - sat->dec = Degrees(astro.dec); + sat->ra = Degrees(astro.ra); + sat->dec = Degrees(astro.dec); - gtk_list_store_set (GTK_LIST_STORE (model), iter, - SAT_LIST_COL_RA, sat->ra, - SAT_LIST_COL_DEC, sat->dec, - -1); - } + gtk_list_store_set (GTK_LIST_STORE (model), iter, + SAT_LIST_COL_RA, sat->ra, + SAT_LIST_COL_DEC, sat->dec, + -1); + } - /* upcoming events */ - /*** FIXME: not necessary to update every time */ - if (satlist->flags & SAT_LIST_FLAG_AOS) { - gtk_list_store_set (GTK_LIST_STORE (model), iter, - SAT_LIST_COL_AOS, sat->aos, - -1); - } - if (satlist->flags & SAT_LIST_FLAG_LOS) { - gtk_list_store_set (GTK_LIST_STORE (model), iter, - SAT_LIST_COL_LOS, sat->los, - -1); + /* upcoming events */ + /*** FIXME: not necessary to update every time */ + if (satlist->flags & SAT_LIST_FLAG_AOS) { + gtk_list_store_set (GTK_LIST_STORE (model), iter, + SAT_LIST_COL_AOS, sat->aos, + -1); + } + if (satlist->flags & SAT_LIST_FLAG_LOS) { + gtk_list_store_set (GTK_LIST_STORE (model), iter, + SAT_LIST_COL_LOS, sat->los, + -1); - } - if (satlist->flags & SAT_LIST_FLAG_NEXT_EVENT) { - gdouble number; - gchar buff[TIME_FORMAT_MAX_LENGTH]; - gchar *tfstr; - gchar *fmtstr; - gchar *alstr; - time_t t; - guint size; + } + if (satlist->flags & SAT_LIST_FLAG_NEXT_EVENT) { + gdouble number; + gchar buff[TIME_FORMAT_MAX_LENGTH]; + gchar *tfstr; + gchar *fmtstr; + gchar *alstr; + time_t t; + guint size; - if (sat->aos > sat->los) { - /* next event is LOS */ - number = sat->los; - alstr = g_strdup ("LOS: "); - } - else { - /* next event is AOS */ - number = sat->aos; - alstr = g_strdup ("AOS: "); - } - - if (number == 0.0) { - gtk_list_store_set (GTK_LIST_STORE (model), iter, - SAT_LIST_COL_NEXT_EVENT, "--- N/A ---", - -1); - } - else { + if (sat->aos > sat->los) { + /* next event is LOS */ + number = sat->los; + alstr = g_strdup ("LOS: "); + } + else { + /* next event is AOS */ + number = sat->aos; + alstr = g_strdup ("AOS: "); + } + + if (number == 0.0) { + gtk_list_store_set (GTK_LIST_STORE (model), iter, + SAT_LIST_COL_NEXT_EVENT, "--- N/A ---", + -1); + } + else { - /* convert julian date to struct tm */ - t = (number - 2440587.5)*86400.; + /* convert julian date to struct tm */ + t = (number - 2440587.5)*86400.; - /* format the number */ - tfstr = sat_cfg_get_str (SAT_CFG_STR_TIME_FORMAT); - fmtstr = g_strconcat (alstr, tfstr, NULL); - g_free (tfstr); + /* format the number */ + tfstr = sat_cfg_get_str (SAT_CFG_STR_TIME_FORMAT); + fmtstr = g_strconcat (alstr, tfstr, NULL); + g_free (tfstr); - /* format either local time or UTC depending on check box */ - if (sat_cfg_get_bool (SAT_CFG_BOOL_USE_LOCAL_TIME)) - size = strftime (buff, TIME_FORMAT_MAX_LENGTH, - fmtstr, localtime (&t)); - else - size = strftime (buff, TIME_FORMAT_MAX_LENGTH, - fmtstr, gmtime (&t)); - - if (size < TIME_FORMAT_MAX_LENGTH) - buff[size]='\0'; - else - buff[TIME_FORMAT_MAX_LENGTH]='\0'; + /* format either local time or UTC depending on check box */ + if (sat_cfg_get_bool (SAT_CFG_BOOL_USE_LOCAL_TIME)) + size = strftime (buff, TIME_FORMAT_MAX_LENGTH, + fmtstr, localtime (&t)); + else + size = strftime (buff, TIME_FORMAT_MAX_LENGTH, + fmtstr, gmtime (&t)); + + if (size == 0) + /* size > MAX_LENGTH */ + buff[TIME_FORMAT_MAX_LENGTH-1] = '\0'; - gtk_list_store_set (GTK_LIST_STORE (model), iter, - SAT_LIST_COL_NEXT_EVENT, buff, - -1); + gtk_list_store_set (GTK_LIST_STORE (model), iter, + SAT_LIST_COL_NEXT_EVENT, buff, + -1); - g_free (fmtstr); - } + g_free (fmtstr); + } - g_free (alstr); - - } + g_free (alstr); + + } - if (satlist->flags & SAT_LIST_FLAG_VISIBILITY) { - sat_vis_t vis; + if (satlist->flags & SAT_LIST_FLAG_VISIBILITY) { + sat_vis_t vis; - vis = get_sat_vis (sat, satlist->qth, sat->jul_utc); - buff = g_strdup_printf ("%c", vis_to_chr (vis)); - gtk_list_store_set (GTK_LIST_STORE (model), iter, - SAT_LIST_COL_VISIBILITY, buff, - -1); - g_free (buff); - } + vis = get_sat_vis (sat, satlist->qth, sat->jul_utc); + buff = g_strdup_printf ("%c", vis_to_chr (vis)); + gtk_list_store_set (GTK_LIST_STORE (model), iter, + SAT_LIST_COL_VISIBILITY, buff, + -1); + g_free (buff); + } - } + } - g_free (catnum); + g_free (catnum); - /* Return value not documented what to return, but it seems that - FALSE continues to next row while TRUE breaks - */ - return FALSE; + /* Return value not documented what to return, but it seems that + FALSE continues to next row while TRUE breaks + */ + return FALSE; } @@ -798,88 +797,88 @@ /** \brief Set cell renderer function. */ static void check_and_set_cell_renderer (GtkTreeViewColumn *column, - GtkCellRenderer *renderer, - gint i) + GtkCellRenderer *renderer, + gint i) { - switch (i) { + switch (i) { - /* general float with 2 dec. precision - no extra format besides a degree char - */ - case SAT_LIST_COL_AZ: - case SAT_LIST_COL_EL: - case SAT_LIST_COL_RA: - case SAT_LIST_COL_DEC: - case SAT_LIST_COL_MA: - case SAT_LIST_COL_PHASE: - gtk_tree_view_column_set_cell_data_func (column, - renderer, - degree_cell_data_function, - GUINT_TO_POINTER (i), - NULL); - break; + /* general float with 2 dec. precision + no extra format besides a degree char + */ + case SAT_LIST_COL_AZ: + case SAT_LIST_COL_EL: + case SAT_LIST_COL_RA: + case SAT_LIST_COL_DEC: + case SAT_LIST_COL_MA: + case SAT_LIST_COL_PHASE: + gtk_tree_view_column_set_cell_data_func (column, + renderer, + degree_cell_data_function, + GUINT_TO_POINTER (i), + NULL); + break; - /* LAT/LON format */ - case SAT_LIST_COL_LAT: - case SAT_LIST_COL_LON: - gtk_tree_view_column_set_cell_data_func (column, - renderer, - latlon_cell_data_function, - GUINT_TO_POINTER (i), - NULL); - break; + /* LAT/LON format */ + case SAT_LIST_COL_LAT: + case SAT_LIST_COL_LON: + gtk_tree_view_column_set_cell_data_func (column, + renderer, + latlon_cell_data_function, + GUINT_TO_POINTER (i), + NULL); + break; - /* distances and velocities */ - case SAT_LIST_COL_RANGE: - case SAT_LIST_COL_ALT: - case SAT_LIST_COL_FOOTPRINT: - gtk_tree_view_column_set_cell_data_func (column, - renderer, - distance_cell_data_function, - GUINT_TO_POINTER (i), - NULL); - break; + /* distances and velocities */ + case SAT_LIST_COL_RANGE: + case SAT_LIST_COL_ALT: + case SAT_LIST_COL_FOOTPRINT: + gtk_tree_view_column_set_cell_data_func (column, + renderer, + distance_cell_data_function, + GUINT_TO_POINTER (i), + NULL); + break; - case SAT_LIST_COL_VEL: - case SAT_LIST_COL_RANGE_RATE: - gtk_tree_view_column_set_cell_data_func (column, - renderer, - range_rate_cell_data_function, - GUINT_TO_POINTER (i), - NULL); - break; + case SAT_LIST_COL_VEL: + case SAT_LIST_COL_RANGE_RATE: + gtk_tree_view_column_set_cell_data_func (column, + renderer, + range_rate_cell_data_function, + GUINT_TO_POINTER (i), + NULL); + break; - case SAT_LIST_COL_DOPPLER: - gtk_tree_view_column_set_cell_data_func (column, - renderer, - float_to_int_cell_data_function, - GUINT_TO_POINTER (i), - NULL); - break; + case SAT_LIST_COL_DOPPLER: + gtk_tree_view_column_set_cell_data_func (column, + renderer, + float_to_int_cell_data_function, + GUINT_TO_POINTER (i), + NULL); + break; - case SAT_LIST_COL_DELAY: - case SAT_LIST_COL_LOSS: - gtk_tree_view_column_set_cell_data_func (column, - renderer, - two_dec_cell_data_function, - GUINT_TO_POINTER (i), - NULL); - break; + case SAT_LIST_COL_DELAY: + case SAT_LIST_COL_LOSS: + gtk_tree_view_column_set_cell_data_func (column, + renderer, + two_dec_cell_data_function, + GUINT_TO_POINTER (i), + NULL); + break; - case SAT_LIST_COL_AOS: - case SAT_LIST_COL_LOS: - gtk_tree_view_column_set_cell_data_func (column, - renderer, - event_cell_data_function, - GUINT_TO_POINTER (i), - NULL); - break; + case SAT_LIST_COL_AOS: + case SAT_LIST_COL_LOS: + gtk_tree_view_column_set_cell_data_func (column, + renderer, + event_cell_data_function, + GUINT_TO_POINTER (i), + NULL); + break; - default: - break; + default: + break; - } + } } @@ -895,107 +894,107 @@ */ static void latlon_cell_data_function (GtkTreeViewColumn *col, - GtkCellRenderer *renderer, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer column) + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer column) { - gdouble number = 0.0; - gchar *buff; - guint coli = GPOINTER_TO_UINT (column); - gchar hmf = ' '; + gdouble number = 0.0; + gchar *buff; + guint coli = GPOINTER_TO_UINT (column); + gchar hmf = ' '; - gtk_tree_model_get (model, iter, coli, &number, -1); + gtk_tree_model_get (model, iter, coli, &number, -1); - /* check whether configuration requests the use - of N, S, E and W instead of signs - */ - if (sat_cfg_get_bool (SAT_CFG_BOOL_USE_NSEW)) { + /* check whether configuration requests the use + of N, S, E and W instead of signs + */ + if (sat_cfg_get_bool (SAT_CFG_BOOL_USE_NSEW)) { - if (coli == SAT_LIST_COL_LAT) { - if (number < 0.00) { - number = -number; - hmf = 'S'; - } - else { - hmf = 'N'; - } - } - else if (coli == SAT_LIST_COL_LON) { - if (number < 0.00) { - number = -number; - hmf = 'W'; - } - else { - hmf = 'E'; - } - } - else { - sat_log_log (SAT_LOG_LEVEL_BUG, - _("%s:%d: Invalid column: %d"), - __FILE__, __LINE__, - coli); - hmf = '?'; - } - } + if (coli == SAT_LIST_COL_LAT) { + if (number < 0.00) { + number = -number; + hmf = 'S'; + } + else { + hmf = 'N'; + } + } + else if (coli == SAT_LIST_COL_LON) { + if (number < 0.00) { + number = -number; + hmf = 'W'; + } + else { + hmf = 'E'; + } + } + else { + sat_log_log (SAT_LOG_LEVEL_BUG, + _("%s:%d: Invalid column: %d"), + __FILE__, __LINE__, + coli); + hmf = '?'; + } + } - /* format the number */ - buff = g_strdup_printf ("%.2f\302\260%c", number, hmf); - g_object_set (renderer, - "text", buff, - NULL); - g_free (buff); + /* format the number */ + buff = g_strdup_printf ("%.2f\302\260%c", number, hmf); + g_object_set (renderer, + "text", buff, + NULL); + g_free (buff); } /* general floats with 2 digits + degree char */ static void degree_cell_data_function (GtkTreeViewColumn *col, - GtkCellRenderer *renderer, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer column) + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer column) { - gdouble number; - gchar *buff; - guint coli = GPOINTER_TO_UINT (column); + gdouble number; + gchar *buff; + guint coli = GPOINTER_TO_UINT (column); - gtk_tree_model_get (model, iter, coli, &number, -1); + gtk_tree_model_get (model, iter, coli, &number, -1); - /* format the number */ - buff = g_strdup_printf ("%.2f\302\260", number); - g_object_set (renderer, - "text", buff, - NULL); - g_free (buff); + /* format the number */ + buff = g_strdup_printf ("%.2f\302\260", number); + g_object_set (renderer, + "text", buff, + NULL); + g_free (buff); } /* distance and velocity, 0 decimal digits */ static void distance_cell_data_function (GtkTreeViewColumn *col, - GtkCellRenderer *renderer, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer column) + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer column) { - gdouble number; - gchar *buff; - guint coli = GPOINTER_TO_UINT (column); + gdouble number; + gchar *buff; + guint coli = GPOINTER_TO_UINT (column); - gtk_tree_model_get (model, iter, coli, &number, -1); + gtk_tree_model_get (model, iter, coli, &number, -1); - /* convert distance to miles? */ - if (sat_cfg_get_bool (SAT_CFG_BOOL_USE_IMPERIAL)) { - number = KM_TO_MI(number); - } + /* convert distance to miles? */ + if (sat_cfg_get_bool (SAT_CFG_BOOL_USE_IMPERIAL)) { + number = KM_TO_MI(number); + } - /* format the number */ - buff = g_strdup_printf ("%.0f", number); - g_object_set (renderer, - "text", buff, - NULL); - g_free (buff); + /* format the number */ + buff = g_strdup_printf ("%.0f", number); + g_object_set (renderer, + "text", buff, + NULL); + g_free (buff); } /* range rate is special, because we may need to convert to miles @@ -1003,123 +1002,122 @@ */ static void range_rate_cell_data_function (GtkTreeViewColumn *col, - GtkCellRenderer *renderer, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer column) + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer column) { - gdouble number; - gchar *buff; - guint coli = GPOINTER_TO_UINT (column); + gdouble number; + gchar *buff; + guint coli = GPOINTER_TO_UINT (column); - gtk_tree_model_get (model, iter, coli, &number, -1); + gtk_tree_model_get (model, iter, coli, &number, -1); - /* convert distance to miles? */ - if (sat_cfg_get_bool (SAT_CFG_BOOL_USE_IMPERIAL)) { - number = KM_TO_MI(number); - } + /* convert distance to miles? */ + if (sat_cfg_get_bool (SAT_CFG_BOOL_USE_IMPERIAL)) { + number = KM_TO_MI(number); + } - /* format the number */ - buff = g_strdup_printf ("%.3f", number); - g_object_set (renderer, - "text", buff, - NULL); - g_free (buff); + /* format the number */ + buff = g_strdup_printf ("%.3f", number); + g_object_set (renderer, + "text", buff, + NULL); + g_free (buff); } /* 0 decimal digits */ static void float_to_int_cell_data_function (GtkTreeViewColumn *col, - GtkCellRenderer *renderer, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer column) + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer column) { - gdouble number; - gchar *buff; - guint coli = GPOINTER_TO_UINT (column); + gdouble number; + gchar *buff; + guint coli = GPOINTER_TO_UINT (column); - gtk_tree_model_get (model, iter, coli, &number, -1); + gtk_tree_model_get (model, iter, coli, &number, -1); - /* format the number */ - buff = g_strdup_printf ("%.0f", number); - g_object_set (renderer, - "text", buff, - NULL); - g_free (buff); + /* format the number */ + buff = g_strdup_printf ("%.0f", number); + g_object_set (renderer, + "text", buff, + NULL); + g_free (buff); } /* 2 decimal digits */ static void two_dec_cell_data_function (GtkTreeViewColumn *col, - GtkCellRenderer *renderer, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer column) + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer column) { - gdouble number; - gchar *buff; - guint coli = GPOINTER_TO_UINT (column); + gdouble number; + gchar *buff; + guint coli = GPOINTER_TO_UINT (column); - gtk_tree_model_get (model, iter, coli, &number, -1); + gtk_tree_model_get (model, iter, coli, &number, -1); - /* format the number */ - buff = g_strdup_printf ("%.2f", number); - g_object_set (renderer, - "text", buff, - NULL); - g_free (buff); + /* format the number */ + buff = g_strdup_printf ("%.2f", number); + g_object_set (renderer, + "text", buff, + NULL); + g_free (buff); } /* AOS/LOS; convert julian date to string */ static void event_cell_data_function (GtkTreeViewColumn *col, - GtkCellRenderer *renderer, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer column) + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer column) { - gdouble number; - gchar buff[TIME_FORMAT_MAX_LENGTH]; - gchar *fmtstr; - guint coli = GPOINTER_TO_UINT (column); - time_t t; - guint size; + gdouble number; + gchar buff[TIME_FORMAT_MAX_LENGTH]; + gchar *fmtstr; + guint coli = GPOINTER_TO_UINT (column); + time_t t; + guint size; - gtk_tree_model_get (model, iter, coli, &number, -1); - - if (number == 0.0) { - g_object_set (renderer, - "text", "--- N/A ---", - NULL); - } - else { + gtk_tree_model_get (model, iter, coli, &number, -1); + + if (number == 0.0) { + g_object_set (renderer, + "text", "--- N/A ---", + NULL); + } + else { - /* convert julian date to struct tm */ - t = (number - 2440587.5)*86400.; + /* convert julian date to struct tm */ + t = (number - 2440587.5)*86400.; - /* format the number */ - fmtstr = sat_cfg_get_str (SAT_CFG_STR_TIME_FORMAT); + /* format the number */ +... [truncated message content] |