Skip to content
Lunae Mons Research edited this page Sep 1, 2025 · 2 revisions

SDR++CE Developer Documentation

Welcome to the SDR++CE (Community Edition) developer documentation wiki. This comprehensive guide covers the architecture, development patterns, and best practices for contributing to SDR++CE.

🏗️ Architecture Documentation

Core System

Module System

Signal Processing

User Interface

  • UI System - ImGui integration, threading patterns, and module UI
  • UI Internals - Waterfall widget, custom rendering, and performance

🚀 Quick Start Guides

For New Contributors

  1. Architecture Overview - High-level system understanding
  2. Development Setup - Build environment and tools
  3. AI-Assisted Development - Using Cursor IDE and AI for development
  4. Contributing Guidelines - Code style and submission process

For Module Developers

  1. Module Quick Start - Create your first module
  2. Module Patterns - Common development patterns
  3. Module API Reference - Complete API documentation

🤖 AI-Powered Development

SDR++CE includes comprehensive AI assistance configuration for modern development workflows:

  • Pre-configured Cursor IDE setup with .cursorrules for SDR/DSP development
  • Context-aware code generation that understands real-time constraints
  • Architecture-specific guidance for threading, performance, and cross-platform development
  • Intelligent debugging assistance for complex DSP and threading issues

AI-Assisted Development - Learn how to leverage AI for faster, better SDR++CE development

🎯 Key Concepts

Threading Architecture

SDR++CE uses a strict threading model:

  • UI Thread: ImGui rendering, user interaction, configuration
  • DSP Thread: Real-time signal processing, no blocking operations
  • Module Threads: Plugin-specific processing
  • Config Thread: Auto-save and persistence

Real-Time Constraints

  • No heap allocations in DSP threads
  • No blocking I/O or contended locks
  • Atomic variables for UI-to-DSP communication
  • Mutex-protected data structures where needed

Module Philosophy

  • Plugin-based extensibility
  • Clean separation of concerns
  • Thread-safe inter-module communication
  • Configuration persistence

📞 Getting Help

  • Issues: Check existing GitHub issues for known problems
  • Discussions: Use GitHub Discussions for architecture questions
  • Code Review: Submit draft PRs for early feedback
  • Community: Join the SDR++ community for support

This documentation is maintained by the SDR++CE community. Contributions and improvements are welcome!

Clone this wiki locally