/* Copyright (C) 2005 Andre Noll <maan@tuebingen.mpg.de>, see file COPYING. */
-/** \file audioc.c The client program used to connect to para_audiod. */
+/** \file audioc.c The client program used to connect to para_audiod.
+ *
+ * The code if this file is conceptually similar to \ref client.c because
+ * para_audioc(1) also operates in one of three possible modes: completion
+ * interactive or non-interactive mode. Like the client code it calls \ref
+ * i9e_open() of \ref interactive.c to create an interactive session. However,
+ * the code to connect to the server (para_audiod(1)) is not shared with
+ * any other executable, so it is part of this file.
+ */
+
+/* \cond */
#include <netinet/in.h>
#include <sys/socket.h>
#include "audiod_cmd.lsg.h"
#include "audioc.lsg.h"
-
#include "para.h"
#include "error.h"
#include "lsu.h"
#include "string.h"
#include "fd.h"
-/** Array of error strings. */
DEFINE_PARA_ERRLIST;
static char *socket_name;
exit(EXIT_SUCCESS);
}
+/** \endcond */
+
/**
* The client program to connect to para_audiod.
*
- * \param argc Usual argument count.
- * \param argv Usual argument vector.
+ * \param argc Options are defined in the audioc lopsub suite.
+ * \param argv The audioc suite defines no subcommands.
*
* It connects to the "well-known" local socket to communicate with
* para_audiod. Authentication is performed by sending a ucred buffer
* containing the user id to the local socket.
*
- * Any data received from the socket is written to stdout.
+ * Any data received from the socket is written to stdout, employing the
+ * buffer tree subsystem.
*
* \return EXIT_SUCCESS or EXIT_FAILURE.
*
- * \sa \ref send_cred_buffer(), para_audioc(1), para_audiod(1).
+ * \sa \ref send_cred_buffer(), \ref stdout.c, para_audioc(1), para_audiod(1).
*/
int main(int argc, char *argv[])
{
<h2> Source code documentation </h2>
-<p> The public functions and variables of the paraslash source
-code are documented in the <a href="doxygen/html/files.html">API
-Reference</a>. Suggested entry points: </p>
+<p> All public functions and variables are documented, but static functions,
+structures and macros defined in .c files are not. Most source files contain
+additional comments not shown here which describe particular implementation
+details. </p>
-<ul>
- <li> Executables:
- [<a href="doxygen/html/server_8c.html">para_server</a>]
- [<a href="doxygen/html/audiod_8c.html">para_audiod</a>]
- [<a href="doxygen/html/client_8c.html">para_client</a>]
- [<a href="doxygen/html/audioc_8c.html">para_audioc</a>]
- [<a href="doxygen/html/afh_8c.html">para_afh</a>]
- [<a href="doxygen/html/recv_8c.html">para_recv</a>]
- [<a href="doxygen/html/filter_8c.html">para_filter</a>]
- [<a href="doxygen/html/write_8c.html">para_write</a>]
- [<a href="doxygen/html/gui_8c.html">para_gui</a>]
- [<a href="doxygen/html/mixer_8c.html">para_mixer</a>]
- [<a href="doxygen/html/play_8c.html">para_play</a>]
- </li> <li> Subsystems:
- [<a href="doxygen/html/sched_8h.html">Scheduler</a>]
- [<a href="doxygen/html/buffer__tree_8h.html">Buffer Trees</a>]
- [<a href="doxygen/html/afh_8h.html">Audio Format Handlers</a>]
- [<a href="doxygen/html/afs_8h.html">Audio File Selector</a>]
- [<a href="doxygen/html/vss_8h.html">Virtual Streaming System</a>]
- [<a href="doxygen/html/send_8h.html">Senders</a>]
- [<a href="doxygen/html/recv_8h.html">Receivers</a>]
- [<a href="doxygen/html/filter_8h.html">Filters</a>]
- [<a href="doxygen/html/write_8h.html">Writers</a>]
- [<a href="doxygen/html/interactive_8h.html">Interactive Sessions</a>]
- [<a href="doxygen/html/crypt_8h.html">Crypto API</a>]
- </li>
-</ul>
+<h3> Subsystems </h3>
+
+<p> To get started in a particular subsystem, follow one of the links
+below. Each link points to a header file which defines the public API of a
+paraslash subsystem. This selection is not exhaustive, though. </p>
+
+<p>
+ [<a href="doxygen/html/sched_8h.html">Scheduler</a>]
+ [<a href="doxygen/html/buffer__tree_8h.html">Buffer Trees</a>]
+ [<a href="doxygen/html/afh_8h.html">Audio Format Handlers</a>]
+ [<a href="doxygen/html/vss_8h.html">Virtual Streaming System</a>]
+ [<a href="doxygen/html/afs_8h.html">Audio File Selector</a>]
+ [<a href="doxygen/html/send_8h.html">Senders</a>]
+ [<a href="doxygen/html/recv_8h.html">Receivers</a>]
+ [<a href="doxygen/html/filter_8h.html">Filters</a>]
+ [<a href="doxygen/html/write_8h.html">Writers</a>]
+ [<a href="doxygen/html/interactive_8h.html">Interactive Sessions</a>]
+ [<a href="doxygen/html/crypt_8h.html">Crypto API</a>]
+</p>
+
+<h3> Executables </h3>
+
+<p> The detailed description of each executable usually mentions relevant
+other object files which are linked into the executable. The comment of the
+main function talks about public functions defined elsewhere and called from
+this file. The comment also describes which tasks are created and registered
+to the paraslash scheduler. </p>
+
+<p>
+ [<a href="doxygen/html/server_8c.html">para_server</a>]
+ [<a href="doxygen/html/audiod_8c.html">para_audiod</a>]
+ [<a href="doxygen/html/client_8c.html">para_client</a>]
+ [<a href="doxygen/html/audioc_8c.html">para_audioc</a>]
+ [<a href="doxygen/html/afh_8c.html">para_afh</a>]
+ [<a href="doxygen/html/recv_8c.html">para_recv</a>]
+ [<a href="doxygen/html/filter_8c.html">para_filter</a>]
+ [<a href="doxygen/html/write_8c.html">para_write</a>]
+ [<a href="doxygen/html/gui_8c.html">para_gui</a>]
+ [<a href="doxygen/html/mixer_8c.html">para_mixer</a>]
+ [<a href="doxygen/html/play_8c.html">para_play</a>]
+</p>
+
+<h3> Indices </h3>
+
+<p>
+ [<a href="doxygen/html/classes.html">Data Structure Index</a>]
+ [<a href="doxygen/html/globals_enum.html">Enumerations</a>]
+ [<a href="doxygen/html/files.html">File List</a>]
+ [<a href="doxygen/html/globals_vars.html">Global Variables</a>]
+</p>