mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-05 13:29:57 -05:00
Port to Windows. This is mostly glue layers for the poor POSIX support
on Windows. A few notes * Only sockets behave somewhat like file descriptors in UNIX. * There are no fixed paths. Closes thing is environment variables that point to system directories. We also figure out where the binary/dll is located and use that as configuration directory. git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/ossman@418 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
2f74bb9d43
commit
19d9fcbda8
22 changed files with 712 additions and 58 deletions
|
|
@ -38,6 +38,10 @@
|
|||
#include "poll.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_WINSOCK2_H
|
||||
#include <winsock2.h>
|
||||
#endif
|
||||
|
||||
#include "mainloop.h"
|
||||
#include "util.h"
|
||||
#include "idxset.h"
|
||||
|
|
@ -108,6 +112,26 @@ static struct pa_io_event* mainloop_io_new(struct pa_mainloop_api*a, int fd, enu
|
|||
e->destroy_callback = NULL;
|
||||
e->pollfd = NULL;
|
||||
|
||||
#ifdef OS_IS_WIN32
|
||||
{
|
||||
fd_set xset;
|
||||
struct timeval tv;
|
||||
|
||||
tv.tv_sec = 0;
|
||||
tv.tv_usec = 0;
|
||||
|
||||
FD_ZERO (&xset);
|
||||
FD_SET (fd, &xset);
|
||||
|
||||
if ((select((SELECT_TYPE_ARG1) fd, NULL, NULL, SELECT_TYPE_ARG234 &xset,
|
||||
SELECT_TYPE_ARG5 &tv) == -1) &&
|
||||
(WSAGetLastError() == WSAENOTSOCK)) {
|
||||
pa_log_warn(__FILE__": WARNING: cannot monitor non-socket file descriptors.\n");
|
||||
e->dead = 1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
pa_idxset_put(m->io_events, e, NULL);
|
||||
m->rebuild_pollfds = 1;
|
||||
return e;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue