altoslib: Create new abstraction underneath AltosState for recording values
[fw/altos] / altoslib / AltosEepromRecordGps.java
index d547ef02f04cb303f192d032e7c968656ebdfb7d..4f30692ee334fa2292686cd4b533e9ce2af69ed9 100644 (file)
@@ -71,13 +71,13 @@ public class AltosEepromRecordGps extends AltosEepromRecord {
                return start - o.start;
        }
 
-       public void update_state(AltosState state) {
+       public void update_state(AltosFlightListener state) {
                super.update_state(state);
 
                AltosGPS        gps;
 
                /* Flush any pending RecordGps changes */
-               if (state.gps_pending) {
+               if (state.gps_pending()) {
                        switch (cmd()) {
                        case AltosLib.AO_LOG_GPS_LAT:
                        case AltosLib.AO_LOG_GPS_LON:
@@ -93,7 +93,7 @@ public class AltosEepromRecordGps extends AltosEepromRecord {
 
                switch (cmd()) {
                case AltosLib.AO_LOG_FLIGHT:
-                       if (state.flight == AltosLib.MISSING) {
+                       if (state.flight() == AltosLib.MISSING) {
                                state.set_boost_tick(tick());
                                state.set_flight(flight());
                        }
@@ -145,9 +145,10 @@ public class AltosEepromRecordGps extends AltosEepromRecord {
        }
 
        public AltosEepromRecord next() {
-               if (start + length + length < eeprom.data.size())
-                       return new AltosEepromRecordGps(eeprom, start + length);
-               return null;
+               int     s = next_start();
+               if (s < 0)
+                       return null;
+               return new AltosEepromRecordGps(eeprom, s);
        }
 
        public AltosEepromRecordGps(AltosEepromNew eeprom, int start) {