bool DebugReplayIGC::Next() { last_basic = computed_basic; const char *line; while ((line = reader->ReadLine()) != NULL) { if (line[0] == 'B') { IGCFix fix; if (IGCParseFix(line, extensions, fix)) { CopyFromFix(fix); Compute(); return true; } } else if (line[0] == 'H') { BrokenDate date; if (memcmp(line, "HFDTE", 5) == 0 && IGCParseDateRecord(line, date)) { (BrokenDate &)raw_basic.date_time_utc = date; raw_basic.time_available.Clear(); } } else if (line[0] == 'I') { IGCParseExtensions(line, extensions); } } if (computed_basic.time_available) flying_computer.Finish(calculated.flight, computed_basic.time); return false; }
bool DebugReplayIGC::Next() { last_basic = basic; last_calculated = calculated; const char *line; while ((line = reader->read()) != NULL) { if (line[0] == 'B') { IGCFix fix; if (IGCParseFix(line, extensions, fix) && fix.gps_valid) { CopyFromFix(fix); Compute(); return true; } } else if (line[0] == 'H') { BrokenDate date; if (memcmp(line, "HFDTE", 5) == 0 && IGCParseDateRecord(line, date)) { (BrokenDate &)basic.date_time_utc = date; basic.date_available = true; } } else if (line[0] == 'I') { IGCParseExtensions(line, extensions); } } return false; }
bool DebugReplayIGC::Next() { last_basic = basic; last_calculated = calculated; const char *line; while ((line = reader->read()) != NULL) { if (line[0] == 'B') { IGCFix fix; if (IGCParseFix(line, fix)) { CopyFromFix(fix); Compute(); return true; } } } return false; }