Skip to content

Contributing

Hubert Maraszek edited this page Jun 17, 2025 · 1 revision

Can I contribute?

Playnote is a personal passion project, written in a way that is rather different from most other code out there. Issue reports are appreciated, but any non-trivial pull request I would most likely refactor or rewrite before merging, to maintain style and vision. If you are okay with that, please go ahead.

Organization

The codebase is organized into directories as follows:

  • cmake: CMake includes.
  • src/preamble: A centralized module export of commonly used types and utilities, forming the project's standard vocabulary.
  • src/macros: Headers for utilities that absolutely have to be preprocessor macros.
  • src/lib: Module wrappers of external libraries, simplifying their API and standardizing their naming and error handling.
  • src/dev: Handlers of devices and OS concepts.
  • src/io: File and virtual I/O handling.
  • src/gfx: Graphics rendering subsystem.
  • src/gpu: GPU-side code (shaders).
  • src/bms: Parsing, processing and playback of the BMS format.
  • src/threads: The primary threads of execution, and their communication methods.
Clone this wiki locally