diff options
| author | mark9064 <30447455+mark9064@users.noreply.github.com> | 2024-04-01 17:14:33 +0100 |
|---|---|---|
| committer | JF <JF002@users.noreply.github.com> | 2024-05-01 16:13:47 +0200 |
| commit | 940cd3459f95073e60c61b37519486f569aac840 (patch) | |
| tree | 83298f672c512a5d3a2d5a990bfbcbbbb29296ad /src/drivers/St7789.h | |
| parent | 869bec8f88f72560847ea780ee8342eeb0bc215c (diff) | |
Use functional abstraction for hooks
Diffstat (limited to 'src/drivers/St7789.h')
| -rw-r--r-- | src/drivers/St7789.h | 11 |
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, |
