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
31 static SaoModule inst;
32 return inst;
33}
34
36 LOG_I(TAG, "Initializing SAO module");
40 return true;
41}
42
44 if (state_ != core::ServiceState::INITIALIZED &&
46 return false;
47 }
48 if (!sao_init()) {
49 LOG_W(TAG, "SAO init failed (I2C1 may be unavailable)");
50 }
52 return true;
53}
54
58
59uint8_t SaoModule::getMenuItems(core::ModuleMenuItem* items, uint8_t maxItems) {
60 if (!items || maxItems == 0) return 0;
61 items[0] = {
62 ui::tr("mod_sao.title"),
63 120,
65 nullptr,
66 getName(),
68 nullptr
69 };
70 return 1;
71}
72
74 if (state_ != core::ServiceState::STARTED) return;
75 sao_scan();
76}
77
78} // namespace cdc::mod_sao
79
80extern "C" void mod_sao_register() {
82 auto& module = cdc::mod_sao::SaoModule::instance();
83 module.init();
84 });
85}
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:80
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
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
Definition SaoModule.cpp:43
static SaoModule & instance()
Definition SaoModule.cpp:30
bool init() override
Definition SaoModule.cpp:35
void stop() override
Definition SaoModule.cpp:55
const char * getName() const override
Definition SaoModule.h:11
uint8_t getMenuItems(core::ModuleMenuItem *items, uint8_t maxItems) override
Returns module menu items.
Definition SaoModule.cpp:59
void onUnlock() override
Called when device is unlocked.
Definition SaoModule.cpp:73
static I18n & instance()
Singleton accessor.
Definition I18n.cpp:287
void registerEnglishTable(const I18nEntry *entries, std::size_t count)
Append English entries to the lookup table.
Definition I18n.cpp:307
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:208
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