| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #pragma once
- #include <furi_hal.h>
- #include <stdint.h>
- #include <stdbool.h>
- #include <toolbox/saved_struct.h>
- #define DESKTOP_SETTINGS_VER (1)
- #define DESKTOP_SETTINGS_PATH "/int/desktop.settings"
- #define DESKTOP_SETTINGS_MAGIC (0x17)
- #define PIN_MAX_LENGTH 12
- #define DESKTOP_SETTINGS_RUN_PIN_SETUP_ARG "run_pin_setup"
- #define SAVE_DESKTOP_SETTINGS(x) \
- saved_struct_save( \
- DESKTOP_SETTINGS_PATH, \
- (x), \
- sizeof(DesktopSettings), \
- DESKTOP_SETTINGS_MAGIC, \
- DESKTOP_SETTINGS_VER)
- #define LOAD_DESKTOP_SETTINGS(x) \
- saved_struct_load( \
- DESKTOP_SETTINGS_PATH, \
- (x), \
- sizeof(DesktopSettings), \
- DESKTOP_SETTINGS_MAGIC, \
- DESKTOP_SETTINGS_VER)
- #define MAX_PIN_SIZE 10
- #define MIN_PIN_SIZE 4
- typedef struct {
- InputKey data[MAX_PIN_SIZE];
- uint8_t length;
- } PinCode;
- typedef struct {
- uint16_t favorite;
- PinCode pin_code;
- } DesktopSettings;
- static inline bool pins_are_equal(const PinCode* pin_code1, const PinCode* pin_code2) {
- furi_assert(pin_code1);
- furi_assert(pin_code2);
- bool result = false;
- if(pin_code1->length == pin_code2->length) {
- result = !memcmp(pin_code1->data, pin_code2->data, pin_code1->length);
- }
- return result;
- }
|