projects
/
paraslash.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move chunk_queue stuff to own files chunk_queue.[ch].
[paraslash.git]
/
send.h
diff --git
a/send.h
b/send.h
index 75c13731bb1af9223a0a32fdc8c85792f04f3d50..76a35123c8b5b414b45eec935a525e8d906ae22a 100644
(file)
--- 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.
*/
* 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
/** 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)
*/
*
* \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
*
/**
* 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.
*/
* 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
*
/**
* terminate all connected clients
*
@@
-85,9
+84,16
@@
struct sender {
int (*client_cmds[NUM_SENDER_CMDS])(struct sender_command_data*);
};
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;
{
struct timeval tv = {0, 0};
fd_set wfds;
@@
-95,11
+101,10
@@
static inline int _write_ok(int fd)
again:
FD_ZERO(&wfds);
FD_SET(fd, &wfds);
again:
FD_ZERO(&wfds);
FD_SET(fd, &wfds);
+ tv.tv_sec = 0;
+ tv.tv_usec = 0;
ret = select(fd + 1, NULL, &wfds, NULL, &tv);
if (ret < 0 && errno == EINTR)
goto again;
ret = select(fd + 1, NULL, &wfds, NULL, &tv);
if (ret < 0 && errno == EINTR)
goto again;
- if (ret < 0)
- ret = 0;
return ret;
}
return ret;
}
-