mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
Add headers required by XAudio2_7 to externals.
This makes all builds' audio compatible with downlevel Windows and removes the need for developers to install the June 2010 DirectX SDK.
This commit is contained in:
@ -45,7 +45,7 @@
|
||||
<ClCompile Include="WaveFile.cpp" />
|
||||
<ClCompile Include="XAudio2Stream.cpp" />
|
||||
<ClCompile Include="XAudio2_7Stream.cpp">
|
||||
<AdditionalIncludeDirectories Condition="Exists('$(DXSDK_DIR)')">$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ExternalsDir)XAudio2_7;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -2,28 +2,15 @@
|
||||
// Licensed under GPLv2
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
// Note that this file *and this file only* must also have %DXSDK_DIR%/Include prepended
|
||||
// to its include path in order fetch dxsdkver.h and XAudio2.h from the DXSDK
|
||||
// instead of other possible places. This may be accomplished by adding the path to
|
||||
// the AdditionalIncludeDirectories for this file via msbuild.
|
||||
// Note that this file *and this file only* must include XAudio2.h from the old
|
||||
// DXSDK instead of other possible places.
|
||||
|
||||
#include <XAudio2_7/XAudio2.h>
|
||||
|
||||
#include "AudioCommon/AudioCommon.h"
|
||||
#include "AudioCommon/XAudio2_7Stream.h"
|
||||
#include "Common/Event.h"
|
||||
|
||||
#ifdef HAVE_DXSDK
|
||||
#include <dxsdkver.h>
|
||||
#if (_DXSDK_PRODUCT_MAJOR == 9) && (_DXSDK_PRODUCT_MINOR == 29) && (_DXSDK_BUILD_MAJOR == 1962) && (_DXSDK_BUILD_MINOR == 0)
|
||||
#define HAVE_DXSDK_JUNE_2010
|
||||
#else
|
||||
#pragma message("You have DirectX SDK installed, but it is not the expected version (June 2010). Update it to build this module.")
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_DXSDK_JUNE_2010
|
||||
|
||||
#include <XAudio2.h>
|
||||
|
||||
struct StreamingVoiceContext2_7 : public IXAudio2VoiceCallback
|
||||
{
|
||||
private:
|
||||
@ -260,28 +247,3 @@ void XAudio2_7::Stop()
|
||||
m_xaudio2_dll = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
struct StreamingVoiceContext2_7 {};
|
||||
struct IXAudio2 {};
|
||||
struct IXAudio2MasteringVoice {};
|
||||
void XAudio2_7::ReleaseIXAudio2(IXAudio2* ptr) {}
|
||||
|
||||
XAudio2_7::XAudio2_7(CMixer *mixer)
|
||||
: SoundStream(mixer)
|
||||
, m_mastering_voice(nullptr)
|
||||
, m_volume(1.0f)
|
||||
, m_cleanup_com(false)
|
||||
{}
|
||||
|
||||
XAudio2_7::~XAudio2_7() {}
|
||||
|
||||
bool XAudio2_7::Start() { return SoundStream::Start(); }
|
||||
void XAudio2_7::Stop() {}
|
||||
void XAudio2_7::Update() {}
|
||||
void XAudio2_7::Clear(bool mute) {}
|
||||
void XAudio2_7::SetVolume(int volume) {}
|
||||
bool XAudio2_7::InitLibrary() { return false; }
|
||||
|
||||
#endif
|
||||
|
@ -5,10 +5,11 @@
|
||||
// This audio backend uses XAudio2 via XAudio2_7.dll
|
||||
// This version of the library is included in the June 2010 DirectX SDK and
|
||||
// works on all versions of Windows, however the SDK and/or redist must be
|
||||
// seperately installed.
|
||||
// separately installed.
|
||||
// Therefore this backend is available iff:
|
||||
// * SDK is available at compile-time
|
||||
// * runtime dll is available at runtime
|
||||
// Dolphin ships the relevant SDK headers in Externals, so it's always available.
|
||||
|
||||
#pragma once
|
||||
|
||||
|
@ -47,8 +47,6 @@
|
||||
<AdditionalIncludeDirectories>$(ExternalsDir)wxWidgets3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ExternalsDir)wxWidgets3\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ExternalsDir)zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<!--Allow compile-time testing of whether DXSDK (aka DX before integration into VS) is present-->
|
||||
<PreprocessorDefinitions Condition="Exists('$(DXSDK_DIR)')">HAVE_DXSDK;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>USE_UPNP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>PSAPI_VERSION=1;_M_X86=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
|
Reference in New Issue
Block a user