X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=send.h;h=bf1ca111f7f88cf300f0c18f9c1c93930549ea99;hp=75c13731bb1af9223a0a32fdc8c85792f04f3d50;hb=1b39496da38155b84636c0f7cee7f7dbbea33632;hpb=c9f109a9e7f2d6116b7906a852afc339c858c275 diff --git a/send.h b/send.h index 75c13731..bf1ca111 100644 --- a/send.h +++ b/send.h @@ -45,8 +45,8 @@ struct sender { * command. Of course, \a buf is a pointer to the chunk of data which * should be sent, and \a len is the length of this buffer. */ - void (*send)(struct audio_format *af, long unsigned current_chunk, - long unsigned chunks_sent, const char *buf, size_t len); + void (*send)(long unsigned current_chunk, long unsigned chunks_sent, + const char *buf, size_t len); /** add file descriptors to fd_sets * * The pre_select function of each supported sender is called just before @@ -58,8 +58,7 @@ struct sender { * * \sa select(2) */ - void (*pre_select)(struct audio_format *af, int *max_fileno, fd_set *rfds, - fd_set *wfds); + void (*pre_select)(int *max_fileno, fd_set *rfds, fd_set *wfds); /** * handle the file descriptors which are ready for I/O * @@ -67,7 +66,7 @@ struct sender { * set, this is the hook to check the result and do any I/O on those descriptors * which are ready for reading/writing. */ - void (*post_select)(struct audio_format *af, fd_set *rfds, fd_set *wfds); + void (*post_select)(fd_set *rfds, fd_set *wfds); /** * terminate all connected clients * @@ -85,9 +84,16 @@ struct sender { int (*client_cmds[NUM_SENDER_CMDS])(struct sender_command_data*); }; +/** + * check a file descriptor for writability + * + * \param fd the file desctiptor + * + * \return positive if fd is ready for writing, zero if it isn't, negative if + * an error occured. + */ - -static inline int _write_ok(int fd) +static inline int write_ok(int fd) { struct timeval tv = {0, 0}; fd_set wfds; @@ -98,8 +104,5 @@ again: ret = select(fd + 1, NULL, &wfds, NULL, &tv); if (ret < 0 && errno == EINTR) goto again; - if (ret < 0) - ret = 0; return ret; } -