summaryrefslogtreecommitdiff
path: root/display.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2004-08-21 06:29:08 +0000
committerEric S. Raymond <esr@thyrsus.com>2004-08-21 06:29:08 +0000
commit70bc2a1e470351b0640142eca2ddf0065b455e0c (patch)
tree2dcf82e59da7462675c2dd4a16e27f1813148754 /display.c
parent9be46680bf8ee43379e2e5bdf68b896a57f6bf1b (diff)
downloadgpsd-70bc2a1e470351b0640142eca2ddf0065b455e0c.tar.gz
Narrow the interface to the satellite-display code.
Diffstat (limited to 'display.c')
-rw-r--r--display.c29
1 files changed, 13 insertions, 16 deletions
diff --git a/display.c b/display.c
index 9706e8b8..ead5df17 100644
--- a/display.c
+++ b/display.c
@@ -26,10 +26,9 @@
#include <math.h>
#include "gps.h"
-#include "gpsd.h"
extern void register_canvas(Widget w, GC gc);
-extern void draw_graphics();
+extern void draw_graphics(struct gps_data *gpsdata);
#define XCENTER (double)(width/2)
#define YCENTER (double)(height/2)
@@ -40,8 +39,6 @@ extern void draw_graphics();
#undef min
#define min(a,b) ((a) < (b) ? (a) : (b))
-extern struct gpsd_t session;
-
static Widget draww;
static GC drawGC;
static Dimension width, height;
@@ -108,23 +105,23 @@ void draw_arc(int x, int y, int diam)
}
-int get_status(int satellite)
+int get_status(struct gps_data *gpsdata, int satellite)
{
int i;
int s;
#ifdef PROCESS_PRWIZCH
- if (SEEN(session.gNMEAdata.signal_quality_stamp)) {
+ if (SEEN(gpsdata->signal_quality_stamp)) {
for (i = 0; i < 12; i++)
- if (satellite == session.gNMEAdata.Zs[i])
- return session.gNMEAdata.Zv[i];
+ if (satellite == gpsdata->Zs[i])
+ return gpsdata->Zv[i];
return 0;
} else
#endif /* PROCESS_PRWIZCH */
{
for (i = 0; i < 12; i++)
- if (satellite == session.gNMEAdata.PRN[i]) {
- s = session.gNMEAdata.ss[i];
+ if (satellite == gpsdata->PRN[i]) {
+ s = gpsdata->ss[i];
if (s<20) return 1;
if (s<40) return 2;
@@ -136,13 +133,13 @@ int get_status(int satellite)
}
-void draw_graphics()
+void draw_graphics(struct gps_data *gpsdata)
{
int i;
double x, y;
char buf[20];
- if (SEEN(session.gNMEAdata.satellite_stamp)) {
+ if (SEEN(gpsdata->satellite_stamp)) {
i = min(width, height);
@@ -181,10 +178,10 @@ void draw_graphics()
(int) x-5, (int) y, "E", 1);
/* Now draw the satellites... */
- for (i = 0; i < session.gNMEAdata.satellites; i++) {
- pol2cart(session.gNMEAdata.azimuth[i], session.gNMEAdata.elevation[i], &x, &y);
+ for (i = 0; i < gpsdata->satellites; i++) {
+ pol2cart(gpsdata->azimuth[i], gpsdata->elevation[i], &x, &y);
- switch (get_status(session.gNMEAdata.PRN[i]) & 7) {
+ switch (get_status(gpsdata, gpsdata->PRN[i]) & 7) {
case 0:
case 1:
set_color("Grey");
@@ -207,7 +204,7 @@ void draw_graphics()
11, 11, /* width, height */
0, 360 * 64 /* angle1, angle2 */
);
- sprintf(buf, "%02d", session.gNMEAdata.PRN[i]);
+ sprintf(buf, "%02d", gpsdata->PRN[i]);
set_color("Blue");
XDrawString(XtDisplay(draww), pixmap, drawGC,
(int) x + 0, (int) y + 17, buf, 2);