rustradio 0.14.2

Software defined radio library
Documentation
# Rustradio UI

This is some loose notes about how the UI (mainly TUI) should work. Right now
it's more of a vision than anything else.

## General outline

SDR graph programs should listen on a network port, providing a control
interface. Over this interface it should be possible to:
* View the graph; the blocks and the streams between them.
  * Show CPU use.
  * Show bps / sps through every stream.
* Snoop on any stream.
  * Because it's for a UI, there should be a way to do this without holding up
    the real graph.
  * Exception: Because the network and/or client may not be able to keep up,
    there'll need to be some server code to make sure that *triggered* plots
    don't miss data.
* Give new parameters to blocks. E.g. re-tune the SDR, set the volume, or tune
  symbol sync loop bandwidth.
  * All settings changed should be recorded to disk, so that when optimal
    settings are found, they're not lost.

It should be possible to ad-hoc inspect a graph, as well as creating a fixed
layout of listening points and controls, in some language like JSON.

## Visualizations

* Time/waveform
* Spectrum
* Eye diagram
* Waterfall
* Constellation plots

With triggers and such, inspired by the GNURadio blocks.

## Network protocol

Once there's a standard network protocol, nothing's stopping a QT or Web UI
frontend. But the initial implementation is a TUI.

While time/spectrum/waterfall don't need every interval, they do need contiguous
samples to be correct. (waterfall also needs to know how much it missed)