diff --git a/src/Makefile.am b/src/Makefile.am index 14c59566f..f45821dda 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -842,10 +842,6 @@ libpulsecommon_@PA_MAJORMINOR@_la_CFLAGS += $(LIBASYNCNS_CFLAGS) libpulsecommon_@PA_MAJORMINOR@_la_LIBADD += $(LIBASYNCNS_LIBS) endif -if OS_IS_WIN32 -libpulsecommon_@PA_MAJORMINOR@_la_SOURCES += pulsecore/dllmain.c -endif - if HAVE_DBUS libpulsecommon_@PA_MAJORMINOR@_la_SOURCES += \ pulsecore/dbus-util.c pulsecore/dbus-util.h \ diff --git a/src/pulse/mainloop.c b/src/pulse/mainloop.c index 355935e09..90112f589 100644 --- a/src/pulse/mainloop.c +++ b/src/pulse/mainloop.c @@ -32,6 +32,10 @@ #include #endif +#ifdef OS_IS_WIN32 +#include +#endif + #include #include #include @@ -450,6 +454,17 @@ static const pa_mainloop_api vtable = { pa_mainloop *pa_mainloop_new(void) { pa_mainloop *m; +#ifdef OS_IS_WIN32 + { + int r; + WSADATA data; + if ((r = WSAStartup(MAKEWORD(2, 0), &data))) { + pa_log_error("ERROR: cannot initialize Winsock2 (%d)", r); + return NULL; + } + } +#endif + pa_init_i18n(); m = pa_xnew0(pa_mainloop, 1); @@ -579,6 +594,12 @@ void pa_mainloop_free(pa_mainloop *m) { pa_close_pipe(m->wakeup_pipe); pa_xfree(m); + +#ifdef OS_IS_WIN32 + { + WSACleanup(); + } +#endif } static void scan_dead(pa_mainloop *m) { diff --git a/src/pulsecore/dllmain.c b/src/pulsecore/dllmain.c deleted file mode 100644 index e594ae5ac..000000000 --- a/src/pulsecore/dllmain.c +++ /dev/null @@ -1,53 +0,0 @@ -/*** - This file is part of PulseAudio. - - Copyright 2006 Pierre Ossman for Cendio AB - - PulseAudio is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published - by the Free Software Foundation; either version 2.1 of the License, - or (at your option) any later version. - - PulseAudio is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with PulseAudio; if not, see . -***/ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#ifdef OS_IS_WIN32 - -#include -#include - -#include -#include - -extern char *pa_win32_get_toplevel(HANDLE handle); - -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { - WSADATA data; - - switch (fdwReason) { - - case DLL_PROCESS_ATTACH: - if (!pa_win32_get_toplevel(hinstDLL)) - return FALSE; - WSAStartup(MAKEWORD(2, 0), &data); - break; - - case DLL_PROCESS_DETACH: - WSACleanup(); - break; - - } - return TRUE; -} - -#endif /* OS_IS_WIN32 */