From: Andre Noll Date: Sat, 19 Dec 2009 20:04:56 +0000 (+0100) Subject: Add more documentation. X-Git-Tag: v0.4.1~5^2~11 X-Git-Url: http://git.tue.mpg.de/?a=commitdiff_plain;h=0640d9e42143dedcfffbd496e34431083ba5c917;p=paraslash.git Add more documentation. This adds documentation of load_afd(), aft_init(), enum play_mode, and enum afs_server_code. --- diff --git a/afs.h b/afs.h index aeaf8fb8..b89ba618 100644 --- a/afs.h +++ b/afs.h @@ -97,7 +97,13 @@ struct afs_table { void *data); }; -enum play_mode {PLAY_MODE_MOOD, PLAY_MODE_PLAYLIST}; +/** How audio files are selected by afs. */ +enum play_mode { + /** Admissible files are determined by a mood definition. */ + PLAY_MODE_MOOD, + /** All listed files are admissible. */ + PLAY_MODE_PLAYLIST, +}; /** * Data about one audio file. @@ -125,10 +131,25 @@ struct audio_file_data { struct afh_info afhi; }; +/** + * Codes used for communication between the server and the afs process. + * + * Before forking the afs child, para_server creates a bidirectional pipe + * through which both processes communicate. Usually para_server requests a new + * audio in order to start streaming or when the end of the current audio file + * has been reached. The afs process responds to such a request by sending + * back an eight byte buffer. The first four bytes is the uint32_t + * representation of the code, usually \p NEXT_AUDIO_FILE if an admissible + * audio file was found, successfully opened and verified. The other four bytes + * represent the shared memory id of the shared memory area that contains + * details about the audio file to be streamed next. The open file descriptor + * of that file is also passed from afs to para_server through the same pipe. + */ enum afs_server_code { + /** An audio file was successfully opened. */ NEXT_AUDIO_FILE, + /** No admissible audio file was found. */ NO_ADMISSIBLE_FILES, - AFD_CHANGE }; /** Flags passed to for_each_matching_row(). */ diff --git a/aft.c b/aft.c index 39e94a94..10337349 100644 --- a/aft.c +++ b/aft.c @@ -652,6 +652,18 @@ err: return ret; } +/** + * Extract a afd stored in a shared memory area. + * + * Attach the shared memory area given by \a shmid, load the audio file data + * stored therein and detach the area afterwards. Called by vss, after + * receiving a positive response to the request for the next audio file. + + + * \param shmid The identifier of the shared memory area containing the afd. + * \param afd Result pointer. + * + * \return Standard. + */ int load_afd(int shmid, struct audio_file_data *afd) { void *shm_afd; @@ -2610,6 +2622,11 @@ static int aft_event_handler(enum afs_events event, struct para_buffer *pb, } } +/** + * Initialize the audio file table. + * + * \param t Pointer to the structure to be initialized. + */ void aft_init(struct afs_table *t) { t->open = aft_open;