CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
Loading...
Searching...
No Matches
GpgModule.h
Go to the documentation of this file.
1#pragma once
2
3#include "cdc_core/IModule.h"
4
5namespace cdc::mod_gpg {
6
7class GpgModule : public core::IModule {
8public:
9 const char* getName() const override { return "mod_gpg"; }
10 core::ServiceState getState() const override { return state_; }
11 bool init() override;
12 bool start() override;
13 void stop() override;
14
15 const char* getVersion() const override { return "1.0"; }
16 uint8_t getMenuItems(core::ModuleMenuItem* items, uint8_t maxItems) override;
18 void setSlotRange(const core::IModule::SlotRange& range) override;
19
20 static GpgModule& instance();
21
22private:
23 GpgModule() = default;
25 core::IModule::SlotRange slotRange_ = {};
26};
27
28} // namespace cdc::mod_gpg
29
30extern "C" void mod_gpg_register();
void mod_gpg_register()
Registers GPG module initializer in global registry.
Module interface that extends IService with module-specific features.
Definition IModule.h:55
uint8_t getMenuItems(core::ModuleMenuItem *items, uint8_t maxItems) override
Provides main-menu entry for GPG module.
const char * getName() const override
Definition GpgModule.h:9
bool init() override
Initializes GPG module resources and slot assignments.
core::ServiceState getState() const override
Definition GpgModule.h:10
bool start() override
Starts GPG module and registers USB CCID interface.
static GpgModule & instance()
Returns singleton GPG module instance.
const char * getVersion() const override
Returns the module version string.
Definition GpgModule.h:15
core::IModule::SlotRequest getSlotRequest() const override
Declares slot requirements for GPG module.
void stop() override
Stops GPG module and unregisters CCID interface.
void setSlotRange(const core::IModule::SlotRange &range) override
Stores slot range assigned by module registry.
Menu item registered by a module.
Definition IModule.h:29