Also add and use a feet to meters conversion. --- src/dialog.c | 4 ++-- src/globals.h | 16 ++++++++++++++++ src/vikdemlayer.c | 4 ++-- src/viktrwlayer_propwin.c | 18 +++++++++--------- src/viktrwlayer_tpwin.c | 8 ++++---- 5 files changed, 33 insertions(+), 17 deletions(-)
diff --git a/src/dialog.c b/src/dialog.c index e1447c7..d793ae9 100644 --- a/src/dialog.c +++ b/src/dialog.c @@ -343,7 +343,7 @@ gboolean a_dialog_new_waypoint ( GtkWindow *parent, gchar **dest, VikWaypoint *w wp->altitude = atof ( gtk_entry_get_text ( GTK_ENTRY(altentry) ) ); break; case VIK_UNITS_HEIGHT_FEET: - wp->altitude = atof ( gtk_entry_get_text ( GTK_ENTRY(altentry) ) ) / VIK_FEET_IN_METER; + wp->altitude = VIK_FEET_TO_METERS(atof ( gtk_entry_get_text ( GTK_ENTRY(altentry) ) )); break; default: wp->altitude = atof ( gtk_entry_get_text ( GTK_ENTRY(altentry) ) ); @@ -382,7 +382,7 @@ gboolean a_dialog_new_waypoint ( GtkWindow *parent, gchar **dest, VikWaypoint *w wp->altitude = atof ( gtk_entry_get_text ( GTK_ENTRY(altentry) ) ); break; case VIK_UNITS_HEIGHT_FEET: - wp->altitude = atof ( gtk_entry_get_text ( GTK_ENTRY(altentry) ) ) / VIK_FEET_IN_METER; + wp->altitude = VIK_FEET_TO_METERS(atof ( gtk_entry_get_text ( GTK_ENTRY(altentry) ) )); break; default: wp->altitude = atof ( gtk_entry_get_text ( GTK_ENTRY(altentry) ) ); diff --git a/src/globals.h b/src/globals.h index 8d8258f..bb38c55 100644 --- a/src/globals.h +++ b/src/globals.h @@ -34,6 +34,22 @@ #define VIK_FEET_IN_METER 3.2808399 #define VIK_METERS_TO_FEET(X) (X*VIK_FEET_IN_METER) +#define VIK_FEET_TO_METERS(X) (X/VIK_FEET_IN_METER) + +/* MPS - Metres Per Second */ +/* MPH - Metres Per Hour */ +#define VIK_MPH_IN_MPS 2.23693629 +#define VIK_MPS_TO_MPH(X) (X*VIK_MPH_IN_MPS) +#define VIK_MPH_TO_MPS(X) (X/VIK_MPH_IN_MPS) + +/* KPH - Kilometres Per Hour */ +#define VIK_KPH_IN_MPS 3.6 +#define VIK_MPS_TO_KPH(X) (X*VIK_KPH_IN_MPS) +#define VIK_KPH_TO_MPS(X) (X/VIK_KPH_IN_MPS) + +#define VIK_KNOTS_IN_MPS 1.94384449 +#define VIK_MPS_TO_KNOTS(X) (X*VIK_KNOTS_IN_MPS) +#define VIK_KNOTS_TO_MPS(X) (X/VIK_KNOTS_IN_MPS) #define VIK_DEFAULT_ALTITUDE 0.0 #define VIK_DEFAULT_DOP 0.0 diff --git a/src/vikdemlayer.c b/src/vikdemlayer.c index 6ccea85..113316e 100644 --- a/src/vikdemlayer.c +++ b/src/vikdemlayer.c @@ -299,7 +299,7 @@ gboolean dem_layer_set_param ( VikDEMLayer *vdl, guint16 id, VikLayerParamData d /* Convert to store internally NB file operation always in internal units (metres) */ if (!is_file_operation && a_vik_get_units_height () == VIK_UNITS_HEIGHT_FEET ) - vdl->min_elev = data.d / VIK_FEET_IN_METER; + vdl->min_elev = VIK_FEET_TO_METERS(data.d); else vdl->min_elev = data.d; break; @@ -307,7 +307,7 @@ gboolean dem_layer_set_param ( VikDEMLayer *vdl, guint16 id, VikLayerParamData d /* Convert to store internally NB file operation always in internal units (metres) */ if (!is_file_operation && a_vik_get_units_height () == VIK_UNITS_HEIGHT_FEET ) - vdl->max_elev = data.d / VIK_FEET_IN_METER; + vdl->max_elev = VIK_FEET_TO_METERS(data.d); else vdl->max_elev = data.d; break; diff --git a/src/viktrwlayer_propwin.c b/src/viktrwlayer_propwin.c index 62e4a69..e4edff2 100644 --- a/src/viktrwlayer_propwin.c +++ b/src/viktrwlayer_propwin.c @@ -536,16 +536,16 @@ GtkWidget *vik_trw_layer_create_vtdiag ( GtkWidget *window, VikTrack *tr, gpoint vik_units_speed_t speed_units = a_vik_get_units_speed (); switch (speed_units) { case VIK_UNITS_SPEED_KILOMETRES_PER_HOUR: - sprintf(s, "%8dkm/h", (int)((mins + (LINES-i)*(maxs-mins)/LINES)*3.6)); + sprintf(s, "%8dkm/h", (int)(VIK_MPS_TO_KPH((mins + (LINES-i)*(maxs-mins)/LINES)))); break; case VIK_UNITS_SPEED_MILES_PER_HOUR: - sprintf(s, "%8dmph", (int)((mins + (LINES-i)*(maxs-mins)/LINES)*2.23693629)); + sprintf(s, "%8dmph", (int)(VIK_MPS_TO_MPH(mins + (LINES-i)*(maxs-mins)/LINES))); break; case VIK_UNITS_SPEED_METRES_PER_SECOND: sprintf(s, "%8dm/s", (int)(mins + (LINES-i)*(maxs-mins)/LINES)); break; case VIK_UNITS_SPEED_KNOTS: - sprintf(s, "%8dknots", (int)((mins + (LINES-i)*(maxs-mins)/LINES)*1.94384449)); + sprintf(s, "%8dknots", (int)(VIK_MPS_TO_KNOTS(mins + (LINES-i)*(maxs-mins)/LINES))); break; default: sprintf(s, "--"); @@ -829,16 +829,16 @@ void vik_trw_layer_propwin_run ( GtkWindow *parent, VikTrwLayer *vtl, VikTrack * else { switch (speed_units) { case VIK_UNITS_SPEED_KILOMETRES_PER_HOUR: - g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f km/h", tmp_speed*3.6 ); + g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f km/h", VIK_MPS_TO_KPH(tmp_speed)); break; case VIK_UNITS_SPEED_MILES_PER_HOUR: - g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f mph", tmp_speed*2.23693629 ); + g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f mph", VIK_MPS_TO_MPH(tmp_speed)); break; case VIK_UNITS_SPEED_METRES_PER_SECOND: g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f m/s", tmp_speed ); break; case VIK_UNITS_SPEED_KNOTS: - g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f knots", tmp_speed*1.94384449 ); + g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f knots", VIK_MPS_TO_KNOTS(tmp_speed)); break; default: g_snprintf (tmp_buf, sizeof(tmp_buf), "--" ); @@ -853,16 +853,16 @@ void vik_trw_layer_propwin_run ( GtkWindow *parent, VikTrwLayer *vtl, VikTrack * else { switch (speed_units) { case VIK_UNITS_SPEED_KILOMETRES_PER_HOUR: - g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f km/h", tmp_speed*3.6 ); + g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f km/h", VIK_MPS_TO_KPH(tmp_speed)); break; case VIK_UNITS_SPEED_MILES_PER_HOUR: - g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f mph", tmp_speed* 2.23693629 ); + g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f mph", VIK_MPS_TO_MPH(tmp_speed)); break; case VIK_UNITS_SPEED_METRES_PER_SECOND: g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f m/s", tmp_speed ); break; case VIK_UNITS_SPEED_KNOTS: - g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f knots", tmp_speed*1.94384449 ); + g_snprintf(tmp_buf, sizeof(tmp_buf), "%.2f knots", VIK_MPS_TO_KNOTS(tmp_speed)); break; default: g_snprintf (tmp_buf, sizeof(tmp_buf), "--" ); diff --git a/src/viktrwlayer_tpwin.c b/src/viktrwlayer_tpwin.c index ac599aa..8a270b4 100644 --- a/src/viktrwlayer_tpwin.c +++ b/src/viktrwlayer_tpwin.c @@ -101,7 +101,7 @@ static void tpwin_sync_alt_to_tp ( VikTrwLayerTpwin *tpwin ) tpwin->cur_tp->altitude = gtk_spin_button_get_value ( tpwin->alt ); break; case VIK_UNITS_HEIGHT_FEET: - tpwin->cur_tp->altitude = gtk_spin_button_get_value ( tpwin->alt ) / VIK_FEET_IN_METER; + tpwin->cur_tp->altitude = VIK_FEET_TO_METERS(gtk_spin_button_get_value ( tpwin->alt )); break; default: tpwin->cur_tp->altitude = gtk_spin_button_get_value ( tpwin->alt ); @@ -322,16 +322,16 @@ void vik_trw_layer_tpwin_set_tp ( VikTrwLayerTpwin *tpwin, GList *tpl, gchar *tr vik_units_speed_t speed_units = a_vik_get_units_speed (); switch (speed_units) { case VIK_UNITS_SPEED_KILOMETRES_PER_HOUR: - g_snprintf ( tmp_str, sizeof(tmp_str), "%.2f km/h", vik_coord_diff(&(tp->coord), &(tpwin->cur_tp->coord)) / (ABS(tp->timestamp - tpwin->cur_tp->timestamp)) * 3.6 ); + g_snprintf ( tmp_str, sizeof(tmp_str), "%.2f km/h", VIK_MPS_TO_KPH(vik_coord_diff(&(tp->coord), &(tpwin->cur_tp->coord)) / (ABS(tp->timestamp - tpwin->cur_tp->timestamp))) ); break; case VIK_UNITS_SPEED_MILES_PER_HOUR: - g_snprintf ( tmp_str, sizeof(tmp_str), "%.2f mph", vik_coord_diff(&(tp->coord), &(tpwin->cur_tp->coord)) / (ABS(tp->timestamp - tpwin->cur_tp->timestamp)) * 2.23693629 ); + g_snprintf ( tmp_str, sizeof(tmp_str), "%.2f mph", VIK_MPS_TO_MPH(vik_coord_diff(&(tp->coord), &(tpwin->cur_tp->coord)) / (ABS(tp->timestamp - tpwin->cur_tp->timestamp))) ); break; case VIK_UNITS_SPEED_METRES_PER_SECOND: g_snprintf ( tmp_str, sizeof(tmp_str), "%.2f m/s", vik_coord_diff(&(tp->coord), &(tpwin->cur_tp->coord)) / ABS(tp->timestamp - tpwin->cur_tp->timestamp) ); break; case VIK_UNITS_SPEED_KNOTS: - g_snprintf ( tmp_str, sizeof(tmp_str), "%.2f knots", vik_coord_diff(&(tp->coord), &(tpwin->cur_tp->coord)) / (ABS(tp->timestamp - tpwin->cur_tp->timestamp)) * 1.94384449 ); + g_snprintf ( tmp_str, sizeof(tmp_str), "%.2f knots", VIK_MPS_TO_KNOTS(vik_coord_diff(&(tp->coord), &(tpwin->cur_tp->coord)) / (ABS(tp->timestamp - tpwin->cur_tp->timestamp))) ); break; default: g_snprintf ( tmp_str, sizeof(tmp_str), "--" ); -- 1.7.1 ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ Viking-devel mailing list Viking-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/viking-devel Viking home page: http://viking.sf.net/