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/

Reply via email to