* Licensed under the GPL v2. For licencing details see COPYING.
*/
-/** \file recv.h receiver-related structures and exported symbols of recv_common.c */
+/** \file recv.h Receiver-related structures and exported symbols of recv_common.c. */
/**
- * describes one instance of a receiver
+ * Describes one instance of a receiver.
*/
struct receiver_node {
- /** points to the corresponding receiver */
+ /** Points to the corresponding receiver. */
struct receiver *receiver;
- /** the output buffer */
+ /** The output buffer. */
char *buf;
- /** the amount of bytes in \a buf */
+ /** The amount of bytes in \a buf. */
size_t loaded;
- /** receiver-specific data */
+ /** Receiver-specific data. */
void *private_data;
- /** Set to non-zero error value on errors or on end of file. */
- int error;
/** Pointer to the error member of the consumer. */
int *output_error;
- /** pointer to the configuration data for this instance */
+ /** Pointer to the configuration data for this instance. */
void *conf;
- /** the task associated with this instance */
+ /** The task associated with this instance. */
struct task task;
};
/**
- * describes one supported paraslash receiver
+ * Describes one supported paraslash receiver.
*
* \sa http_recv.c, ortp_recv.c
*/
struct receiver {
-/**
- * the name of the receiver
- */
+ /**
+ * The name of the receiver.
+ */
const char *name;
-/**
- * the receiver init function
- *
- * It must fill in all other function pointers and is assumed to succeed.
- *
- * \sa http_recv_init ortp_recv_init
- */
+ /**
+ * The receiver init function.
+ *
+ * It must fill in all other function pointers and is assumed to succeed.
+ *
+ * \sa http_recv_init ortp_recv_init.
+ */
void (*init)(struct receiver *r);
-/**
- * the command line parser of the receiver
- *
- * It should check whether the command line options given by \a argc and \a
- * argv are valid. On success, it should return a pointer to the
- * receiver-specific configuration data determined by \a argc and \a argv.
- * Note that this might be called more than once with different values of
- * \a argc and \a argv.
- */
- void * (*parse_config)(int argc, char **argv);
-/**
- * open one instance of the receiver
- *
- * This should allocate the output buffer of \a rn. and may also perform any
- * other work necessary for retrieving the stream according to the
- * configuration stored in the \a conf member of \a rn which is guaranteed to
- * point to valid configuration data (as previously obtained from the config
- * parser).
- *
- * \sa receiver_node::conf, receiver_node::buf
- */
+ /**
+ * The command line parser of the receiver.
+ *
+ * It should check whether the command line options given by \a argc and \a
+ * argv are valid. On success, it should return a pointer to the
+ * receiver-specific configuration data determined by \a argc and \a argv.
+ * Note that this might be called more than once with different values of
+ * \a argc and \a argv.
+ */
+ void *(*parse_config)(int argc, char **argv);
+ /**
+ * Open one instance of the receiver.
+ *
+ * This should allocate the output buffer of \a rn. and may also
+ * perform any other work necessary for retrieving the stream according
+ * to the configuration stored in the \a conf member of \a rn which is
+ * guaranteed to point to valid configuration data (as previously
+ * obtained from the config parser).
+ *
+ * \sa receiver_node::conf, receiver_node::buf.
+ */
int (*open)(struct receiver_node *rn);
-/**
- * close this instance of the receiver
- *
- * It should free all resources associated with given receiver node that were
- * allocated during the corresponding open call.
- *
- * \sa receiver_node
- */
+ /**
+ * Close this instance of the receiver.
+ *
+ * It should free all resources associated with given receiver node
+ * that were allocated during the corresponding open call.
+ *
+ * \sa receiver_node.
+ */
void (*close)(struct receiver_node *rn);
-/**
- * deactivate the receiver
- *
- * Clean up what init has allocated.
- */
+ /**
+ * Deactivate the receiver.
+ *
+ * Clean up what init has allocated.
+ */
void (*shutdown)(void);
-/**
- * add file descriptors to fd_sets and compute timeout for select(2)
- *
- * The pre_select function gets called from the driving application before
- * entering its select loop. The receiver may use this hook to add any file
- * descriptors to the sets of file descriptors given by \a s.
- *
- * \sa select(2), time.c struct task, struct sched
- */
+ /**
+ * Add file descriptors to fd_sets and compute timeout for select(2).
+ *
+ * The pre_select function gets called from the driving application
+ * before entering its select loop. The receiver may use this hook to
+ * add any file descriptors to the sets of file descriptors given by \a
+ * s.
+ *
+ * \sa select(2), time.c struct task, struct sched.
+ */
void (*pre_select)(struct sched *s, struct task *t);
-/**
- * evaluate the result from select()
- *
- * This hook gets called after the call to select(). It should check all file
- * descriptors which were added to any of the the fd sets during the previous
- * call to pre_select. According to the result, it may then use any
- * non-blocking I/O to establish a connection or to receive the audio data.
- *
- * \sa select(2), struct receiver
- */
+ /**
+ * Evaluate the result from select().
+ *
+ * This hook gets called after the call to select(). It should check
+ * all file descriptors which were added to any of the the fd sets
+ * during the previous call to pre_select. According to the result, it
+ * may then use any non-blocking I/O to establish a connection or to
+ * receive the audio data.
+ *
+ * \sa select(2), struct receiver.
+ */
void (*post_select)(struct sched *s, struct task *t);
};
extern struct receiver receivers[];
/** \endcond */
-/** define an array of all available receivers */
+/** Define an array of all available receivers. */
#define DEFINE_RECEIVER_ARRAY struct receiver receivers[] = { \
HTTP_RECEIVER \
DCCP_RECEIVER \