aboutsummaryrefslogtreecommitdiffstats
path: root/src/drivers/St7789.h
diff options
context:
space:
mode:
authormark9064 <30447455+mark9064@users.noreply.github.com>2024-04-01 17:14:33 +0100
committerJF <JF002@users.noreply.github.com>2024-05-01 16:13:47 +0200
commit940cd3459f95073e60c61b37519486f569aac840 (patch)
tree83298f672c512a5d3a2d5a990bfbcbbbb29296ad /src/drivers/St7789.h
parent869bec8f88f72560847ea780ee8342eeb0bc215c (diff)
Use functional abstraction for hooks
Diffstat (limited to 'src/drivers/St7789.h')
-rw-r--r--src/drivers/St7789.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/drivers/St7789.h b/src/drivers/St7789.h
index 339776ae..0c73f77e 100644
--- a/src/drivers/St7789.h
+++ b/src/drivers/St7789.h
@@ -1,6 +1,7 @@
#pragma once
#include <cstddef>
#include <cstdint>
+#include <functional>
namespace Pinetime {
namespace Drivers {
@@ -8,7 +9,7 @@ namespace Pinetime {
class St7789 {
public:
- explicit St7789(Spi& spi);
+ explicit St7789(Spi& spi, uint8_t pinDataCommand, uint8_t pinReset);
St7789(const St7789&) = delete;
St7789& operator=(const St7789&) = delete;
St7789(St7789&&) = delete;
@@ -26,6 +27,8 @@ namespace Pinetime {
private:
Spi& spi;
+ uint8_t pinDataCommand;
+ uint8_t pinReset;
uint8_t verticalScrollingStartAddress = 0;
void HardwareReset();
@@ -43,9 +46,9 @@ namespace Pinetime {
void SetAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1);
void SetVdv();
void WriteCommand(uint8_t cmd);
- void WriteSpi(const uint8_t* data, size_t size, void (*TransactionHook)(bool));
- static void EnableDataMode(bool isStart);
- static void EnableCommandMode(bool isStart);
+ void WriteSpi(const uint8_t* data, size_t size, std::function<void(bool)> TransactionHook);
+ void EnableDataMode(bool isStart);
+ void EnableCommandMode(bool isStart);
enum class Commands : uint8_t {
SoftwareReset = 0x01,