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

Reply via email to