Skip to content

Module Quick Start

Lunae Mons Research edited this page Sep 1, 2025 · 1 revision

Module Quick Start

A condensed quick-start guide for experienced developers who want to jump straight into module development.

Note: For detailed tutorial, see Module Development Guide.

5-Minute Module

// main.cpp - Minimal working module
#include <module.h>
#include <gui/gui.h>

SDRPP_MOD_INFO{
    "quick_module", "Quick start module", "Developer", "1.0.0", 1
};

class QuickModule : public ModuleManager::Instance {
    std::string _name;
    bool _enabled = false;
    
public:
    QuickModule(std::string name) : _name(name) {}
    
    void postInit() override {
        gui::menu.registerEntry(_name, [](void* ctx) {
            auto* mod = (QuickModule*)ctx;
            if (SmGui::BeginMenu(mod->_name.c_str())) {
                if (SmGui::Button("Toggle")) mod->_enabled = !mod->_enabled;
                SmGui::Text("Status: %s", mod->_enabled ? "ON" : "OFF");
                SmGui::EndMenu();
            }
        }, this);
    }
    
    void enable() override { _enabled = true; }
    void disable() override { _enabled = false; }
    bool isEnabled() override { return _enabled; }
};

MOD_EXPORT void _INIT_() {}
MOD_EXPORT ModuleManager::Instance* _CREATE_INSTANCE_(std::string name) {
    return new QuickModule(name);
}
MOD_EXPORT void _DELETE_INSTANCE_(ModuleManager::Instance* inst) {
    delete (QuickModule*)inst;
}
MOD_EXPORT void _END_() {}

Build & Test

# CMakeLists.txt
cmake_minimum_required(VERSION 3.13)
project(quick_module)
add_library(quick_module SHARED main.cpp)
target_link_libraries(quick_module PRIVATE sdrpp_core)

# Build
mkdir build && cd build && cmake .. && make
cp libquick_module.so /path/to/sdrpp/modules/

Next: Module Development Guide for complete tutorial

Clone this wiki locally