# comments will behave just like regular Qt-style comments
# (thus requiring an explicit @brief command for a brief description.)
-JAVADOC_AUTOBRIEF = NO
+JAVADOC_AUTOBRIEF = YES
# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
# interpret the first line (until the first dot) of a Qt-style
/// \mainpage FreeDV Server
///
-/// By Bruce Perens <bruce@perens.com>
+/// \author Bruce Perens <bruce@perens.com>
///
///
/// \section overview OVERVIEW
/// generators and audio sinks for testing all parts of the program as well
/// as drivers for actual hardware.
///
-/// The intent at this time is to base the event system on libevent and the
-/// audio drivers on portaudio 2.0's "blocking" interface (which provides an
-/// "I/O ready" indication and thus doesn't actually have to block). There
-/// will probably be a need to extend portaudio so that it can tie into
-/// libevent.
-///
-/// All of this software is developed using test-driven-development, with
-/// googletest as the unit test framework. The test-driven paradigm immediately
-/// showed its usefulness, as it made a few design mistakes immediately obvious.
-///
-/// Doxygen is used as the documentation system.
-///
/// \section sponsorship SPONSORSHIP
///
/// The current use of this program is HF, but it is also intended to work as
-/// part of a VHF/UHF SDR HT being developed by Algoram, the company founded
+/// part of a VHF/UHF SDR HT being developed by *Algoram*, the company founded
/// by Chris Testa and myself. Its development is currently part of my personal
/// investment in Algoram.
///
/// under the Affero GPL Version 3, but you must comply with all of its terms,
/// including those that require you to publish the source code of your own
/// software under a compatible license.
-///
+///
/// Alternatively, you may purchase a commercial license from Algoram, in
-/// which case you need not publish your own source code. Be advised that
-/// Algoram does not own the entire copyright of this program, specifically
-/// the codec library. The portions of this program that we do not own are
-/// under less restrictive licenses like LGPL version 2, and we will work with
-/// your attorney and engineers to help you to deal with the intellectual
-/// property due diligence requirements of those licenses in a way that
-/// protects you from being obligated to publish your own source code.
+/// which case you need not publish your own source code.
+///
+/// Be advised that Algoram does *not* own the entire copyright of this
+/// program, specifically the codec and modem functions.
+/// The portions of this program that we do not own are under less restrictive
+/// licenses like LGPL version 2 that do not encumber your own software.
+/// We will work with the attorney and engineers of our commercial licensees
+/// to help them deal with the intellectual property due diligence requirements
+/// of those licenses.
///
/// Algoram is not a law firm and in general we work with your attorney. Only
/// your attorney can provide you with legal advice.
# endif
#endif
-/// \namespace FreeDV Namespace used for all code in this program.
+/// \namespace FreeDV Namespace used for all code in the FreeDV program.
///
namespace FreeDV {
/// This propogates argv[0] so that it can be used in error messages.
};
/// Virtual base class for audio input drivers.
+///
class AudioInput : public ::FreeDV::AudioDevice {
protected:
/// Create an AudioInput device instance.
};
/// Virtual base class for audio output drivers.
+///
class AudioOutput : public ::FreeDV::AudioDevice {
protected:
/// Create an AudioOutput device instance.
};
/// Virtual base class for codecs.
+///
class Codec : public ::FreeDV::Base {
protected:
/// Create a codec instance.
};
/// Virtual base class for protocol framers.
+///
class Framer : public ::FreeDV::Base {
protected:
/// Create a framer instance.
};
/// Radio device keying driver.
+///
class KeyingOutput : public ::FreeDV::Base {
protected:
/// Create an radio keying output device instance.
};
/// Softmodem driver.
+///
class Modem : public ::FreeDV::Base {
protected:
/// Create a softmodem device instance.
};
/// Push-to-talk input driver.
+///
class PTTInput : public ::FreeDV::IODevice {
protected:
/// Create a push-to-talk switch instance.
};
/// Driver for the text message source function.
+///
class TextInput : public ::FreeDV::IODevice {
protected:
/// The child class calls this member in its parent to set the text.
UserInterface * BlankPanel(const char * parameter, Interfaces * interfaces);
}
-/// Utility functions.
-///
+// Utility functions.
+//
/// Non-template version of min().
///
/// \file platform/linux/alsa.cpp
/// Functions to support the ALSA audio input and output device drivers on
/// Linux.
-///
/// There is at least one other operating systems that supports an ALSA-like
-// interfaces, Nucleus, but at this writing (early 2014) this driver is
-/// untested on that.
+/// interfaces, Nucleus, but at this writing (early 2014) this driver is
+/// untested on that system.
///
/// \copyright Copyright (C) 2013-2014 Algoram. See the LICENSE file.
///
/// \file platform/linux/audio_in_alsa.cpp
/// ALSA audio input device driver, for use on Linux.
-///
/// There is at least one other operating systems that supports an ALSA-like
/// interfaces, Nucleus, but at this writing (early 2014) this driver is
-/// untested on that.
+/// untested on that system.
///
/// \copyright Copyright (C) 2013-2014 Algoram. See the LICENSE file.
///
/// \file platform/linux/audio_out_alsa.cpp
/// ALSA audio output device driver, for use on Linux.
-///
/// There is at least one other operating system that supports an ALSA-like
/// interfaces, Nucleus, but at this writing (early 2014) this driver is
-/// untested on that.
+/// untested on that system.
///
/// \copyright Copyright (C) 2013-2014 Algoram. See the LICENSE file.
///
#include <stdexcept>
#include <string.h>
-/// FIX:
-///
-/// Start of Transmit:
-/// Make the delay at start of transmit and end of transmit adjustable.
-/// The radio in general takes some time to begin transmitting, and thus we
-/// should not send audio until that's done.
-///
-/// End of Transmit:
-/// There is a lot to fill in for end-of-transmit.
-/// On PTT-up, we should read the remaining audio in the microphone
-/// device queue first, allow it all to drain out the transmitter, and then
-/// un-key the transmitter.
-///
+// Start of Transmit:
+// Make the delay at start of transmit and end of transmit adjustable.
+// The radio in general takes some time to begin transmitting, and thus we
+// should not send audio until that's done.
+//
+// End of Transmit:
+// There is a lot to fill in for end-of-transmit.
+// On PTT-up, we should read the remaining audio in the microphone
+// device queue first, allow it all to drain out the transmitter, and then
+// un-key the transmitter.
+//
namespace FreeDV {
/// This class implements the main loop of the FreeDV program.