CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
Loading...
Searching...
No Matches
SaoModule.cpp
Go to the documentation of this file.
1#include "mod_sao/SaoModule.h"
2#include "mod_sao/sao.h"
4#include "cdc_ui/I18n.h"
6#include "cdc_log.h"
7#include <cstring>
8
9static const char* TAG = "SAO";
10
11namespace cdc::mod_sao {
12
13constexpr ui::I18nEntry kStrings[] = {
14 {"mod_sao.title", "SAO"},
15};
16
20
22static char s_infoText[256];
23
26 s_infoView.init(ui::tr("mod_sao.title"), s_infoText);
27 return &s_infoView;
28}
29
30SaoModule& SaoModule::instance() {
31 static SaoModule inst;
32 return inst;
33}
34
36 LOG_I(TAG, "Initializing SAO module");
40 return true;
41}
42
45 return false;
46 }
47 if (!sao_init()) {
48 LOG_W(TAG, "SAO init failed (I2C1 may be unavailable)");
49 }
50 return true;
51}
52
53uint8_t SaoModule::getMenuItems(core::ModuleMenuItem* items, uint8_t maxItems) {
54 if (!items || maxItems == 0) return 0;
55 items[0] = {
56 ui::tr("mod_sao.title"),
57 120,
59 nullptr,
60 getName(),
62 nullptr
63 };
64 return 1;
65}
66
69 sao_scan();
70}
71
72} // namespace cdc::mod_sao
73
74extern "C" void mod_sao_register() {
76 auto& module = cdc::mod_sao::SaoModule::instance();
77 module.init();
78 });
79}
static const char * TAG
Internationalization with English fallbacks in code and overlay translations loaded at runtime from a...
void mod_sao_register()
Definition SaoModule.cpp:74
CDC Log: logging over TinyUSB CDC and UART.
#define LOG_W(tag, fmt,...)
Definition cdc_log.h:146
#define LOG_I(tag, fmt,...)
Definition cdc_log.h:147
const char * getName() const override
Returns the module name supplied to the constructor.
Definition ModuleBase.h:32
bool start() override
Default start() implementation performing the standard transition.
Definition ModuleBase.h:49
ServiceState state_
Definition ModuleBase.h:67
bool registerModule(IModule *module)
Registers a module instance in the runtime registry.
static ModuleRegistry & instance()
Returns the singleton module registry instance.
void registerInitializer(ModuleInitFunc initFunc)
Registers a deferred module initializer callback.
bool start() override
Default start() implementation performing the standard transition.
Definition SaoModule.cpp:43
static SaoModule & instance()
Definition SaoModule.cpp:30
bool init() override
Definition SaoModule.cpp:35
uint8_t getMenuItems(core::ModuleMenuItem *items, uint8_t maxItems) override
Returns module menu items.
Definition SaoModule.cpp:53
void onUnlock() override
Called when device is unlocked.
Definition SaoModule.cpp:67
static I18n & instance()
Singleton accessor.
Definition I18n.cpp:306
void registerEnglishTable(const I18nEntry *entries, std::size_t count)
Append English entries to the lookup table.
Definition I18n.cpp:326
constexpr ui::I18nEntry kStrings[]
Definition SaoModule.cpp:13
static void registerStrings()
Definition SaoModule.cpp:17
static ui::IView * getInfoView()
Definition SaoModule.cpp:24
static ui::InfoView s_infoView
Definition SaoModule.cpp:21
static char s_infoText[256]
Definition SaoModule.cpp:22
const char * tr(const char *key)
Look up a translation by string key.
Definition I18n.h:209
bool sao_scan(void)
Definition sao.cpp:155
void sao_get_info_string(char *buf, size_t len)
Definition sao.cpp:199
bool sao_init(void)
Definition sao.cpp:124
Menu item registered by a module.
Definition IModule.h:29
Single English translation entry.
Definition I18n.h:44