22# if defined(ENABLE_CRDB_DEBUG)
23 OSCR::Serial::printLineSync(FS(OSCR::Strings::Headings::CRDBDebugROM));
25 OSCR::Serial::printSync(FS(OSCR::Strings::Labels::NAME));
26 OSCR::Serial::printLineSync(_data.name);
28 OSCR::Serial::printSync(FS(OSCR::Strings::Labels::CRCSum));
29 OSCR::Serial::printLineSync(_data.crc32);
31 OSCR::Serial::printSync(FS(OSCR::Strings::Labels::ID));
32 OSCR::Serial::printLineSync(_data.serial);
34 OSCR::Serial::printSync(FS(OSCR::Strings::Labels::SIZE));
35 OSCR::Serial::printLineSync(_data.size);
37 OSCR::Serial::printSync(FS(OSCR::Strings::Labels::SAVE));
38 OSCR::Serial::printLineSync(_data.saveType);
40 OSCR::Serial::printLineSync(FS(OSCR::Strings::Headings::CRDBDebugEnd));
52 readNum32(currentRecord->data()->crc32);
53 readBytes(¤tRecord->data()->serial, 4);
54 readNum16(¤tRecord->data()->size);
55 readNum16(¤tRecord->data()->saveType);
56 readBytes(¤tRecord->data()->name, 100);
58# if defined(ENABLE_CRDB_DEBUG)
59 OSCR::Serial::printLineSync(currentRecord->data()->name);
63 bool searchRecord(
char const * serialSearch, uint16_t startingRecord = 0)
65 constexpr uint8_t
const offset = 4;
68# if defined(ENABLE_CRDB_DEBUG)
69 OSCR::Serial::printLineSync(
F(
"<CRDB> Searching..."));
70 OSCR::Serial::printSync(
F(
"<CRDB> Serial Search: "));
71 OSCR::Serial::printLineSync(serialSearch);
74 for (uint_fast32_t i = startingRecord; gotoRecordIndex(i) && file.seekCur(offset); ++i)
77 int_fast8_t
const readLen = readBytes(serial, 4);
79 if (readLen != 4)
break;
82 (serial[0] == serialSearch[0]) &&
83 (serial[1] == serialSearch[1]) &&
84 (serial[2] == serialSearch[2]) &&
85 (serial[3] == serialSearch[3])
88# if defined(ENABLE_CRDB_DEBUG)
89 OSCR::Serial::printSync(
F(
"<CRDB> "));
90 OSCR::Serial::printLineSync(FS(OSCR::Strings::Common::OK));
93 if (!loadRecordIndex(i))
95# if defined(ENABLE_CRDB_DEBUG)
96 OSCR::Serial::printLineSync(
F(
"<CRDB> Failed to load record!"));
98 error(OSCR::CRDB::ERRORS::E_READ_ERROR);
102# if defined(ENABLE_CRDB_DEBUG)
103 OSCR::Serial::printLineSync(
F(
"<CRDB> Loaded record."));
110# if defined(ENABLE_CRDB_DEBUG)
111 OSCR::Serial::printLineSync(
F(
"<CRDB> NOT FOUND"));
118 bool searchRecordNext(
char const * serialSearch)
120 return searchRecord(serialSearch, recordNum);