Move altosui to the top level, placing libaltos inside it. Signed-off-by: Keith Packard <keithp@keithp.com>
altosui: Add AltosVoice.drain() to wait for queued speech to finish drain() blocks until all pending phrases have been processed, allowing the UI code to avoid pending data that will end up stale by the time it is emitted. Signed-off-by: Keith Packard <keithp@keithp.com>
Make voice and channel menus work. Stores voice and channel data to preferences. Signed-off-by: Keith Packard <keithp@keithp.com>
Java clean ups -- use varargs where possible, remove AltosSerialReader Add methods that format stuff using String.format for voice and serial link, remove AltosSerialReader class and just embed that in the AltosSerial class directly. Signed-off-by: Keith Packard <keithp@keithp.com>
Re-enable freetts
Switch AltosUI to libaltos for device access Signed-off-by: Keith Packard <keithp@keithp.com>
Finish basic flight monitoring UI with voice using FreeTTS This captures telemetry data to log files and presents flight status information in audio form using FreeTTS. Signed-off-by: Keith Packard <keithp@keithp.com>