diff --git a/lib/Epub/Epub.cpp b/lib/Epub/Epub.cpp index 4040191..1477d72 100644 --- a/lib/Epub/Epub.cpp +++ b/lib/Epub/Epub.cpp @@ -154,47 +154,46 @@ bool Epub::load() { return true; } -void Epub::initializeSpineItemSizes(){ +void Epub::initializeSpineItemSizes() { + setupCacheDir(); - setupCacheDir(); - - size_t spineItemsCount = getSpineItemsCount(); - size_t cumSpineItemSize = 0; - if (SD.exists((getCachePath() + "/spine_size.bin").c_str())) { - File f = SD.open((getCachePath() + "/spine_size.bin").c_str()); - uint8_t data[4]; - for (size_t i = 0; i < spineItemsCount; i++) { - f.read(data, 4); - cumSpineItemSize = data[0] | (data[1] << 8) | (data[2] << 16) | (data[3] << 24); - cumulativeSpineItemSize.emplace_back(cumSpineItemSize); - // Serial.printf("[%lu] [EBP] Loading item %d size %u to %u %u\n", millis(), - // i, cumSpineItemSize, data[1], data[0]); - } - f.close(); - } else { - File f = SD.open((getCachePath() + "/spine_size.bin").c_str(), FILE_WRITE); - uint8_t data[4]; - // determine size of spine items - for (size_t i = 0; i < spineItemsCount; i++) { - std::string spineItem = getSpineItem(i); - size_t s = 0; - getItemSize(spineItem, &s); - cumSpineItemSize += s; - cumulativeSpineItemSize.emplace_back(cumSpineItemSize); - - // and persist to cache - data[0] = cumSpineItemSize & 0xFF; - data[1] = (cumSpineItemSize >> 8) & 0xFF; - data[2] = (cumSpineItemSize >> 16) & 0xFF; - data[3] = (cumSpineItemSize >> 24) & 0xFF; - // Serial.printf("[%lu] [EBP] Persisting item %d size %u to %u %u\n", millis(), - // i, cumSpineItemSize, data[1], data[0]); - f.write(data, 4); - } - - f.close(); + size_t spineItemsCount = getSpineItemsCount(); + size_t cumSpineItemSize = 0; + if (SD.exists((getCachePath() + "/spine_size.bin").c_str())) { + File f = SD.open((getCachePath() + "/spine_size.bin").c_str()); + uint8_t data[4]; + for (size_t i = 0; i < spineItemsCount; i++) { + f.read(data, 4); + cumSpineItemSize = data[0] | (data[1] << 8) | (data[2] << 16) | (data[3] << 24); + cumulativeSpineItemSize.emplace_back(cumSpineItemSize); + // Serial.printf("[%lu] [EBP] Loading item %d size %u to %u %u\n", millis(), + // i, cumSpineItemSize, data[1], data[0]); } - Serial.printf("[%lu] [EBP] Book size: %lu\n", millis(), cumSpineItemSize); + f.close(); + } else { + File f = SD.open((getCachePath() + "/spine_size.bin").c_str(), FILE_WRITE); + uint8_t data[4]; + // determine size of spine items + for (size_t i = 0; i < spineItemsCount; i++) { + std::string spineItem = getSpineItem(i); + size_t s = 0; + getItemSize(spineItem, &s); + cumSpineItemSize += s; + cumulativeSpineItemSize.emplace_back(cumSpineItemSize); + + // and persist to cache + data[0] = cumSpineItemSize & 0xFF; + data[1] = (cumSpineItemSize >> 8) & 0xFF; + data[2] = (cumSpineItemSize >> 16) & 0xFF; + data[3] = (cumSpineItemSize >> 24) & 0xFF; + // Serial.printf("[%lu] [EBP] Persisting item %d size %u to %u %u\n", millis(), + // i, cumSpineItemSize, data[1], data[0]); + f.write(data, 4); + } + + f.close(); + } + Serial.printf("[%lu] [EBP] Book size: %lu\n", millis(), cumSpineItemSize); } bool Epub::clearCache() const { diff --git a/src/main.cpp b/src/main.cpp index 39c5bd0..d12c701 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -216,7 +216,7 @@ void loop() { return; } - if (inputManager.wasReleased(InputManager::BTN_POWER) && inputManager.getHeldTime() > POWER_BUTTON_WAKEUP_MS) { + if (inputManager.wasReleased(InputManager::BTN_POWER) && inputManager.getHeldTime() > POWER_BUTTON_SLEEP_MS) { enterDeepSleep(); // This should never be hit as `enterDeepSleep` calls esp_deep_sleep_start return;