HD Radio Controller
(c) Hal Vaughan 2008
hal@halblog.com
Licensed under the Free Software Foundations General Public License 2.0

Control protocols provided by Paul Cotter.

This program makes it possible to control several different HD and satellite
radios from Linux.  It can be used for simple command line control as well as
control from a more sophisticated program using this interface as a library.

HD Radio Controller is a library of routines for controlling some HD and satellite radios through a serial port (or through a USB port with a USB to RS232c adaptor) on Linux.  It also includes a command line program to allow controlling the same radios directly from the command line.  It usees only standard dependencies so it should compile easily on almost any fairly recent Linux system.  It provides an API that makes it easy to communicate with HD radios, both for sending commands and for reading returned data.  Several different types of interfaces are provided, including the more typical object oriented set of function calls (such as tune()), as well as the ability to call commands with from zero to two string arguments (such as tune("889", "fm")) and the ability to send it a command as if it were typed from the command line (send a string to the parser (such as command(tune 889 fm)).  It also provides extra features, including the ability to save, edit, and tune to favorite stations and an automatic configuration save feature so when it restarts, the radio can be set to exactly how it was set when it was turned off (even if the shutoff was due to a crash or unexpected power-down).

The interface is object oriented.  While there are a total of 6 or 7 different classes, only one class is used as the interface and all other classes are handled from the one main interface class, HDControl.

For more information, see the Overivew.txt file for an overview of the library and see the Doxygen generated documentation in the docs directory.
