refactor: pass precomputed BookOverlayInfo to renderBitmapSleepScreen
This commit is contained in:
+2
-1
@@ -408,7 +408,8 @@ inline const char* const* getStringArray(Language lang) {
|
|||||||
constexpr uint8_t getLanguageCount() { return static_cast<uint8_t>(Language::_COUNT); }
|
constexpr uint8_t getLanguageCount() { return static_cast<uint8_t>(Language::_COUNT); }
|
||||||
|
|
||||||
// Sorted language indices by code (auto-generated by gen_i18n.py)
|
// Sorted language indices by code (auto-generated by gen_i18n.py)
|
||||||
// Order: English, Беларуская, Català, Čeština, Dansk, Deutsch, Español, Suomi, Français, Italiano, Қазақша, Nederlands, Polski, Português (Brasil), Română, Русский, Svenska, Türkçe, Українська
|
// Order: English, Беларуская, Català, Čeština, Dansk, Deutsch, Español, Suomi, Français, Italiano, Қазақша, Nederlands,
|
||||||
|
// Polski, Português (Brasil), Română, Русский, Svenska, Türkçe, Українська
|
||||||
constexpr uint8_t SORTED_LANGUAGE_INDICES[] = {0, 11, 9, 4, 15, 3, 1, 14, 2, 12, 18, 16, 13, 5, 8, 6, 7, 17, 10};
|
constexpr uint8_t SORTED_LANGUAGE_INDICES[] = {0, 11, 9, 4, 15, 3, 1, 14, 2, 12, 18, 16, 13, 5, 8, 6, 7, 17, 10};
|
||||||
|
|
||||||
static_assert(sizeof(SORTED_LANGUAGE_INDICES) / sizeof(SORTED_LANGUAGE_INDICES[0]) == getLanguageCount(),
|
static_assert(sizeof(SORTED_LANGUAGE_INDICES) / sizeof(SORTED_LANGUAGE_INDICES[0]) == getLanguageCount(),
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ void SleepActivity::renderCustomSleepScreen() const {
|
|||||||
delay(100);
|
delay(100);
|
||||||
Bitmap bitmap(file, true);
|
Bitmap bitmap(file, true);
|
||||||
if (bitmap.parseHeaders() == BmpReaderError::Ok) {
|
if (bitmap.parseHeaders() == BmpReaderError::Ok) {
|
||||||
renderBitmapSleepScreen(bitmap);
|
renderBitmapSleepScreen(bitmap, BookOverlayInfo{});
|
||||||
file.close();
|
file.close();
|
||||||
dir.close();
|
dir.close();
|
||||||
return;
|
return;
|
||||||
@@ -111,7 +111,7 @@ void SleepActivity::renderCustomSleepScreen() const {
|
|||||||
Bitmap bitmap(file, true);
|
Bitmap bitmap(file, true);
|
||||||
if (bitmap.parseHeaders() == BmpReaderError::Ok) {
|
if (bitmap.parseHeaders() == BmpReaderError::Ok) {
|
||||||
LOG_DBG("SLP", "Loading: /sleep.bmp");
|
LOG_DBG("SLP", "Loading: /sleep.bmp");
|
||||||
renderBitmapSleepScreen(bitmap);
|
renderBitmapSleepScreen(bitmap, BookOverlayInfo{});
|
||||||
file.close();
|
file.close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -247,7 +247,7 @@ BookOverlayInfo SleepActivity::getBookOverlayInfo(const std::string& bookPath) c
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SleepActivity::renderBitmapSleepScreen(const Bitmap& bitmap) const {
|
void SleepActivity::renderBitmapSleepScreen(const Bitmap& bitmap, const BookOverlayInfo& overlayInfo) const {
|
||||||
int x, y;
|
int x, y;
|
||||||
const auto pageWidth = renderer.getScreenWidth();
|
const auto pageWidth = renderer.getScreenWidth();
|
||||||
const auto pageHeight = renderer.getScreenHeight();
|
const auto pageHeight = renderer.getScreenHeight();
|
||||||
@@ -300,7 +300,6 @@ void SleepActivity::renderBitmapSleepScreen(const Bitmap& bitmap) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const uint8_t overlayMode = SETTINGS.sleepCoverOverlay;
|
const uint8_t overlayMode = SETTINGS.sleepCoverOverlay;
|
||||||
const BookOverlayInfo overlayInfo = overlayMode < 3 ? getBookOverlayInfo(APP_STATE.openEpubPath) : BookOverlayInfo{};
|
|
||||||
const auto drawOverlay = [&]() {
|
const auto drawOverlay = [&]() {
|
||||||
const bool hasTitle = !overlayInfo.title.empty();
|
const bool hasTitle = !overlayInfo.title.empty();
|
||||||
const bool hasProgress = !overlayInfo.progressText.empty();
|
const bool hasProgress = !overlayInfo.progressText.empty();
|
||||||
@@ -476,7 +475,10 @@ void SleepActivity::renderCoverSleepScreen() const {
|
|||||||
Bitmap bitmap(file);
|
Bitmap bitmap(file);
|
||||||
if (bitmap.parseHeaders() == BmpReaderError::Ok) {
|
if (bitmap.parseHeaders() == BmpReaderError::Ok) {
|
||||||
LOG_DBG("SLP", "Rendering sleep cover: %s", coverBmpPath.c_str());
|
LOG_DBG("SLP", "Rendering sleep cover: %s", coverBmpPath.c_str());
|
||||||
renderBitmapSleepScreen(bitmap);
|
const uint8_t overlayMode = SETTINGS.sleepCoverOverlay;
|
||||||
|
const BookOverlayInfo coverOverlayInfo =
|
||||||
|
overlayMode < 3 ? getBookOverlayInfo(APP_STATE.openEpubPath) : BookOverlayInfo{};
|
||||||
|
renderBitmapSleepScreen(bitmap, coverOverlayInfo);
|
||||||
file.close();
|
file.close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ class SleepActivity final : public Activity {
|
|||||||
void renderDefaultSleepScreen() const;
|
void renderDefaultSleepScreen() const;
|
||||||
void renderCustomSleepScreen() const;
|
void renderCustomSleepScreen() const;
|
||||||
void renderCoverSleepScreen() const;
|
void renderCoverSleepScreen() const;
|
||||||
void renderBitmapSleepScreen(const Bitmap& bitmap) const;
|
void renderBitmapSleepScreen(const Bitmap& bitmap, const BookOverlayInfo& overlayInfo) const;
|
||||||
void renderBlankSleepScreen() const;
|
void renderBlankSleepScreen() const;
|
||||||
BookOverlayInfo getBookOverlayInfo(const std::string& bookPath) const;
|
BookOverlayInfo getBookOverlayInfo(const std::string& bookPath) const;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user