DeskControl/src/lib/screen.cpp

48 lines
878 B
C++

#include "./screen.h"
#include "include/config.h"
Adafruit_GFX* BaseScreen::getDisplay()
{
return this->screenManager->getDisplay();
}
uint16_t BaseScreen::printCentered(const char* text, int16_t y)
{
auto display = this->getDisplay();
int16_t textX;
int16_t textY;
uint16_t textW;
uint16_t textH;
display->getTextBounds(text, 0, 0, &textX, &textY, &textW, &textH);
textX = (Config::DisplayWidth - textW) / 2;
display->setCursor(textX, y);
display->print(text);
return textW;
}
void ScreenManager::init()
{
pinMode(Config::DisplayPinBL, OUTPUT);
digitalWrite(Config::DisplayPinBL, HIGH);
}
void ScreenManager::displayOff()
{
digitalWrite(Config::DisplayPinBL, LOW);
this->display->sendCommand(ST77XX_SLPIN);
}
void ScreenManager::displayOn()
{
this->display->sendCommand(ST77XX_SLPOUT);
digitalWrite(Config::DisplayPinBL, HIGH);
}