+ if ( isnan(tp->course) )
+ g_snprintf ( tmp_str, sizeof(tmp_str), "--" );
+ else
+ g_snprintf ( tmp_str, sizeof(tmp_str), "%05.1f\302\260", tp->course );
+ gtk_label_set_text ( tpwin->course, tmp_str );
+
+ if ( isnan(tp->speed) )
+ g_snprintf ( tmp_str, sizeof(tmp_str), "--" );
+ else {
+ switch (speed_units) {
+ case VIK_UNITS_SPEED_MILES_PER_HOUR:
+ g_snprintf ( tmp_str, sizeof(tmp_str), "%.2f mph", VIK_MPS_TO_MPH(tp->speed) );
+ break;
+ case VIK_UNITS_SPEED_METRES_PER_SECOND:
+ g_snprintf ( tmp_str, sizeof(tmp_str), "%.2f m/s", tp->speed );
+ break;
+ case VIK_UNITS_SPEED_KNOTS:
+ g_snprintf ( tmp_str, sizeof(tmp_str), "%.2f knots", VIK_MPS_TO_KNOTS(tp->speed) );
+ break;
+ default:
+ // VIK_UNITS_SPEED_KILOMETRES_PER_HOUR:
+ g_snprintf ( tmp_str, sizeof(tmp_str), "%.2f km/h", VIK_MPS_TO_KPH(tp->speed) );
+ break;
+ }
+ }
+ gtk_label_set_text ( tpwin->speed, tmp_str );
+
+ switch (dist_units) {
+ case VIK_UNITS_DISTANCE_KILOMETRES:
+ g_snprintf ( tmp_str, sizeof(tmp_str), "%.5f m", tp->hdop );
+ gtk_label_set_text ( tpwin->hdop, tmp_str );
+ g_snprintf ( tmp_str, sizeof(tmp_str), "%.5f m", tp->pdop );
+ gtk_label_set_text ( tpwin->pdop, tmp_str );
+ break;
+ case VIK_UNITS_DISTANCE_MILES:
+ g_snprintf ( tmp_str, sizeof(tmp_str), "%.5f yards", tp->hdop*1.0936133 );
+ gtk_label_set_text ( tpwin->hdop, tmp_str );
+ g_snprintf ( tmp_str, sizeof(tmp_str), "%.5f yards", tp->pdop*1.0936133 );
+ gtk_label_set_text ( tpwin->pdop, tmp_str );
+ break;
+ default:
+ g_critical("Houston, we've had a problem. distance=%d", dist_units);
+ }
+
+ switch (height_units) {
+ case VIK_UNITS_HEIGHT_METRES:
+ g_snprintf ( tmp_str, sizeof(tmp_str), "%.5f m", tp->vdop );
+ break;
+ case VIK_UNITS_HEIGHT_FEET:
+ g_snprintf ( tmp_str, sizeof(tmp_str), "%.5f feet", VIK_METERS_TO_FEET(tp->vdop) );
+ break;
+ default:
+ g_snprintf ( tmp_str, sizeof(tmp_str), "--" );
+ g_critical("Houston, we've had a problem. height=%d", height_units);
+ }
+ gtk_label_set_text ( tpwin->vdop, tmp_str );
+
+ g_snprintf ( tmp_str, sizeof(tmp_str), "%d / %d", tp->nsats, tp->fix_mode );
+ gtk_label_set_text ( tpwin->sat, tmp_str );