Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ports-kde
Path: blob/main/astro/foxtrotgps/files/patch-src_gps__functions.c
16461 views
1
--- src/gps_functions.c.orig 2019-07-10 05:35:12 UTC
2
+++ src/gps_functions.c
3
@@ -729,6 +729,11 @@ cb_gpsd_io_error(GIOChannel *src, GIOCondition conditi
4
}
5
6
7
+static double
8
+timespec_to_double(struct timespec ts)
9
+{
10
+ return ((double)(ts.tv_sec) + ((double)(ts.tv_nsec) / 1e9));
11
+}
12
13
static gboolean
14
cb_gpsd_data(GIOChannel *src, GIOCondition condition, gpointer data)
15
@@ -753,12 +758,16 @@ cb_gpsd_data(GIOChannel *src, GIOCondition condition,
16
{
17
gpsdata->satellites_used = libgps_gpsdata.satellites_used;
18
gpsdata->hdop = libgps_gpsdata.dop.hdop;
19
- gpsdata->fix.time = libgps_gpsdata.fix.time;
20
+ gpsdata->fix.time = timespec_to_double(libgps_gpsdata.fix.time);
21
if (isnan(gpsdata->fix.time))
22
{
23
gpsdata->fix.time = (time_t) 0;
24
}
25
+#if GPSD_API_MAJOR_VERSION >= 10
26
+ gpsdata->valid = (libgps_gpsdata.fix.status != STATUS_UNK);
27
+#else
28
gpsdata->valid = (libgps_gpsdata.status != STATUS_NO_FIX);
29
+#endif
30
if (gpsdata->valid)
31
{
32
gpsdata->seen_valid = TRUE;
33
34