Move responsibility for tracking DSP block output sample count to individual functions which decimate.
Improve comments in demodulation functions.
Break out code to determine completed baseband buffer.
Move audio output code to separate function, call from individual baseband processing functions that produce audio.
Fix missing pointer increment when scaling processed baseband samples to prevent saturation.
Rework gain structure in NBFM and AM RX processing chains.
Switch from right shifts (not guaranteed to be arithmetic in C for signed values) to divide-by-two operations.
Console: add function to write a formatted uint32_t.
LCD: Return prior color when setting new fore/background color.
Console: Maintain own fore/background colors, restoring prior colors after drawing.
LCD: Clean up internal use of passed-in argument.
Demodulate: Change AM demod function signature to return unsigned values.
Demodulate: Add AM demodulator that returns float32 instead of uint16_t.
Encoder: Move code to M0, poll instead of interrupt because interrupts were catching mechanical switch noise and causing erratic behavior. TODO: Poll with a timer instead of from LCD drawing loop.
IPC: Add IPC code for M0 work queue.
Baseband: Add signal processing for access code detection, clock recovery, envelope tracking, integration, and accumulating bits into packets.