Update of /cvsroot/alsa/alsa-oss/oss-redir In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12689/oss-redir
Modified Files: oss-redir.c oss-redir.h Log Message: - separated libaoss to libaoss (LD_PRELOAD wrapper) and libalsatoss (user space emulation) - some fixes in oss-redir library - note that code is not tested at all, so I'm 100% that it will fail :-( Index: oss-redir.c =================================================================== RCS file: /cvsroot/alsa/alsa-oss/oss-redir/oss-redir.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- oss-redir.c 9 Feb 2004 14:31:13 -0000 1.3 +++ oss-redir.c 10 Feb 2004 13:39:55 -0000 1.4 @@ -49,8 +49,8 @@ void * (*oss_pcm_mmap)(void *start, size_t length, int prot, int flags, int fd, off_t offset); int (*oss_pcm_munmap)(void *start, size_t length); int (*oss_pcm_ioctl)(int fd, unsigned long int request, ...); -int (*oss_pcm_select_prepare)(int fd, fd_set *readfds, fd_set *writefds); -int (*oss_pcm_select_result)(int fd, fd_set *readfds, fd_set *writefds); +int (*oss_pcm_select_prepare)(int fd, fd_set *readfds, fd_set *writefds, fd_set *exceptfds); +int (*oss_pcm_select_result)(int fd, fd_set *readfds, fd_set *writefds, fd_set *exceptfds); int (*oss_pcm_poll_fds)(int fd); int (*oss_pcm_poll_prepare)(int fd, struct pollfd *ufds); int (*oss_pcm_poll_result)(int fd, struct pollfd *ufds); @@ -74,18 +74,22 @@ return 0; } -static int native_pcm_select_prepare(int fd, fd_set *readfds, fd_set *writefds) +static int native_pcm_select_prepare(int fd, fd_set *readfds, fd_set *writefds, fd_set *exceptfds) { if (fd < 0) return -EINVAL; - if (readfds) + if (readfds) { FD_SET(fd, readfds); - if (writefds) + FD_SET(fd, exceptfds); + } + if (writefds) { FD_SET(fd, writefds); + FD_SET(fd, exceptfds); + } return 0; } -static int native_pcm_select_result(int fd, fd_set *readfds, fd_set *writefds) +static int native_pcm_select_result(int fd, fd_set *readfds, fd_set *writefds, fd_set *exceptfds) { int result = 0; @@ -95,6 +99,8 @@ result |= OSS_WAIT_EVENT_READ; if (writefds && FD_ISSET(fd, writefds)) result |= OSS_WAIT_EVENT_WRITE; + if (exceptfds && FD_ISSET(fd, exceptfds)) + result |= OSS_WAIT_EVENT_ERROR; return result; } @@ -124,6 +130,8 @@ result |= OSS_WAIT_EVENT_READ; if (ufds->events & POLLOUT) result |= OSS_WAIT_EVENT_WRITE; + if (ufds->events & POLLERR) + result |= OSS_WAIT_EVENT_ERROR; return result; } Index: oss-redir.h =================================================================== RCS file: /cvsroot/alsa/alsa-oss/oss-redir/oss-redir.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- oss-redir.h 9 Feb 2004 14:31:13 -0000 1.3 +++ oss-redir.h 10 Feb 2004 13:39:55 -0000 1.4 @@ -27,6 +27,7 @@ #define OSS_WAIT_EVENT_READ (1<<0) #define OSS_WAIT_EVENT_WRITE (1<<1) +#define OSS_WAIT_EVENT_ERROR (1<<2) extern int oss_pcm_open(const char *pathname, int flags, ...); extern int oss_pcm_close(int fd); @@ -36,8 +37,8 @@ extern void * (*oss_pcm_mmap)(void *start, size_t length, int prot, int flags, int fd, off_t offset); extern int (*oss_pcm_munmap)(void *start, size_t length); extern int (*oss_pcm_ioctl)(int fd, unsigned long int request, ...); -extern int (*oss_pcm_select_prepare)(int fd, fd_set *readfds, fd_set *writefds); -extern int (*oss_pcm_select_result)(int fd, fd_set *readfds, fd_set *writefds); +extern int (*oss_pcm_select_prepare)(int fd, fd_set *readfds, fd_set *writefds, fd_set *exceptfds); +extern int (*oss_pcm_select_result)(int fd, fd_set *readfds, fd_set *writefds, fd_set *exceptfds); extern int (*oss_pcm_poll_fds)(int fd); extern int (*oss_pcm_poll_prepare)(int fd, struct pollfd *ufds); extern int (*oss_pcm_poll_result)(int fd, struct pollfd *ufds); ------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ Alsa-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-cvslog