From dc1bc121c89600e2d5a18458283aa5960aa39e24 Mon Sep 17 00:00:00 2001 From: tomaszduda23 Date: Mon, 11 Jul 2022 11:59:56 +0900 Subject: add interface for storage (#99) --- hid/src/main.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'hid/src') 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 -#ifdef HID_DYNAMIC -# include -#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 -- cgit v1.2.3