altoslib: Create new abstraction underneath AltosState for recording values
[fw/altos] / altoslib / AltosEepromRecordTiny.java
index 6c04bfee16c8bf4bff6245fd49243f7c85cd9b59..e70f8cdc58ee4f1da79cc7fb40ffa0c5f3089f80 100644 (file)
@@ -21,6 +21,10 @@ public class AltosEepromRecordTiny extends AltosEepromRecord {
                return eeprom.data16(start);
        }
 
+       public boolean valid(int s) {
+               return eeprom.data16(s) != 0xffff;
+       }
+
        public int cmd() {
                if (start == 0)
                        return AltosLib.AO_LOG_FLIGHT;
@@ -46,7 +50,7 @@ public class AltosEepromRecordTiny extends AltosEepromRecord {
                return tick;
        }
 
-       public void update_state(AltosState state) {
+       public void update_state(AltosFlightListener state) {
                int value = data16(-header_length);
 
                state.set_tick(tick());
@@ -66,9 +70,10 @@ public class AltosEepromRecordTiny extends AltosEepromRecord {
        }
 
        public AltosEepromRecord next() {
-               if (start + record_length * 2 < eeprom.data.size())
-                       return new AltosEepromRecordTiny(eeprom, start + record_length);
-               return null;
+               int     s = next_start();
+               if (s < 0)
+                       return null;
+               return new AltosEepromRecordTiny(eeprom, s);
        }
 
        public AltosEepromRecordTiny(AltosEepromNew eeprom, int start) {