summaryrefslogtreecommitdiff
path: root/hid/src/main.cpp
diff options
context:
space:
mode:
authortomaszduda23 <[email protected]>2022-07-11 11:59:56 +0900
committerGitHub <[email protected]>2022-07-11 05:59:56 +0300
commitdc1bc121c89600e2d5a18458283aa5960aa39e24 (patch)
tree9c212046147cdea8a65973b3b0fd1405cbdeb5c4 /hid/src/main.cpp
parent89aff795fd7905aaf192428bb99814c13b98d5c2 (diff)
add interface for storage (#99)
Diffstat (limited to 'hid/src/main.cpp')
-rw-r--r--hid/src/main.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/hid/src/main.cpp b/hid/src/main.cpp
index f518fa25..99c533b3 100644
--- a/hid/src/main.cpp
+++ b/hid/src/main.cpp
@@ -32,9 +32,6 @@
#include <Arduino.h>
-#ifdef HID_DYNAMIC
-# include <avr/eeprom.h>
-#endif
#include "tools.h"
#include "proto.h"
@@ -49,14 +46,15 @@
// -----------------------------------------------------------------------------
static DRIVERS::Keyboard *_kbd = nullptr;
-static DRIVERS::Mouse * _mouse = nullptr;
+static DRIVERS::Mouse *_mouse = nullptr;
#ifdef HID_DYNAMIC
static bool _reset_required = false;
+static DRIVERS::Storage *_storage = nullptr;
static int _readOutputs(void) {
uint8_t data[8];
- eeprom_read_block(data, 0, 8);
+ _storage->read_block(data, 0, 8);
if (data[0] != PROTO::MAGIC || PROTO::crc16(data, 6) != PROTO::merge8(data[6], data[7])) {
return -1;
}
@@ -75,13 +73,14 @@ static void _writeOutputs(uint8_t mask, uint8_t outputs, bool force) {
data[0] = PROTO::MAGIC;
data[1] = (old & ~mask) | outputs;
PROTO::split16(PROTO::crc16(data, 6), &data[6], &data[7]);
- eeprom_update_block(data, 0, 8);
+ _storage->read_block(data, 0, 8);
}
#endif
static void _initOutputs() {
int outputs;
# ifdef HID_DYNAMIC
+ _storage = DRIVERS::Factory::makeStorage(DRIVERS::NON_VOLATILE_STORAGE);
outputs = _readOutputs();
if (outputs < 0) {
# endif