aboutsummaryrefslogtreecommitdiffstats
path: root/src/drivers/SpiMaster.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/SpiMaster.h
parent869bec8f88f72560847ea780ee8342eeb0bc215c (diff)
Use functional abstraction for hooks
Diffstat (limited to 'src/drivers/SpiMaster.h')
-rw-r--r--src/drivers/SpiMaster.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/drivers/SpiMaster.h b/src/drivers/SpiMaster.h
index 131965e1..21980f4f 100644
--- a/src/drivers/SpiMaster.h
+++ b/src/drivers/SpiMaster.h
@@ -1,6 +1,7 @@
#pragma once
#include <cstddef>
#include <cstdint>
+#include <functional>
#include <FreeRTOS.h>
#include <semphr.h>
@@ -31,7 +32,7 @@ namespace Pinetime {
SpiMaster& operator=(SpiMaster&&) = delete;
bool Init();
- bool Write(uint8_t pinCsn, const uint8_t* data, size_t size, void (*TransactionHook)(bool));
+ bool Write(uint8_t pinCsn, const uint8_t* data, size_t size, std::function<void(bool)> TransactionHook);
bool Read(uint8_t pinCsn, uint8_t* cmd, size_t cmdSize, uint8_t* data, size_t dataSize);
bool WriteCmdAndBuffer(uint8_t pinCsn, const uint8_t* cmd, size_t cmdSize, const uint8_t* data, size_t dataSize);
@@ -50,7 +51,7 @@ namespace Pinetime {
NRF_SPIM_Type* spiBaseAddress;
uint8_t pinCsn;
- void (*TransactionHook)(bool);
+ std::function<void(bool)> TransactionHook;
SpiMaster::SpiModule spi;
SpiMaster::Parameters params;