Try to connect to a callback
authorEnrico Zini <enrico@enricozini.org>
Tue, 14 Jul 2009 15:49:32 +0000 (16:49 +0100)
committerEnrico Zini <enrico@enricozini.org>
Tue, 14 Jul 2009 15:49:32 +0000 (16:49 +0100)
vala/Makefile
vala/gps.vala

index 1735c600c02f6ae1e0c0cbb8daa2306a33db3508..ca6517d8a7146b38619850c525a3b20621a820ad 100644 (file)
@@ -7,6 +7,9 @@ all: zavai
 zavai: $(SOURCES)
        valac -o zavai $(VFLAGS) $^
 
+C: $(SOURCES)
+       valac -C $(VFLAGS) $^
+
 #zavai: $(SOURCES:.vala=.vala.o)
 #      echo $<
 #      gcc $(LDFLAGS) -o zavai $*
index 3f8b80c0d859a99f19a5454397311b6e4395785c..17afa848a81f62ff14e2f5045a4523c7c832cba2 100644 (file)
@@ -22,13 +22,6 @@ using GLib;
 
 namespace zavai {
 
-// #import sys
-// import os
-// import os.path
-// import time
-// import dbus
-// import zavai
-
 /*
 public class GPSMonitor : zavai.Service
 {
@@ -122,28 +115,34 @@ public class GPSMonitor : zavai.Service
 
 public class GPSPosition : zavai.Service
 {
-//     def __init__(self, gps):
-//         super(GPSPosition, self).__init__(["position"])
-//         self.gps = gps
+       weak zavai.Registry reg;
+       dynamic DBus.Object position;
 
-//     def on_position_changed(self, fields, tstamp, lat, lon, alt):
-//         zavai.info("gps position: position changed")
+       public GPSPosition(zavai.Registry r)
+       {
+               reg = r;
+               position = reg.sbus.get_object(
+                       "org.freesmartphone.ogpsd",
+                       "/org/freedesktop/Gypsy",
+                       "org.freedesktop.Gypsy.Position");
+       }
+
+       public void on_position_changed(dynamic DBus.Object pos, int fields, int tstamp, double lat, double lon, double alt)
+       {
+               zavai.log.info("gps position: position changed");
 //         self.notify("position", fields, tstamp, lat, lon, alt)
-// 
+       }
+
        public override void start()
        {
 //         self.gps.connect("gps", self)
-//         self.gps.bus.add_signal_receiver(
-//             self.on_position_changed, 'PositionChanged', 'org.freedesktop.Gypsy.Position',
-//             'org.freesmartphone.ogpsd', '/org/freedesktop/Gypsy')
+               position.PositionChanged += on_position_changed;
                base.start();
        }
 
        public override void stop()
        {
-//         self.gps.bus.remove_signal_receiver(
-//             self.on_position_changed, 'PositionChanged', 'org.freedesktop.Gypsy.Position',
-//             'org.freesmartphone.ogpsd', '/org/freedesktop/Gypsy')
+               position.PositionChanged -= on_position_changed;
 //         self.gps.disconnect("gps", self)
                base.stop();
        }