Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement support for building Mumble and Murmur using the MinGW toolchain. #2907

Merged
merged 42 commits into from Mar 17, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
f9cf8da
travis-ci: Use MinGW build envs
mkrautz Mar 5, 2017
2bd9f06
travis-ci: Execute "make check" using Wine
davidebeatrici Mar 5, 2017
2c431b8
murmur_pch.h: Include missing headers
davidebeatrici Jan 27, 2017
ac9c6fc
os_win.cpp: Include <share.h> to fix MinGW build
davidebeatrici Feb 5, 2017
93efd81
os_win.cpp: Include <float.h> to fix MinGW build
davidebeatrici Mar 11, 2017
568915d
os_win.cpp: Include <shobjidl.h> and <shlobj.h> to fix MinGW build
davidebeatrici Mar 11, 2017
f03ef98
DirectSound.h: include <mmsystem.h> to fix MinGW build.
davidebeatrici Mar 6, 2017
882d972
Connection, Server, ServerHandler: Cast "dwFlow" to DWORD pointer to fix
davidebeatrici Mar 5, 2017
756dadc
mumble.pro: Don't use "mt.exe" with MinGW
davidebeatrici Jan 27, 2017
5257dce
mumble_exe.pro: Don't use "mt.exe" with MinGW
davidebeatrici Mar 11, 2017
e50eefc
murmur.pro: Don't use "mt.exe" with MinGW
davidebeatrici Jan 28, 2017
a2526bc
g15helper.pro: Don't use "mt.exe" with MinGW
davidebeatrici Mar 5, 2017
0e460ba
celt-0.11.0-build.pro: Use Unix-like config.h for the MinGW build, in…
davidebeatrici Feb 19, 2017
322e711
celt-0.7.0-build.pro: Use Unix-like config.h for the MinGW build, ins…
davidebeatrici Mar 6, 2017
d84dc1a
speex-build.pro: Use Unix-like config.h for the MinGW build, instead …
davidebeatrici Mar 9, 2017
633f50b
minhook-build.pro: Remove MSVC flags for MinGW
davidebeatrici Feb 7, 2017
0a253c7
mumble_exe.pro: Remove MSVC flags for MinGW
davidebeatrici Feb 3, 2017
886098b
compiler.pri: Use QT_ARCH instead of QMAKE_target.arch with Qt 5
davidebeatrici Jan 31, 2017
67422bc
compiler.pri: Add CONFIG(symbols) support to win32-g++ build.
davidebeatrici Mar 11, 2017
45a40bf
compiler.pri: Define "MINGW_HAS_SECURE_API" to enable secure functions
davidebeatrici Mar 11, 2017
5754a09
compiler.pri: Enable SSE and SSE2 for MinGW
davidebeatrici Feb 23, 2017
b44cc7e
mumble.pri: Create configuration for MinGW
davidebeatrici Mar 10, 2017
d8a165b
openssl.pri: Link against "libssl", "libcrypto" and "gdi32" when targ…
davidebeatrici Feb 4, 2017
6aa30d8
mumble.pro: Link against "ksuser" in the MinGW build
davidebeatrici Mar 10, 2017
78717d3
mumble.pro: split MSVC/MinGW libsndfile linking, due to different ord…
davidebeatrici Feb 7, 2017
06606f7
mumble_exe.pro: Enable UNICODE for MinGW
davidebeatrici Mar 11, 2017
594d010
opus-build: Rename "Win32" folder to "win32"
davidebeatrici Feb 6, 2017
bb5c365
opus-build.pro: Don't use MSVC-specific SSE config options options fo…
davidebeatrici Mar 10, 2017
e3bc8ff
mumble_pch.hpp: Set up Windows macros _WIN32_WINNT and NTDDI_VERSION to
davidebeatrici Mar 11, 2017
5ce8161
mumble_pch.hpp: Include <ws2tcpip.h> to fix MinGW build
davidebeatrici Mar 11, 2017
170f284
src: Fix QoS build with MinGW
davidebeatrici Mar 5, 2017
bad172f
ServerHandler.cpp: Delay load "qwave.dll" only with MSVC
davidebeatrici Mar 5, 2017
d01994d
DirectSound.cpp: Replace "LPDIRECTSOUNDNOTIFY8" with "LPDIRECTSOUNDNO…
davidebeatrici Mar 10, 2017
a913a33
os_win.cpp: Use the "delayHook()" function only with MSVC
davidebeatrici Mar 10, 2017
3f8919e
WASAPI.cpp: Manually define GUIDs
davidebeatrici Mar 11, 2017
e07240e
WASAPI.cpp: Fix cross-initialization problem
davidebeatrici Mar 11, 2017
2c045c8
Timer.cpp: Fix missing Boost symbol for MinGW
davidebeatrici Mar 11, 2017
42134a1
mumble.pro: Fix "avrt" library linkage
davidebeatrici Mar 11, 2017
ad0a3c5
Move Windows GUID initialization to WinGUIDS.cpp file.
davidebeatrici Mar 6, 2017
19c4f9f
Move "getenvQString()" function to a dedicated header and rename it
davidebeatrici Mar 9, 2017
b674036
compiler.pri: Use the Unix block for win32-g++ too
davidebeatrici Mar 12, 2017
cb1c1b4
WinGUIDs.cpp: Fix missing symbol linker error
davidebeatrici Mar 16, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
9 changes: 7 additions & 2 deletions .travis.yml
Expand Up @@ -5,8 +5,13 @@ compiler: gcc

env:
matrix:
- MUMBLE_QT=qt4
- MUMBLE_QT=qt5
- MUMBLE_QT=qt4 MUMBLE_HOST=x86_64-linux-gnu
- MUMBLE_QT=qt5 MUMBLE_HOST=x86_64-linux-gnu
- MUMBLE_QT=qt5 MUMBLE_HOST=i686-w64-mingw32
- MUMBLE_QT=qt5 MUMBLE_HOST=x86_64-w64-mingw32
allow_failures:
- env: MUMBLE_QT=qt5 MUMBLE_HOST=i686-w64-mingw32
- env: MUMBLE_QT=qt5 MUMBLE_HOST=x86_64-w64-mingw32

before_install:
- ./scripts/travis-ci/before_install.bash
Expand Down
20 changes: 14 additions & 6 deletions 3rdparty/celt-0.11.0-build/celt-0.11.0-build.pro
Expand Up @@ -36,13 +36,21 @@ QMAKE_CFLAGS -= -fPIE -pie

win32 {
DEFINES += WIN32 _WIN32
INCLUDEPATH += ../$$BUILDDIR/win32

CONFIG(sse2) {
TARGET_VERSION_EXT = .$${VERSION}.sse2
} else {
QMAKE_CFLAGS_RELEASE -= -arch:SSE
QMAKE_CFLAGS_DEBUG -= -arch:SSE
win32-g++ {
# MinGW uses the config.h for Unix-like systems.
INCLUDEPATH += ../$$BUILDDIR
}

win32-msvc* {
INCLUDEPATH += ../$$BUILDDIR/win32

CONFIG(sse2) {
TARGET_VERSION_EXT = .$${VERSION}.sse2
} else {
QMAKE_CFLAGS_RELEASE -= -arch:SSE
QMAKE_CFLAGS_DEBUG -= -arch:SSE
}
}
}

Expand Down
20 changes: 14 additions & 6 deletions 3rdparty/celt-0.7.0-build/celt-0.7.0-build.pro
Expand Up @@ -43,13 +43,21 @@ QMAKE_CFLAGS -= -fPIE -pie

win32 {
DEFINES += WIN32 _WIN32
INCLUDEPATH += ../$$BUILDDIR/win32

CONFIG(sse2) {
TARGET_VERSION_EXT = .$${VERSION}.sse2
} else {
QMAKE_CFLAGS_RELEASE -= -arch:SSE
QMAKE_CFLAGS_DEBUG -= -arch:SSE
win32-g++ {
# MinGW uses the config.h for Unix-like systems.
INCLUDEPATH += ../$$BUILDDIR
}

win32-msvc* {
INCLUDEPATH += ../$$BUILDDIR/win32

CONFIG(sse2) {
TARGET_VERSION_EXT = .$${VERSION}.sse2
} else {
QMAKE_CFLAGS_RELEASE -= -arch:SSE
QMAKE_CFLAGS_DEBUG -= -arch:SSE
}
}
}

Expand Down
10 changes: 6 additions & 4 deletions 3rdparty/minhook-build/minhook-build.pro
Expand Up @@ -34,11 +34,13 @@ DEFINES += WIN32 _WINDOWS _USRDLL MINHOOK_EXPORTS
CONFIG += warn_off
}

QMAKE_CFLAGS_RELEASE -= -MD
QMAKE_CFLAGS_DEBUG -= -MDd
win32-msvc* {
QMAKE_CFLAGS_RELEASE -= -MD
QMAKE_CFLAGS_DEBUG -= -MDd

QMAKE_CXXFLAGS_RELEASE *= -MT
QMAKE_CXXFLAGS_DEBUG *= -MTd
QMAKE_CXXFLAGS_RELEASE *= -MT
QMAKE_CXXFLAGS_DEBUG *= -MTd
}

SOURCES *= \
src/hde/hde64.c \
Expand Down
2 changes: 1 addition & 1 deletion 3rdparty/opus-build/opus-build.pro
Expand Up @@ -76,7 +76,7 @@ INCLUDEPATH *= \
../$$SOURCEDIR/silk/x86 \
../$$SOURCEDIR/silk/float

win32 {
win32-msvc* {
CONFIG *= opus-sse-sources
CONFIG *= opus-sse2-sources
CONFIG *= opus-sse41-sources
Expand Down
File renamed without changes.
26 changes: 18 additions & 8 deletions 3rdparty/speex-build/speex-build.pro
Expand Up @@ -43,19 +43,29 @@ INCLUDEPATH = ../speex-src/include ../speex-src/libspeex ../speexdsp-src/include
win32 {
INCLUDEPATH += ../speex-build/win32
DEFINES+=WIN32 _WINDOWS _USE_SSE _USE_MATH_DEFINES

win32-g++ {
# MinGW uses the config.h for Unix-like systems.
INCLUDEPATH += ../speex-build
}

win32-msvc* {
INCLUDEPATH += ../speex-build/win32

CONFIG(sse2) {
TARGET = speex.sse2
DEFINES += _USE_SSE2
} else {
QMAKE_CFLAGS_RELEASE -= -arch:SSE
QMAKE_CFLAGS_DEBUG -= -arch:SSE
}
}

SOURCES *= mumble_speex_init.c

CONFIG -= static
CONFIG += shared

CONFIG(sse2) {
TARGET = speex.sse2
DEFINES += _USE_SSE2
} else {
QMAKE_CFLAGS_RELEASE -= -arch:SSE
QMAKE_CFLAGS_DEBUG -= -arch:SSE
}

DEFINES+=USE_SMALLFT

} else {
Expand Down
10 changes: 8 additions & 2 deletions g15helper/g15helper.pro
Expand Up @@ -40,7 +40,10 @@ CONFIG(g15-emulator) {

win32 {
RC_FILE = g15helper.rc
QMAKE_POST_LINK = $$QMAKE_POST_LINK$$escape_expand(\\n\\t)$$quote(mt.exe -nologo -updateresource:$(DESTDIR_TARGET);1 -manifest ../src/mumble/mumble.appcompat.manifest)

win32-msvc* {
QMAKE_POST_LINK = $$QMAKE_POST_LINK$$escape_expand(\\n\\t)$$quote(mt.exe -nologo -updateresource:$(DESTDIR_TARGET);1 -manifest ../src/mumble/mumble.appcompat.manifest)
}
}
} else {
CONFIG -= qt
Expand All @@ -52,7 +55,10 @@ CONFIG(g15-emulator) {
QMAKE_LIBDIR *= "$$G15SDK_PATH/Lib/x86"
INCLUDEPATH *= "$$G15SDK_PATH/Src"
DEFINES *= WIN32
QMAKE_POST_LINK = $$QMAKE_POST_LINK$$escape_expand(\\n\\t)$$quote(mt.exe -nologo -updateresource:$(DESTDIR_TARGET);1 -manifest ../src/mumble/mumble.appcompat.manifest)

win32-msvc* {
QMAKE_POST_LINK = $$QMAKE_POST_LINK$$escape_expand(\\n\\t)$$quote(mt.exe -nologo -updateresource:$(DESTDIR_TARGET);1 -manifest ../src/mumble/mumble.appcompat.manifest)
}

CONFIG(release, debug|release) {
QMAKE_CFLAGS_RELEASE -= -MD
Expand Down
23 changes: 21 additions & 2 deletions qmake/compiler.pri
Expand Up @@ -24,8 +24,27 @@ QMAKE_RESOURCE_FLAGS += -compress 9
# QMAKE_TARGET.arch doesn't suffice any longer, and
# we define MUMBLE_ARCH to be used in its place.
MUMBLE_ARCH = $$QMAKE_TARGET.arch
# When using Qt 5, use QT_ARCH instead of QMAKE_TARGET.
# It also works for cross-builds.
isEqual(QT_MAJOR_VERSION, 5) {
MUMBLE_ARCH = $$QT_ARCH
}

win32-g++ {
DEFINES *= MINGW_HAS_SECURE_API

# Enable SSE
QMAKE_CFLAGS *= -msse -msse2
QMAKE_CXXFLAGS *= -msse -msse2

CONFIG(symbols) {
# Configure build to be able to properly debug release builds
QMAKE_CFLAGS *= -g
QMAKE_CXXFLAGS *= -g
}
}

win32 {
win32-msvc* {
# Define the CONFIG options 'force-x86-toolchain' and
# 'force-x86_64-toolchain'. These can be used to force
# the target of a .pro file to be built for a specific
Expand Down Expand Up @@ -189,7 +208,7 @@ win32 {
}
}

unix {
unix|win32-g++ {
DEFINES *= RESTRICT=__restrict__
QMAKE_CFLAGS *= -fvisibility=hidden
QMAKE_CXXFLAGS *= -fvisibility=hidden
Expand Down
6 changes: 5 additions & 1 deletion qmake/openssl.pri
Expand Up @@ -13,12 +13,16 @@ include(pkgconfig.pri)
# This file can't include compiler.pri: it can
# only be included once per .pro file.

win32 {
win32-msvc* {
INCLUDEPATH *= "$$OPENSSL_PATH/include"
QMAKE_LIBDIR *= "$$OPENSSL_PATH/lib"
LIBS *= -lgdi32 -llibeay32
}

win32-g++ {
LIBS *= -lssl -lcrypto -lgdi32
}

unix {
contains(UNAME, FreeBSD) {
LIBS *= -lcrypto -lssl
Expand Down
44 changes: 42 additions & 2 deletions scripts/travis-ci/before_install.bash
Expand Up @@ -5,14 +5,54 @@
# that can be found in the LICENSE file at the root of the
# Mumble source tree or at <https://www.mumble.info/LICENSE>.

MUMBLE_HOST_DEB=${MUMBLE_HOST/_/-}

if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
if [ "${MUMBLE_QT}" == "qt4" ]; then
if [ "${MUMBLE_QT}" == "qt4" ] && [ "${MUMBLE_HOST}" == "x86_64-linux-gnu" ]; then
sudo apt-get -qq update
sudo apt-get build-dep -qq mumble
elif [ "${MUMBLE_QT}" == "qt5" ]; then
elif [ "${MUMBLE_QT}" == "qt5" ] && [ "${MUMBLE_HOST}" == "x86_64-linux-gnu" ]; then
sudo apt-get -qq update
sudo apt-get build-dep -qq mumble
sudo apt-get install qt5-default qttools5-dev qttools5-dev-tools qtbase5-dev qtbase5-dev-tools qttranslations5-l10n libqt5svg5-dev
elif [ "${MUMBLE_QT}" == "qt5" ] && [ "${MUMBLE_HOST}" == "i686-w64-mingw32" ]; then
sudo dpkg --add-architecture i386
sudo apt-get -qq update
echo "deb http://pkg.mxe.cc/repos/apt/debian jessie main" | sudo tee /etc/apt/sources.list.d/mxeapt.list
sudo apt-key adv --keyserver x-hkp://keys.gnupg.net --recv-keys D43A795B73B16ABE9643FE1AFD8FFF16DB45C6AB
sudo apt-get -qq update
sudo apt-get install \
wine \
mxe-${MUMBLE_HOST_DEB}.static-qtbase \
mxe-${MUMBLE_HOST_DEB}.static-qtsvg \
mxe-${MUMBLE_HOST_DEB}.static-qttools \
mxe-${MUMBLE_HOST_DEB}.static-qttranslations \
mxe-${MUMBLE_HOST_DEB}.static-boost \
mxe-${MUMBLE_HOST_DEB}.static-protobuf \
mxe-${MUMBLE_HOST_DEB}.static-sqlite \
mxe-${MUMBLE_HOST_DEB}.static-flac \
mxe-${MUMBLE_HOST_DEB}.static-ogg \
mxe-${MUMBLE_HOST_DEB}.static-vorbis \
mxe-${MUMBLE_HOST_DEB}.static-libsndfile
elif [ "${MUMBLE_QT}" == "qt5" ] && [ "${MUMBLE_HOST}" == "x86_64-w64-mingw32" ]; then
sudo dpkg --add-architecture i386
sudo apt-get -qq update
echo "deb http://pkg.mxe.cc/repos/apt/debian jessie main" | sudo tee /etc/apt/sources.list.d/mxeapt.list
sudo apt-key adv --keyserver x-hkp://keys.gnupg.net --recv-keys D43A795B73B16ABE9643FE1AFD8FFF16DB45C6AB
sudo apt-get -qq update
sudo apt-get install \
wine \
mxe-${MUMBLE_HOST_DEB}.static-qtbase \
mxe-${MUMBLE_HOST_DEB}.static-qtsvg \
mxe-${MUMBLE_HOST_DEB}.static-qttools \
mxe-${MUMBLE_HOST_DEB}.static-qttranslations \
mxe-${MUMBLE_HOST_DEB}.static-boost \
mxe-${MUMBLE_HOST_DEB}.static-protobuf \
mxe-${MUMBLE_HOST_DEB}.static-sqlite \
mxe-${MUMBLE_HOST_DEB}.static-flac \
mxe-${MUMBLE_HOST_DEB}.static-ogg \
mxe-${MUMBLE_HOST_DEB}.static-vorbis \
mxe-${MUMBLE_HOST_DEB}.static-libsndfile
else
exit 1
fi
Expand Down
22 changes: 20 additions & 2 deletions scripts/travis-ci/script.bash
Expand Up @@ -6,10 +6,28 @@
# Mumble source tree or at <https://www.mumble.info/LICENSE>.

if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
if [ "${MUMBLE_QT}" == "qt4" ]; then
if [ "${MUMBLE_QT}" == "qt4" ] && [ "${MUMBLE_HOST}" == "x86_64-linux-gnu" ]; then
qmake-qt4 CONFIG+="release tests g15-emulator qt4-legacy-compat" -recursive && make -j2 && make check
elif [ "${MUMBLE_QT}" == "qt5" ]; then
elif [ "${MUMBLE_QT}" == "qt5" ] && [ "${MUMBLE_HOST}" == "x86_64-linux-gnu" ]; then
qmake CONFIG+="release tests g15-emulator" -recursive && make -j2 && make check
elif [ "${MUMBLE_QT}" == "qt5" ] && [ "${MUMBLE_HOST}" == "i686-w64-mingw32" ]; then
wget http://www.steinberg.net/sdk_downloads/asiosdk2.3.zip -P ../
unzip ../asiosdk2.3.zip -d ../
mv ../ASIOSDK2.3 3rdparty/asio
PATH=$PATH:/usr/lib/mxe/usr/bin
export MUMBLE_PROTOC=/usr/lib/mxe/usr/x86_64-unknown-linux-gnu/bin/protoc
${MUMBLE_HOST}.static-qmake-qt5 -recursive -Wall CONFIG+="release tests warnings-as-errors winpaths_custom g15-emulator no-overlay no-bonjour no-elevation no-ice"
make -j2
make check TESTRUNNER="wine"
elif [ "${MUMBLE_QT}" == "qt5" ] && [ "${MUMBLE_HOST}" == "x86_64-w64-mingw32" ]; then
wget http://www.steinberg.net/sdk_downloads/asiosdk2.3.zip -P ../
unzip ../asiosdk2.3.zip -d ../
mv ../ASIOSDK2.3 3rdparty/asio
PATH=$PATH:/usr/lib/mxe/usr/bin
export MUMBLE_PROTOC=/usr/lib/mxe/usr/x86_64-unknown-linux-gnu/bin/protoc
${MUMBLE_HOST}.static-qmake-qt5 -recursive -Wall CONFIG+="release tests warnings-as-errors winpaths_custom g15-emulator no-overlay no-bonjour no-elevation no-ice"
make -j2
make check TESTRUNNER="wine"
else
exit 1
fi
Expand Down
2 changes: 1 addition & 1 deletion src/Connection.cpp
Expand Up @@ -62,7 +62,7 @@ void Connection::setToS() {
return;

dwFlow = 0;
if (! QOSAddSocketToFlow(hQoS, qtsSocket->socketDescriptor(), NULL, QOSTrafficTypeAudioVideo, QOS_NON_ADAPTIVE_FLOW, &dwFlow))
if (! QOSAddSocketToFlow(hQoS, qtsSocket->socketDescriptor(), NULL, QOSTrafficTypeAudioVideo, QOS_NON_ADAPTIVE_FLOW, reinterpret_cast<PQOS_FLOWID>(&dwFlow)))
qWarning("Connection: Failed to add flow to QOS");
#elif defined(Q_OS_UNIX)
int val = 0xa0;
Expand Down
2 changes: 1 addition & 1 deletion src/Timer.cpp
Expand Up @@ -18,7 +18,7 @@
// https://github.com/boostorg/system/blob/boost-1.56.0/include/boost/system/error_code.hpp#L514-L516
// vs.
// https://github.com/boostorg/system/blob/boost-1.55.0/include/boost/system/error_code.hpp#L515-L517
#if BOOST_VERSION >= 105600
#if BOOST_VERSION >= 105600 && !defined(__MINGW32__)
# define USE_BOOST_CHRONO
#endif

Expand Down
7 changes: 6 additions & 1 deletion src/mumble.pri
Expand Up @@ -36,7 +36,7 @@ CONFIG(packaged) {
# Add OpenSSL dependency
include(../qmake/openssl.pri)

win32 {
win32-msvc* {
INCLUDEPATH *= "$$PROTOBUF_PATH/vsprojects/include" "$$PROTOBUF_PATH/src" protobuf
CONFIG(debug, debug|release) {
QMAKE_LIBDIR *= "$$PROTOBUF_PATH/vsprojects/Debug"
Expand All @@ -48,6 +48,11 @@ win32 {
LIBS *= -ldelayimp -lQwave -delayload:Qwave.DLL
}

win32-g++ {
LIBS *= -lprotobuf -lcrypt32 -lws2_32
LIBS *= -ldelayimp -lqwave -delayload:qwave.dll
}

unix {
CONFIG(static) {
PKG_CONFIG = pkg-config --static
Expand Down
10 changes: 5 additions & 5 deletions src/mumble/CrashReporter.cpp
Expand Up @@ -10,6 +10,7 @@
#include "Global.h"
#include "NetworkConfig.h"
#include "OSInfo.h"
#include "EnvUtils.h"

CrashReporter::CrashReporter(QWidget *p) : QDialog(p) {
setWindowTitle(tr("Mumble Crash Report"));
Expand Down Expand Up @@ -146,11 +147,10 @@ void CrashReporter::run() {
qsl << qtf.fileName();

QString app = QLatin1String("dxdiag.exe");
wchar_t *sr = NULL;
size_t srsize = 0;
if (_wdupenv_s(&sr, &srsize, L"SystemRoot") == 0) {
app = QDir::fromNativeSeparators(QString::fromWCharArray(sr)) + QLatin1String("/System32/dxdiag.exe");
free(sr);
QString systemRoot = EnvUtils::getenv(QLatin1String("SystemRoot"));

if (systemRoot.count() > 0) {
app = QDir::fromNativeSeparators(systemRoot + QLatin1String("/System32/dxdiag.exe"));
}

qp.start(app, qsl);
Expand Down
4 changes: 2 additions & 2 deletions src/mumble/DirectSound.cpp
Expand Up @@ -201,7 +201,7 @@ void DXAudioOutput::run() {
LPDIRECTSOUND8 pDS = NULL;
LPDIRECTSOUNDBUFFER pDSBPrimary = NULL;
LPDIRECTSOUNDBUFFER pDSBOutput = NULL;
LPDIRECTSOUNDNOTIFY8 pDSNotify = NULL;
LPDIRECTSOUNDNOTIFY pDSNotify = NULL;

int iLastwriteblock;
LPVOID aptr1, aptr2;
Expand Down Expand Up @@ -457,7 +457,7 @@ DXAudioInput::~DXAudioInput() {
void DXAudioInput::run() {
LPDIRECTSOUNDCAPTURE8 pDSCapture;
LPDIRECTSOUNDCAPTUREBUFFER pDSCaptureBuffer;
LPDIRECTSOUNDNOTIFY8 pDSNotify;
LPDIRECTSOUNDNOTIFY pDSNotify;

DWORD dwBufferSize;
bool bOk;
Expand Down
1 change: 1 addition & 0 deletions src/mumble/DirectSound.h
Expand Up @@ -10,6 +10,7 @@
#include "AudioOutput.h"
#define DIRECTSOUND_VERSION 0x1000

#include <mmsystem.h>
#include <dsound.h>
#include <ks.h>
#include <ksmedia.h>
Expand Down