Files
CubicSDR/docs/PLAN.md
T

4.5 KiB

CubicSDR Improvement Plans

Detailed implementation plans for each recommendation. See RECOMMENDATIONS.md for the full evaluation and summary.

Architecture Documentation

Design documents covering the system architecture are in docs/design/:

Core Architecture

Document Description
Architecture Overview Directory layout, key classes, quick reference
Signal Flow Data path from SDR hardware to audio output
Threading Model Thread inventory, synchronization, lifecycle
Modem System Plugin architecture, factory pattern, available modems

Subsystem Deep Dives

Document Description
Audio Subsystem Controller/bound mixing, WAV recording, device management
Visual Rendering Canvas hierarchy, GLFont, ColorTheme, rendering flow
Visual Data Pipeline VisualProcessor, distribution modes, FFT/scope processing
Configuration System AppConfig/DeviceConfig, DataTree serialization, sessions
Bookmark System BookmarkMgr, groups/ranges/recents, persistence
SDR Device Layer SDREnumerator, SDRDeviceInfo, manual devices

Plans

Plan Risk Effort Dependencies
Fix .gitignore None 5 min None
Add Unit Tests Low 2-3 days None
Replace reinterpret_cast Type Punning Low 1 day None
Modernize CMake Low-Medium 1-2 days None
Split AppFrame.cpp Low 1 day None
Resolve Open TODOs Low 1 day split-appframe, replace-reinterpret-cast
Replace Raw new/delete with Smart Pointers Medium 1 day None
Remove MSVC C4996 Suppression Medium 1-2 days None
Add CI Test Execution Low 2 hours add-unit-tests
Update Vendored Dependencies High 3-5 days None
Reorganize Design Docs Low 1 day None

Source Fixes & Documentation

Discrete tasks not covered by the implementation plans above, tracked here as the single source for their next-step list.

Source Code Fixes

# Action Risk Effort Notes
1 Fix 17m band range in BookmarkMgr.cpp Low 5 min Change to ITU 18.068-18.168 MHz. Check if adjacent bands need adjustment.
2 Fix CMakeLists.txt source/header mismatches None 10 min 5 entries in wrong category. Doesn't break build but misrepresents structure.

Documentation Improvements

# Action Risk Effort Notes
3 Add CONTRIBUTING.md None 1 hr Build instructions, code style, PR process. Currently missing.
4 Add CHANGELOG.md None 1 hr Version history. Currently missing.
5 Add Doxygen config None 2 hr API docs generation. Currently missing.
6 Improve README.md None 30 min Add inline build instructions (currently only on external wiki).

Execute in this order to minimize risk and satisfy dependencies:

  1. Fix .gitignore — Zero risk, immediate value, unblocks clean builds
  2. Add Unit Tests — Foundational; enables test-driven work on subsequent plans
  3. Add CI Test Execution — Locks in test infrastructure before code changes
  4. Replace reinterpret_cast — Low risk, standalone, improves correctness
  5. Modernize CMake — Low-medium risk, standalone, enables better build practices
  6. Split AppFrame.cpp — Low risk, standalone, reduces cognitive load for later work
  7. Reorganize Design Docs — Low risk, documentation only, standalone, reduces cross-doc drift
  8. Resolve TODOs — Depends on AppFrame split and reinterpret_cast replacement
  9. Replace Raw new/delete — Medium risk; do after tests exist to catch regressions
  10. Remove C4996 Suppression — Medium risk; requires touching many files
  11. Update Vendored Dependencies — Highest risk; do last, requires extensive testing