Rebase against 8bd5fe30014c2aa60f0c4570db4ef936e8c51245.

This commit is contained in:
Alistair Leslie-Hughes 2020-07-03 08:19:34 +10:00
parent cbdc68f558
commit 215d78f8e1
6 changed files with 3 additions and 756 deletions

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "10b17932fa829fac10a5e6717d96ed5d56de80fe"
echo "8bd5fe30014c2aa60f0c4570db4ef936e8c51245"
}
# Show version information
@ -6329,40 +6329,31 @@ fi
# | dlls/xactengine3_5/xactengine3_5.spec, dlls/xactengine3_6/Makefile.in, dlls/xactengine3_6/xactengine3_6.spec,
# | dlls/xactengine3_7/Makefile.in, dlls/xactengine3_7/xactengine3_7.spec, dlls/xaudio2_7/Makefile.in,
# | dlls/xaudio2_7/tests/Makefile.in, dlls/xaudio2_7/tests/globals.xgs, dlls/xaudio2_7/tests/rsrc.rc,
# | dlls/xaudio2_7/tests/xact.c, dlls/xaudio2_7/tests/xaudio2.c, dlls/xaudio2_7/xact_classes.idl, dlls/xaudio2_7/xact_dll.c,
# | include/Makefile.in, include/xact3.idl
# | dlls/xaudio2_7/tests/xact.c, dlls/xaudio2_7/tests/xaudio2.c, dlls/xaudio2_7/xact_classes.idl, dlls/xaudio2_7/xact_dll.c
# |
if test "$enable_xactengine_initial" -eq 1; then
patch_apply xactengine-initial/0001-include-Add-xact3.idl.patch
patch_apply xactengine-initial/0002-xaudio2-Add-support-for-xactengine3.patch
patch_apply xactengine-initial/0003-xaudio2_7-Support-older-XACT3Engine-interfaces.patch
patch_apply xactengine-initial/0004-xaudio2_7-IXACT3Engine-Initialize-return-valid-error.patch
patch_apply xactengine-initial/0005-xaudio2_7-IXACT3Engine-CreateSoundBank-return-correc.patch
patch_apply xactengine-initial/0006-xaudio2_7-Always-return-S_OK-in-IXACT34Cue-Destroy.patch
patch_apply xactengine-initial/0007-xaudio2_7-Dont-cast-interface-pointers.patch
patch_apply xactengine-initial/0008-include-Add-XACTNOTIFICATIONTYPE_-values.patch
patch_apply xactengine-initial/0009-xaudio2_7-unwrap-structure-based-of-it-s-type.patch
patch_apply xactengine-initial/0010-xaudio2_7-Correct-callback-to-windows-function.patch
patch_apply xactengine-initial/0011-xaudio2_7-Initial-IXACT3Engine-tests.patch
patch_apply xactengine-initial/0013-xaudio2_7-Trace-FAudio-version-being-used.patch
patch_apply xactengine-initial/0014-include-Add-XACTENGINE_-error-codes.patch
patch_apply xactengine-initial/0015-include-Add-XACT-defines.patch
patch_apply xactengine-initial/0016-xaudio2_7-tests-Add-more-tests.patch
(
printf '%s\n' '+ { "Ethan Lee", "include: Add xact3.idl.", 1 },';
printf '%s\n' '+ { "Ethan Lee", "xaudio2: Add support for xactengine3.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "xaudio2_7: Support older XACT3Engine interfaces.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "xaudio2_7: IXACT3Engine Initialize return valid error code.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "xaudio2_7: IXACT3Engine CreateSoundBank return correct HRESULT values.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "xaudio2_7: Always return S_OK in IXACT34Cue Destroy.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "xaudio2_7: Dont cast interface pointers.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "include: Add XACTNOTIFICATIONTYPE_* values.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "xaudio2_7: Unwrap structure based of it'\''s type.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "xaudio2_7: Correct callback to windows function.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "xaudio2_7: Initial IXACT3Engine tests.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "xaudio2_7: Trace FAudio version being used.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "include: Add XACTENGINE_* error codes.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "include: Add XACT defines.", 1 },';
printf '%s\n' '+ { "Alistair Leslie-Hughes", "xaudio2_7/tests: Add more tests.", 1 },';
) >> "$patchlist"
fi

View File

@ -1,566 +0,0 @@
From 1528db6daac145ca3444b432382c8e4b8fd15a5d Mon Sep 17 00:00:00 2001
From: Ethan Lee <elee@codeweavers.com>
Date: Wed, 22 Jan 2020 00:12:10 +0000
Subject: [PATCH] include: Add xact3.idl
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
include/Makefile.in | 1 +
include/xact3.idl | 533 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 534 insertions(+)
create mode 100644 include/xact3.idl
diff --git a/include/Makefile.in b/include/Makefile.in
index 9f70e72b4c7..200d4a69423 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -802,6 +802,7 @@ SOURCES = \
wtypes.idl \
wuapi.idl \
x3daudio.h \
+ xact3.idl \
xact3wb.h \
xapo.idl \
xapofx.h \
diff --git a/include/xact3.idl b/include/xact3.idl
new file mode 100644
index 00000000000..c49718ff393
--- /dev/null
+++ b/include/xact3.idl
@@ -0,0 +1,533 @@
+/*
+ * Copyright (c) 2018 Ethan Lee for CodeWeavers
+ *
+ * This library 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.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "unknwn.idl";
+import "xaudio2.idl";
+
+import "xact3wb.h";
+
+[
+ uuid(bcc782bc-6492-4c22-8c35-f5d72fe73c6e)
+]
+coclass XACTEngine
+{
+}
+
+interface IXACT3Engine;
+interface IXACT3SoundBank;
+interface IXACT3WaveBank;
+interface IXACT3Cue;
+interface IXACT3Wave;
+
+typedef WORD XACTCATEGORY;
+typedef BYTE XACTCHANNEL;
+typedef WORD XACTINDEX;
+typedef BYTE XACTINSTANCELIMIT;
+typedef BYTE XACTLOOPCOUNT;
+typedef BYTE XACTNOTIFICATIONTYPE;
+typedef SHORT XACTPITCH;
+typedef LONG XACTTIME;
+typedef WORD XACTVARIABLEINDEX;
+typedef FLOAT XACTVARIABLEVALUE;
+typedef BYTE XACTVARIATIONWEIGHT;
+typedef FLOAT XACTVOLUME;
+
+#define XACT_RENDERER_ID_LENGTH 0xff
+#define XACT_RENDERER_NAME_LENGTH 0xff
+#define XACT_CUE_NAME_LENGTH 0xff
+
+cpp_quote("#ifndef WAVEBANK_ENTRYNAME_LENGTH")
+#define WAVEBANK_ENTRYNAME_LENGTH 64
+cpp_quote("#endif")
+
+typedef struct XACT_RENDERER_DETAILS
+{
+ WCHAR rendererID[XACT_RENDERER_ID_LENGTH];
+ WCHAR displayName[XACT_RENDERER_NAME_LENGTH];
+ BOOL defaultDevice;
+} XACT_RENDERER_DETAILS;
+
+typedef BOOL (__stdcall *XACT_READFILE_CALLBACK)(
+ HANDLE hFile,
+ LPVOID lpBuffer,
+ DWORD nNumberOfBytesRead,
+ LPDWORD lpNumberOfBytesRead,
+ void* lpOverlapped
+);
+typedef BOOL (__stdcall *XACT_GETOVERLAPPEDRESULT_CALLBACK)(
+ HANDLE hFile,
+ void* lpOverlapped,
+ LPDWORD lpNumberOfBytesTransferred,
+ BOOL bWait
+);
+typedef struct XACT_FILEIO_CALLBACKS
+{
+ XACT_READFILE_CALLBACK readFileCallback;
+ XACT_GETOVERLAPPEDRESULT_CALLBACK getOverlappedResultCallback;
+} XACT_FILEIO_CALLBACKS;
+
+typedef struct XACT_STREAMING_PARAMETERS
+{
+ HANDLE file;
+ DWORD offset;
+ DWORD flags;
+ WORD packetSize;
+} XACT_STREAMING_PARAMETERS;
+
+typedef struct XACT_WAVE_PROPERTIES
+{
+ char friendlyName[WAVEBANK_ENTRYNAME_LENGTH];
+ WAVEBANKMINIWAVEFORMAT format;
+ DWORD durationInSamples;
+ WAVEBANKSAMPLEREGION loopRegion;
+ BOOL streaming;
+} XACT_WAVE_PROPERTIES;
+
+cpp_quote("#if 0")
+typedef struct XACT_WAVE_INSTANCE_PROPERTIES
+{
+ XACT_WAVE_PROPERTIES waveProperties; /* properties is a keyword for midl */
+ BOOL backgroundMusic;
+} XACT_WAVE_INSTANCE_PROPERTIES;
+cpp_quote("#endif")
+
+cpp_quote("typedef struct XACT_WAVE_INSTANCE_PROPERTIES")
+cpp_quote("{")
+cpp_quote(" XACT_WAVE_PROPERTIES properties;")
+cpp_quote(" BOOL backgroundMusic;")
+cpp_quote("} XACT_WAVE_INSTANCE_PROPERTIES;")
+
+typedef struct XACT_CUE_PROPERTIES
+{
+ char friendlyName[XACT_CUE_NAME_LENGTH];
+ BOOL interactive;
+ XACTINDEX iaVariableIndex;
+ XACTINDEX numVariations;
+ XACTINSTANCELIMIT maxInstances;
+ XACTINSTANCELIMIT currentInstances;
+} XACT_CUE_PROPERTIES;
+
+typedef struct XACT_TRACK_PROPERTIES
+{
+ XACTTIME duration;
+ XACTINDEX numVariations;
+ XACTCHANNEL numChannels;
+ XACTINDEX waveVariation;
+ XACTLOOPCOUNT loopCount;
+} XACT_TRACK_PROPERTIES;
+
+typedef struct XACT_VARIATION_PROPERTIES
+{
+ XACTINDEX index;
+ XACTVARIATIONWEIGHT weight;
+ XACTVARIABLEVALUE iaVariableMin;
+ XACTVARIABLEVALUE iaVariableMax;
+ BOOL linger;
+} XACT_VARIATION_PROPERTIES;
+
+typedef struct XACT_SOUND_PROPERTIES
+{
+ XACTCATEGORY category;
+ BYTE priority;
+ XACTPITCH pitch;
+ XACTVOLUME volume;
+ XACTINDEX numTracks;
+ XACT_TRACK_PROPERTIES arrTrackProperties[1];
+} XACT_SOUND_PROPERTIES;
+
+typedef struct XACT_SOUND_VARIATION_PROPERTIES
+{
+ XACT_VARIATION_PROPERTIES variationProperties;
+ XACT_SOUND_PROPERTIES soundProperties;
+} XACT_SOUND_VARIATION_PROPERTIES;
+
+typedef struct XACT_CUE_INSTANCE_PROPERTIES
+{
+ DWORD allocAttributes;
+ XACT_CUE_PROPERTIES cueProperties;
+ XACT_SOUND_VARIATION_PROPERTIES activeVariationProperties;
+} XACT_CUE_INSTANCE_PROPERTIES;
+
+cpp_quote("#include <pshpack1.h>")
+
+typedef struct XACT_NOTIFICATION_DESCRIPTION
+{
+ XACTNOTIFICATIONTYPE type;
+ BYTE flags;
+ IXACT3SoundBank *pSoundBank;
+ IXACT3WaveBank *pWaveBank;
+ IXACT3Cue *pCue;
+ IXACT3Wave *pWave;
+ XACTINDEX cueIndex;
+ XACTINDEX waveIndex;
+ void* pvContext;
+} XACT_NOTIFICATION_DESCRIPTION;
+
+typedef struct XACT_NOTIFICATION_CUE
+{
+ XACTINDEX cueIndex;
+ IXACT3SoundBank *pSoundBank;
+ IXACT3Cue *pCue;
+} XACT_NOTIFICATION_CUE;
+
+typedef struct XACT_NOTIFICATION_MARKER
+{
+ XACTINDEX cueIndex;
+ IXACT3SoundBank *pSoundBank;
+ IXACT3Cue *pCue;
+ DWORD marker;
+} XACT_NOTIFICATION_MARKER;
+
+typedef struct XACT_NOTIFICATION_SOUNDBANK
+{
+ IXACT3SoundBank *pSoundBank;
+} XACT_NOTIFICATION_SOUNDBANK;
+
+typedef struct XACT_NOTIFICATION_WAVEBANK
+{
+ IXACT3WaveBank *pWaveBank;
+} XACT_NOTIFICATION_WAVEBANK;
+
+typedef struct XACT_NOTIFICATION_VARIABLE
+{
+ XACTINDEX cueIndex;
+ IXACT3SoundBank *pSoundBank;
+ IXACT3Cue *pCue;
+ XACTVARIABLEINDEX variableIndex;
+ XACTVARIABLEVALUE variableValue;
+ BOOL local;
+} XACT_NOTIFICATION_VARIABLE;
+
+typedef struct XACT_NOTIFICATION_GUI
+{
+ DWORD reserved;
+} XACT_NOTIFICATION_GUI;
+
+typedef struct XACT_NOTIFICATION_WAVE
+{
+ IXACT3WaveBank *pWaveBank;
+ XACTINDEX waveIndex;
+ XACTINDEX cueIndex;
+ IXACT3SoundBank *pSoundBank;
+ IXACT3Cue *pCue;
+ IXACT3Wave *pWave;
+} XACT_NOTIFICATION_WAVE;
+
+typedef struct XACT_NOTIFICATION
+{
+ XACTNOTIFICATIONTYPE type;
+ LONG timeStamp;
+ PVOID pvContext;
+ union
+ {
+ XACT_NOTIFICATION_CUE cue;
+ XACT_NOTIFICATION_MARKER marker;
+ XACT_NOTIFICATION_SOUNDBANK soundBank;
+ XACT_NOTIFICATION_WAVEBANK waveBank;
+ XACT_NOTIFICATION_VARIABLE variable;
+ XACT_NOTIFICATION_GUI gui;
+ XACT_NOTIFICATION_WAVE wave;
+ } DUMMYUNIONNAME;
+} XACT_NOTIFICATION;
+
+typedef void (__stdcall *XACT_NOTIFICATION_CALLBACK)(
+ const XACT_NOTIFICATION *pNotification
+);
+
+typedef struct XACT_RUNTIME_PARAMETERS
+{
+ DWORD lookAheadTime;
+ void* pGlobalSettingsBuffer;
+ DWORD globalSettingsBufferSize;
+ DWORD globalSettingsFlags;
+ DWORD globalSettingsAllocAttributes;
+ XACT_FILEIO_CALLBACKS fileIOCallbacks;
+ XACT_NOTIFICATION_CALLBACK fnNotificationCallback;
+ LPCWSTR pRendererID;
+ IXAudio2 *pXAudio2;
+ IXAudio2MasteringVoice *pMasteringVoice;
+} XACT_RUNTIME_PARAMETERS;
+
+
+cpp_quote("#include <poppack.h>")
+
+static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_CUEDESTROYED = 4;
+static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED = 6;
+static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEBANKDESTROYED = 7;
+static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEDESTROYED = 16;
+
+[
+ object,
+ local,
+ uuid(b1ee676a-d9cd-4d2a-89a8-fa53eb9e480b),
+]
+interface IXACT3Engine : IUnknown
+{
+ HRESULT GetRendererCount(XACTINDEX *pnRendererCount);
+
+ HRESULT GetRendererDetails(
+ XACTINDEX nRendererIndex,
+ XACT_RENDERER_DETAILS *pRendererDetails);
+
+ HRESULT GetFinalMixFormat(WAVEFORMATEXTENSIBLE *pFinalMixFormat);
+
+ HRESULT Initialize(const XACT_RUNTIME_PARAMETERS *pParams);
+
+ HRESULT ShutDown();
+
+ HRESULT DoWork();
+
+ HRESULT CreateSoundBank(
+ const void* pvBuffer,
+ DWORD dwSize,
+ DWORD dwFlags,
+ DWORD dwAllocAttributes,
+ IXACT3SoundBank **ppSoundBank);
+
+ HRESULT CreateInMemoryWaveBank(
+ const void* pvBuffer,
+ DWORD dwSize,
+ DWORD dwFlags,
+ DWORD dwAllocAttributes,
+ IXACT3WaveBank **ppWaveBank);
+
+ HRESULT CreateStreamingWaveBank(
+ const XACT_STREAMING_PARAMETERS *pParms,
+ IXACT3WaveBank **ppWaveBank);
+
+ HRESULT PrepareWave(
+ DWORD dwFlags,
+ LPCSTR szWavePath,
+ WORD wStreamingPacketSize,
+ DWORD dwAlignment,
+ DWORD dwPlayOffset,
+ XACTLOOPCOUNT nLoopCount,
+ IXACT3Wave **ppWave);
+
+ HRESULT PrepareInMemoryWave(
+ DWORD dwFlags,
+ WAVEBANKENTRY entry,
+ DWORD *pdwSeekTable,
+ BYTE *pbWaveData,
+ DWORD dwPlayOffset,
+ XACTLOOPCOUNT nLoopCount,
+ IXACT3Wave **ppWave);
+
+ HRESULT PrepareStreamingWave(
+ DWORD dwFlags,
+ WAVEBANKENTRY entry,
+ XACT_STREAMING_PARAMETERS streamingParams,
+ DWORD dwAlignment,
+ DWORD *pdwSeekTable,
+ DWORD dwPlayOffset,
+ XACTLOOPCOUNT nLoopCount,
+ IXACT3Wave **ppWave);
+
+ HRESULT RegisterNotification(
+ const XACT_NOTIFICATION_DESCRIPTION *pNotificationDesc);
+
+ HRESULT UnRegisterNotification(
+ const XACT_NOTIFICATION_DESCRIPTION *pNotificationDesc);
+
+ XACTCATEGORY GetCategory(
+ LPCSTR szFriendlyName);
+
+ HRESULT Stop(XACTCATEGORY nCategory, DWORD dwFlags);
+
+ HRESULT SetVolume(XACTCATEGORY nCategory, XACTVOLUME nVolume);
+
+ HRESULT Pause(XACTCATEGORY nCategory, BOOL fPause);
+
+ XACTVARIABLEINDEX GetGlobalVariableIndex(LPCSTR szFriendlyName);
+
+ HRESULT SetGlobalVariable(
+ XACTVARIABLEINDEX nIndex,
+ XACTVARIABLEVALUE nValue);
+
+ HRESULT GetGlobalVariable(
+ XACTVARIABLEINDEX nIndex,
+ XACTVARIABLEVALUE *nValue);
+}
+
+[
+ object,
+ local
+]
+interface IXACT3SoundBank
+{
+ XACTINDEX GetCueIndex(LPCSTR szFriendlyName);
+
+ HRESULT GetNumCues(XACTINDEX *pnNumCues);
+
+ HRESULT GetCueProperties(
+ XACTINDEX nCueIndex,
+ XACT_CUE_PROPERTIES *pProperties);
+
+ HRESULT Prepare(
+ XACTINDEX nCueIndex,
+ DWORD dwFlags,
+ XACTTIME timeOffset,
+ IXACT3Cue **ppCue);
+
+ HRESULT Play(
+ XACTINDEX nCueIndex,
+ DWORD dwFlags,
+ XACTTIME timeOffset,
+ IXACT3Cue **ppCue);
+
+ HRESULT Stop(XACTINDEX nCueIndex, DWORD dwFlags);
+
+ HRESULT Destroy();
+
+ HRESULT GetState(DWORD *pdwState);
+}
+
+[
+ object,
+ local
+]
+interface IXACT3WaveBank
+{
+ HRESULT Destroy();
+
+ HRESULT GetNumWaves(XACTINDEX *pnNumWaves);
+
+ XACTINDEX GetWaveIndex(LPCSTR szFriendlyName);
+
+ HRESULT GetWaveProperties(
+ XACTINDEX nWaveIndex,
+ XACT_WAVE_PROPERTIES *pWaveProperties);
+
+ HRESULT Prepare(
+ XACTINDEX nWaveIndex,
+ DWORD dwFlags,
+ DWORD dwPlayOffset,
+ XACTLOOPCOUNT nLoopCount,
+ IXACT3Wave **ppWave);
+
+ HRESULT Play(
+ XACTINDEX nWaveIndex,
+ DWORD dwFlags,
+ DWORD dwPlayOffset,
+ XACTLOOPCOUNT nLoopCount,
+ IXACT3Wave **ppWave);
+
+ HRESULT Stop(XACTINDEX nWaveIndex, DWORD dwFlags);
+
+ HRESULT GetState(DWORD *pdwState);
+}
+
+[
+ object,
+ local
+]
+interface IXACT34Cue
+{
+ HRESULT Play();
+
+ HRESULT Stop(DWORD dwFlags);
+
+ HRESULT GetState(DWORD *pdwState);
+
+ HRESULT Destroy();
+
+ HRESULT SetMatrixCoefficients(
+ UINT32 uSrcChannelCount,
+ UINT32 uDstChannelCount,
+ float *pMatrixCoefficients);
+
+ XACTVARIABLEINDEX GetVariableIndex(LPCSTR szFriendlyName);
+
+ HRESULT SetVariable(XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE nValue);
+
+ HRESULT GetVariable(
+ XACTVARIABLEINDEX nIndex,
+ XACTVARIABLEVALUE *nValue);
+
+ HRESULT Pause(BOOL fPause);
+
+ HRESULT GetProperties(XACT_CUE_INSTANCE_PROPERTIES **ppProperties);
+}
+
+[
+ object,
+ local
+]
+interface IXACT3Cue
+{
+ HRESULT Play();
+
+ HRESULT Stop(DWORD dwFlags);
+
+ HRESULT GetState(DWORD *pdwState);
+
+ HRESULT Destroy();
+
+ HRESULT SetMatrixCoefficients(
+ UINT32 uSrcChannelCount,
+ UINT32 uDstChannelCount,
+ float *pMatrixCoefficients);
+
+ XACTVARIABLEINDEX GetVariableIndex(LPCSTR szFriendlyName);
+
+ HRESULT SetVariable(XACTVARIABLEINDEX nIndex, XACTVARIABLEVALUE nValue);
+
+ HRESULT GetVariable(
+ XACTVARIABLEINDEX nIndex,
+ XACTVARIABLEVALUE *nValue);
+
+ HRESULT Pause(BOOL fPause);
+
+ HRESULT GetProperties(XACT_CUE_INSTANCE_PROPERTIES **ppProperties);
+
+ HRESULT SetOutputVoices(const XAUDIO2_VOICE_SENDS *pSendList);
+
+ HRESULT SetOutputVoiceMatrix(
+ IXAudio2Voice *pDestinationVoice,
+ UINT32 SourceChannels,
+ UINT32 DestinationChannels,
+ const float *pLevelMatrix);
+}
+
+[
+ object,
+ local
+]
+interface IXACT3Wave
+{
+ HRESULT Destroy();
+
+ HRESULT Play();
+
+ HRESULT Stop(DWORD dwFlags);
+
+ HRESULT Pause(BOOL fPause);
+
+ HRESULT GetState(DWORD *pdwState);
+
+ HRESULT SetPitch(XACTPITCH pitch);
+
+ HRESULT SetVolume(XACTVOLUME volume);
+
+ HRESULT SetMatrixCoefficients(
+ UINT32 uSrcChannelCount,
+ UINT32 uDstChannelCount,
+ float *pMatrixCoefficients);
+
+ HRESULT GetProperties(XACT_WAVE_INSTANCE_PROPERTIES *pProperties);
+}
--
2.27.0

View File

@ -1,45 +0,0 @@
From 5975c1051ef759adc1f8303fde7e3b60b0535ff7 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Thu, 9 Jan 2020 08:30:23 +1100
Subject: [PATCH] include: Add XACTNOTIFICATIONTYPE_* values
---
include/xact3.idl | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/include/xact3.idl b/include/xact3.idl
index c49718ff39..e05f476cb9 100644
--- a/include/xact3.idl
+++ b/include/xact3.idl
@@ -266,10 +266,24 @@ typedef struct XACT_RUNTIME_PARAMETERS
cpp_quote("#include <poppack.h>")
-static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_CUEDESTROYED = 4;
-static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED = 6;
-static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEBANKDESTROYED = 7;
-static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEDESTROYED = 16;
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_CUEPREPARED = 1;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_CUEPLAY = 2;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_CUESTOP = 3;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_CUEDESTROYED = 4;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_MARKER = 5;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED = 6;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEBANKDESTROYED = 7;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_LOCALVARIABLECHANGED = 8;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_GLOBALVARIABLECHANGED = 9;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_GUICONNECTED = 10;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_GUIDISCONNECTED = 11;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEPREPARED = 12;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEPLAY = 13;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVESTOP = 14;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVELOOPED = 15;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEDESTROYED = 16;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEBANKPREPARED = 17;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEBANKSTREAMING_INVALIDCONTENT = 18;")
[
object,
--
2.25.1

View File

@ -1,66 +0,0 @@
From 554e9f407e5e722c88b703be987c3ac30dc6a41c Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Thu, 16 Jan 2020 13:46:14 +1100
Subject: [PATCH] include: Add XACTENGINE_* error codes
---
include/xact3.idl | 46 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/include/xact3.idl b/include/xact3.idl
index e05f476cb9..87fd2e86f5 100644
--- a/include/xact3.idl
+++ b/include/xact3.idl
@@ -545,3 +545,49 @@ interface IXACT3Wave
HRESULT GetProperties(XACT_WAVE_INSTANCE_PROPERTIES *pProperties);
}
+
+cpp_quote("#define FACILITY_XACTENGINE 0xAC7")
+cpp_quote("#define XACTENGINEERROR(n) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_XACTENGINE, n)")
+
+cpp_quote("#define XACTENGINE_E_OUTOFMEMORY E_OUTOFMEMORY")
+cpp_quote("#define XACTENGINE_E_INVALIDARG E_INVALIDARG")
+cpp_quote("#define XACTENGINE_E_NOTIMPL E_NOTIMPL")
+cpp_quote("#define XACTENGINE_E_FAIL E_FAIL")
+
+cpp_quote("#define XACTENGINE_E_ALREADYINITIALIZED XACTENGINEERROR(0x001)")
+cpp_quote("#define XACTENGINE_E_NOTINITIALIZED XACTENGINEERROR(0x002)")
+cpp_quote("#define XACTENGINE_E_EXPIRED XACTENGINEERROR(0x003)")
+cpp_quote("#define XACTENGINE_E_NONOTIFICATIONCALLBACK XACTENGINEERROR(0x004)")
+cpp_quote("#define XACTENGINE_E_NOTIFICATIONREGISTERED XACTENGINEERROR(0x005)")
+cpp_quote("#define XACTENGINE_E_INVALIDUSAGE XACTENGINEERROR(0x006)")
+cpp_quote("#define XACTENGINE_E_INVALIDDATA XACTENGINEERROR(0x007)")
+cpp_quote("#define XACTENGINE_E_INSTANCELIMITFAILTOPLAY XACTENGINEERROR(0x008)")
+cpp_quote("#define XACTENGINE_E_NOGLOBALSETTINGS XACTENGINEERROR(0x009)")
+cpp_quote("#define XACTENGINE_E_INVALIDVARIABLEINDEX XACTENGINEERROR(0x00a)")
+cpp_quote("#define XACTENGINE_E_INVALIDCATEGORY XACTENGINEERROR(0x00b)")
+cpp_quote("#define XACTENGINE_E_INVALIDCUEINDEX XACTENGINEERROR(0x00c)")
+cpp_quote("#define XACTENGINE_E_INVALIDWAVEINDEX XACTENGINEERROR(0x00d)")
+cpp_quote("#define XACTENGINE_E_INVALIDTRACKINDEX XACTENGINEERROR(0x00e)")
+cpp_quote("#define XACTENGINE_E_INVALIDSOUNDOFFSETORINDEX XACTENGINEERROR(0x00f)")
+cpp_quote("#define XACTENGINE_E_READFILE XACTENGINEERROR(0x010)")
+cpp_quote("#define XACTENGINE_E_UNKNOWNEVENT XACTENGINEERROR(0x011)")
+cpp_quote("#define XACTENGINE_E_INCALLBACK XACTENGINEERROR(0x012)")
+cpp_quote("#define XACTENGINE_E_NOWAVEBANK XACTENGINEERROR(0x013)")
+cpp_quote("#define XACTENGINE_E_SELECTVARIATION XACTENGINEERROR(0x014)")
+cpp_quote("#define XACTENGINE_E_MULTIPLEAUDITIONENGINES XACTENGINEERROR(0x015)")
+cpp_quote("#define XACTENGINE_E_WAVEBANKNOTPREPARED XACTENGINEERROR(0x016)")
+cpp_quote("#define XACTENGINE_E_NORENDERER XACTENGINEERROR(0x017)")
+cpp_quote("#define XACTENGINE_E_INVALIDENTRYCOUNT XACTENGINEERROR(0x018)")
+cpp_quote("#define XACTENGINE_E_SEEKTIMEBEYONDCUEEND XACTENGINEERROR(0x019)")
+cpp_quote("#define XACTENGINE_E_SEEKTIMEBEYONDWAVEEND XACTENGINEERROR(0x01a)")
+cpp_quote("#define XACTENGINE_E_NOFRIENDLYNAMES XACTENGINEERROR(0x01b)")
+
+cpp_quote("#define XACTENGINE_E_AUDITION_WRITEFILE XACTENGINEERROR(0x101)")
+cpp_quote("#define XACTENGINE_E_AUDITION_NOSOUNDBANK XACTENGINEERROR(0x102)")
+cpp_quote("#define XACTENGINE_E_AUDITION_INVALIDRPCINDEX XACTENGINEERROR(0x103)")
+cpp_quote("#define XACTENGINE_E_AUDITION_MISSINGDATA XACTENGINEERROR(0x104)")
+cpp_quote("#define XACTENGINE_E_AUDITION_UNKNOWNCOMMAND XACTENGINEERROR(0x105)")
+cpp_quote("#define XACTENGINE_E_AUDITION_INVALIDDSPINDEX XACTENGINEERROR(0x106)")
+cpp_quote("#define XACTENGINE_E_AUDITION_MISSINGWAVE XACTENGINEERROR(0x107)")
+cpp_quote("#define XACTENGINE_E_AUDITION_CREATEDIRECTORYFAILED XACTENGINEERROR(0x108)")
+cpp_quote("#define XACTENGINE_E_AUDITION_INVALIDSESSION XACTENGINEERROR(0x109)")
--
2.25.1

View File

@ -1,67 +0,0 @@
From ccb258005d6e7c6be189ef19c7919caea0502336 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 18 Jan 2020 18:45:24 +1100
Subject: [PATCH] include: Add XACT defines
---
include/xact3.idl | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/include/xact3.idl b/include/xact3.idl
index 87fd2e86f5..c193ecf831 100644
--- a/include/xact3.idl
+++ b/include/xact3.idl
@@ -21,6 +21,9 @@ import "xaudio2.idl";
import "xact3wb.h";
+cpp_quote("#include <limits.h>")
+cpp_quote("#include <float.h>")
+
[
uuid(bcc782bc-6492-4c22-8c35-f5d72fe73c6e)
]
@@ -285,6 +288,40 @@ cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEDESTROYED
cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEBANKPREPARED = 17;")
cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_WAVEBANKSTREAMING_INVALIDCONTENT = 18;")
+cpp_quote("static const XACTTIME XACTTIME_MIN = INT_MIN;")
+cpp_quote("static const XACTTIME XACTTIME_MAX = INT_MAX;")
+cpp_quote("static const XACTTIME XACTTIME_INFINITE = INT_MAX;")
+cpp_quote("static const XACTINSTANCELIMIT XACTINSTANCELIMIT_INFINITE = 0xff;")
+cpp_quote("static const XACTINSTANCELIMIT XACTINSTANCELIMIT_MIN = 0x00;")
+cpp_quote("static const XACTINSTANCELIMIT XACTINSTANCELIMIT_MAX = 0xfe;")
+cpp_quote("static const XACTINDEX XACTINDEX_MIN = 0x00;")
+cpp_quote("static const XACTINDEX XACTINDEX_MAX = 0xfffe;")
+cpp_quote("static const XACTINDEX XACTINDEX_INVALID = 0xffff;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_MIN = 0x00;")
+cpp_quote("static const XACTNOTIFICATIONTYPE XACTNOTIFICATIONTYPE_MAX = 0xff;")
+cpp_quote("static const XACTVARIABLEVALUE XACTVARIABLEVALUE_MIN = -FLT_MAX;")
+cpp_quote("static const XACTVARIABLEVALUE XACTVARIABLEVALUE_MAX = FLT_MAX;")
+cpp_quote("static const XACTVARIABLEINDEX XACTVARIABLEINDEX_MIN = 0x0000;")
+cpp_quote("static const XACTVARIABLEINDEX XACTVARIABLEINDEX_MAX = 0xfffe;")
+cpp_quote("static const XACTVARIABLEINDEX XACTVARIABLEINDEX_INVALID = 0xffff;")
+cpp_quote("static const XACTCATEGORY XACTCATEGORY_MIN = 0x0;")
+cpp_quote("static const XACTCATEGORY XACTCATEGORY_MAX = 0xfffe;")
+cpp_quote("static const XACTCATEGORY XACTCATEGORY_INVALID = 0xffff;")
+cpp_quote("static const XACTCHANNEL XACTCHANNEL_MIN = 0;")
+cpp_quote("static const XACTCHANNEL XACTCHANNEL_MAX = 0xff;")
+cpp_quote("static const XACTPITCH XACTPITCH_MIN = -1200;")
+cpp_quote("static const XACTPITCH XACTPITCH_MAX = 1200;")
+cpp_quote("static const XACTPITCH XACTPITCH_MIN_TOTAL = -2400;")
+cpp_quote("static const XACTPITCH XACTPITCH_MAX_TOTAL = 2400;")
+cpp_quote("static const XACTVOLUME XACTVOLUME_MIN = 0.0f;")
+cpp_quote("static const XACTVOLUME XACTVOLUME_MAX = 16777216.0f;")
+cpp_quote("static const XACTVARIABLEVALUE XACTPARAMETERVALUE_MIN = -FLT_MAX;")
+cpp_quote("static const XACTVARIABLEVALUE XACTPARAMETERVALUE_MAX = FLT_MAX;")
+cpp_quote("static const XACTLOOPCOUNT XACTLOOPCOUNT_MIN = 0x00;")
+cpp_quote("static const XACTLOOPCOUNT XACTLOOPCOUNT_MAX = 0xfe;")
+cpp_quote("static const XACTLOOPCOUNT XACTLOOPCOUNT_INFINITE = 0xff;")
+cpp_quote("static const DWORD XACTWAVEALIGNMENT_MIN = 2048;")
+
[
object,
local,
--
2.25.1

View File

@ -1 +1 @@
10b17932fa829fac10a5e6717d96ed5d56de80fe
8bd5fe30014c2aa60f0c4570db4ef936e8c51245