/** compute the absolute value of \a a */
#define PARA_ABS(a) ((a) > 0 ? (a) : -(a))
-/* Loglevels */
+/** debug loglevel, gets really noisy */
#define DEBUG 1
+/** still noisy, but won't fill your disk */
#define INFO 2
+/** normal, but significant event */
#define NOTICE 3
+/** unexpected event that can be handled */
#define WARNING 4
+/** unhandled error condition */
#define ERROR 5
+/** system might be unreliable */
#define CRIT 6
+/** last message before exit */
#define EMERG 7
+/** log messages with lower proirity than that will not be compiled in*/
#define COMPILE_TIME_LOGLEVEL 0
#if DEBUG > COMPILE_TIME_LOGLEVEL
va_end(argp); \
}
-
+/** version text used by various commands if -V switch was given */
#define VERSION_TEXT(prefix) "para_" prefix " " PACKAGE_VERSION "\n" \
"Copyright (C) 2007 Andre Noll\n" \
"This is free software with ABSOLUTELY NO WARRANTY." \
"Written by Andre Noll.\n" \
"Report bugs to <maan@systemlinux.org>.\n"
+/** print out \p VERSION_TEXT and exit if version flag was given */
#define HANDLE_VERSION_FLAG(_prefix, _args_info_struct) \
if (_args_info_struct.version_given) { \
printf("%s", VERSION_TEXT(_prefix)); \
exit(EXIT_SUCCESS); \
}
-
+/** sent by para_server for commands that expect a data file */
#define AWAITING_DATA_MSG "\nAwaiting Data."
+/** sent by para_server if authentication was successful */
#define PROCEED_MSG "\nProceed.\n"
+/** length of the \p PROCEED_MSG string */
#define PROCEED_MSG_LEN strlen(PROCEED_MSG)
+/** sent by para_client to indicate the end of the command line */
#define EOC_MSG "\nEnd of Command."
+/** sent by para_client, followed by the decrypted challenge number */
#define CHALLENGE_RESPONSE_MSG "challenge_response:"
/* gui_common */
/**
* the init function for the playlist selector
*
- * Init all function pointers of \a db
+ * \param afs pointer to the struct to initialize
+ *
+ * Init all function pointers of \a afs
*
* \sa struct audio_file_selector, misc_meta_data::selector_info, mysql.c
* random_selector.c.
*/
-int playlist_selector_init(struct audio_file_selector *db)
+int playlist_selector_init(struct audio_file_selector *afs)
{
int ret;
struct private_pls_data *ppd = NULL;
void *shm = NULL;
- self = db;
- db->cmd_list = playlist_selector_cmds;
- db->get_audio_file_list = pls_get_audio_file_list;
- db->shutdown = pls_shutdown;
- db->post_select = pls_post_select;
- db->update_audio_file = pls_update_audio_file;
+ self = afs;
+ afs->cmd_list = playlist_selector_cmds;
+ afs->get_audio_file_list = pls_get_audio_file_list;
+ afs->shutdown = pls_shutdown;
+ afs->post_select = pls_post_select;
+ afs->update_audio_file = pls_update_audio_file;
ppd = para_calloc(sizeof(struct private_pls_data));
- db->private_data = ppd;
+ afs->private_data = ppd;
ppd->client_mutex = -1;
ppd->server_mutex = -1;
}
/**
- * the init function for the random audio file selector
+ * the init function for the random audio file selector
*
- * Init all function pointers of \a s, init the info text and seed the
- * PRNG.
+ * \param s pointer ro the struct to iniitalize
+ *
+ * Init all function pointers of \a s, init the info text and seed the PRNG.
*
* \sa struct audio_file_selector, misc_meta_data::selector_info, mysql.c
*/
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*/
-/** \file recv.h receiver-relates 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
*/
struct 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.
*/
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
* 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
*/
int (*open)(struct receiver_node *rn);
/**
- *
- *
- * close one instance of the receiver
+ * close this instance of the receiver
*
* It should free all resources associated with given receiver node that were
* allocated during the corresponding open call.
*/
void (*close)(struct receiver_node *rn);
/**
- *
- *
* 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
*/
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
* 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);
#endif
extern struct receiver receivers[];
-extern void (*crypt_function_recv)(unsigned long len, const unsigned char *indata, unsigned char *outdata);
/** \endcond */
/** define an array of all available receivers */
{.name = NULL}};
void *check_receiver_arg(char *ra, int *receiver_num);
-
-
-extern void (*crypt_function_send)(unsigned long len, const unsigned char *indata, unsigned char *outdata);
-