From a5651973d511405b4484528dada750abac409f25 Mon Sep 17 00:00:00 2001 From: Mikkel Krautz Date: Sat, 7 Feb 2015 16:56:53 +0100 Subject: [PATCH] Add setting 'asio/enable' to allow users to disable ASIO via the Mumble configuration. --- src/mumble/ASIOInput.cpp | 5 +++++ src/mumble/Settings.cpp | 4 ++++ src/mumble/Settings.h | 3 +++ 3 files changed, 12 insertions(+) diff --git a/src/mumble/ASIOInput.cpp b/src/mumble/ASIOInput.cpp index a60e1b5c04b..18539427b72 100644 --- a/src/mumble/ASIOInput.cpp +++ b/src/mumble/ASIOInput.cpp @@ -89,6 +89,11 @@ void ASIOInit::initialize() { bool bFound = false; + if (!g.s.bASIOEnable) { + qWarning("ASIOInput: ASIO forcefully disabled via 'asio/enable' config option."); + return; + } + // List of devices known to misbehave or be totally useless QStringList blacklist; blacklist << QLatin1String("{a91eaba1-cf4c-11d3-b96a-00a0c9c7b61a}"); // ASIO DirectX diff --git a/src/mumble/Settings.cpp b/src/mumble/Settings.cpp index 246fd1596c5..629eb472e0d 100644 --- a/src/mumble/Settings.cpp +++ b/src/mumble/Settings.cpp @@ -324,6 +324,8 @@ Settings::Settings() { iOutputDelay = 5; + bASIOEnable = true; + qsALSAInput=QLatin1String("default"); qsALSAOutput=QLatin1String("default"); @@ -589,6 +591,7 @@ void Settings::load(QSettings* settings_ptr) { SAVELOAD(iJitterBufferSize, "net/jitterbuffer"); SAVELOAD(iFramesPerPacket, "net/framesperpacket"); + SAVELOAD(bASIOEnable, "asio/enable"); SAVELOAD(qsASIOclass, "asio/class"); SAVELOAD(qlASIOmic, "asio/mic"); SAVELOAD(qlASIOspeaker, "asio/speaker"); @@ -882,6 +885,7 @@ void Settings::save() { SAVELOAD(iJitterBufferSize, "net/jitterbuffer"); SAVELOAD(iFramesPerPacket, "net/framesperpacket"); + SAVELOAD(bASIOEnable, "asio/enable"); SAVELOAD(qsASIOclass, "asio/class"); SAVELOAD(qlASIOmic, "asio/mic"); SAVELOAD(qlASIOspeaker, "asio/speaker"); diff --git a/src/mumble/Settings.h b/src/mumble/Settings.h index d108a503806..3f382bc6e7c 100644 --- a/src/mumble/Settings.h +++ b/src/mumble/Settings.h @@ -210,9 +210,12 @@ struct Settings { QString qsPulseAudioInput, qsPulseAudioOutput; QString qsOSSInput, qsOSSOutput; int iPortAudioInput, iPortAudioOutput; + + bool bASIOEnable; QString qsASIOclass; QList qlASIOmic; QList qlASIOspeaker; + QString qsCoreAudioInput, qsCoreAudioOutput; QString qsWASAPIInput, qsWASAPIOutput; QByteArray qbaDXInput, qbaDXOutput;