btclock_v3/src/lib/epd.hpp

70 lines
1.9 KiB
C++
Raw Normal View History

2023-11-07 01:11:12 +01:00
#pragma once
#include <Fonts/FreeSans9pt7b.h>
2023-11-30 22:38:01 +01:00
#include <Fonts/FreeSansBold9pt7b.h>
#include <GxEPD2_BW.h>
2024-12-29 23:28:22 +01:00
#include "gzip_decompressor.hpp"
2023-11-30 22:38:01 +01:00
#include <mcp23x17_pin.hpp>
#include <mutex>
2023-11-30 22:38:01 +01:00
#include <native_pin.hpp>
#include <regex>
2023-11-30 22:56:50 +01:00
#include "fonts/fonts.hpp"
#include "lib/config.hpp"
#include "lib/shared.hpp"
2024-07-29 20:49:46 +02:00
#include "icons/icons.h"
#include "mining_pool_stats_fetch.hpp"
2023-11-30 22:56:50 +01:00
2024-12-29 23:28:22 +01:00
// Font includes
#include "../fonts/antonio-semibold20.h"
#include "../fonts/antonio-semibold40.h"
#include "../fonts/antonio-semibold90.h"
// Oswald fonts
#include "../fonts/oswald-medium20.h"
#include "../fonts/oswald-medium30.h"
#include "../fonts/oswald-medium80.h"
#include "../fonts/sats-symbol.h"
#ifdef USE_QR
#include "qrcodegen.h"
#endif
// extern TaskHandle_t epdTaskHandle;
2023-11-30 22:38:01 +01:00
typedef struct {
char dispNum;
} UpdateDisplayTaskItem;
2023-11-07 01:11:12 +01:00
void forceFullRefresh();
2023-11-07 01:11:12 +01:00
void setupDisplays();
2023-11-30 22:38:01 +01:00
void splitText(const uint dispNum, const String &top, const String &bottom,
bool partial);
2023-11-07 01:11:12 +01:00
void showDigit(const uint dispNum, char chr, bool partial, const GFXfont *font);
2023-11-30 22:38:01 +01:00
void showChars(const uint dispNum, const String &chars, bool partial,
const GFXfont *font);
2023-11-07 01:11:12 +01:00
extern "C" void updateDisplay(void *pvParameters) noexcept;
void updateDisplayAlt(int epdIndex);
void prepareDisplayUpdateTask(void *pvParameters);
2023-11-07 01:11:12 +01:00
int getBgColor();
int getFgColor();
void setBgColor(int color);
void setFgColor(int color);
2024-12-20 23:02:54 +01:00
bool renderIcon(const uint dispNum, const String &text, bool partial);
2023-11-30 22:38:01 +01:00
void renderText(const uint dispNum, const String &text, bool partial);
void renderQr(const uint dispNum, const String &text, bool partial);
2023-11-30 22:38:01 +01:00
void setEpdContent(std::array<String, NUM_SCREENS> newEpdContent,
bool forceUpdate);
2023-11-07 01:11:12 +01:00
void setEpdContent(std::array<String, NUM_SCREENS> newEpdContent);
2023-11-28 01:30:36 +01:00
void setEpdContent(std::array<std::string, NUM_SCREENS> newEpdContent);
2023-11-07 21:26:15 +01:00
std::array<String, NUM_SCREENS> getCurrentEpdContent();
void waitUntilNoneBusy();