mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Updated xactengine3_7-Notification patchset
This commit is contained in:
parent
27fae2dc15
commit
0c8991562d
@ -4509,9 +4509,10 @@ fi
|
||||
# | * [#50546] xactengine3_7: Send Notification after the Wavebank is created.
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/xactengine3_7/xact_dll.c
|
||||
# | * dlls/xactengine3_7/xact_dll.c, include/xact3.h, include/xact3wb.h
|
||||
# |
|
||||
if test "$enable_xactengine3_7_Notification" -eq 1; then
|
||||
patch_apply xactengine3_7-Notification/0000-xactengine-Use-nameless-unions.patch
|
||||
patch_apply xactengine3_7-Notification/0001-xactengine3.7-Delay-Notication-for-WAVEBANKPREPARED.patch
|
||||
patch_apply xactengine3_7-Notification/0002-xactengine3_7-Record-context-for-each-notications.patch
|
||||
fi
|
||||
|
@ -0,0 +1,40 @@
|
||||
From 520b5366cb7ce1cba59a755a734f23dbd25fa093 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Thu, 22 Apr 2021 13:23:44 +1000
|
||||
Subject: [PATCH] xactengine: Use nameless unions
|
||||
|
||||
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
---
|
||||
include/xact3.h | 2 +-
|
||||
include/xact3wb.h | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/xact3.h b/include/xact3.h
|
||||
index 63eec707363..9b8f480829e 100644
|
||||
--- a/include/xact3.h
|
||||
+++ b/include/xact3.h
|
||||
@@ -434,7 +434,7 @@ typedef struct XACT_NOTIFICATION
|
||||
XACT_NOTIFICATION_VARIABLE variable;
|
||||
XACT_NOTIFICATION_GUI gui;
|
||||
XACT_NOTIFICATION_WAVE wave;
|
||||
- } DUMMYUNIONNAME;
|
||||
+ };
|
||||
} XACT_NOTIFICATION, *LPXACT_NOTIFICATION;
|
||||
typedef const XACT_NOTIFICATION *LPCXACT_NOTIFICATION;
|
||||
|
||||
diff --git a/include/xact3wb.h b/include/xact3wb.h
|
||||
index 6d157a466f9..834b3e1ef54 100644
|
||||
--- a/include/xact3wb.h
|
||||
+++ b/include/xact3wb.h
|
||||
@@ -121,7 +121,7 @@ typedef struct WAVEBANKENTRY
|
||||
DWORD Duration : 28;
|
||||
} DUMMYSTRUCTNAME;
|
||||
DWORD dwFlagsAndDuration;
|
||||
- } DUMMYUNIONNAME;
|
||||
+ };
|
||||
|
||||
WAVEBANKMINIWAVEFORMAT Format;
|
||||
WAVEBANKREGION PlayRegion;
|
||||
--
|
||||
2.30.2
|
||||
|
@ -44,7 +44,7 @@ index 281aecc154b..e3b6e32cd5a 100644
|
||||
+
|
||||
+ tdata->engine = This;
|
||||
+ tdata->note.type = XACTNOTIFICATIONTYPE_WAVEBANKPREPARED;
|
||||
+ tdata->note.u.wave.pWaveBank = wavebank;
|
||||
+ tdata->note.wave.pWaveBank = wavebank;
|
||||
+
|
||||
+ thread = CreateThread(NULL, 0, thread_notications, tdata, 0, NULL);
|
||||
+ CloseHandle(thread);
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 168094a26f74f785f3ee1429d5abc55be5f50c0c Mon Sep 17 00:00:00 2001
|
||||
From 1c50e3c6a275e0700e546586a63d2b900234a693 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Thu, 28 Jan 2021 12:29:42 +1100
|
||||
Subject: [PATCH 2/2] xactengine3_7: Record context for each notications
|
||||
Subject: [PATCH] xactengine3_7: Record context for each notications
|
||||
|
||||
This helps the first lockup but starting a game causes another freeze.
|
||||
|
||||
@ -11,10 +11,10 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49678
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/xactengine3_7/xact_dll.c b/dlls/xactengine3_7/xact_dll.c
|
||||
index e3b6e32cd5a..51826e81773 100644
|
||||
index 4fd47be84db..83af1035583 100644
|
||||
--- a/dlls/xactengine3_7/xact_dll.c
|
||||
+++ b/dlls/xactengine3_7/xact_dll.c
|
||||
@@ -637,6 +637,8 @@ typedef struct _XACT3EngineImpl {
|
||||
@@ -717,6 +717,8 @@ typedef struct _XACT3EngineImpl {
|
||||
XACT_READFILE_CALLBACK pReadFile;
|
||||
XACT_GETOVERLAPPEDRESULT_CALLBACK pGetOverlappedResult;
|
||||
XACT_NOTIFICATION_CALLBACK notification_callback;
|
||||
@ -23,15 +23,15 @@ index e3b6e32cd5a..51826e81773 100644
|
||||
} XACT3EngineImpl;
|
||||
|
||||
typedef struct wrap_readfile_struct {
|
||||
@@ -912,6 +914,7 @@ static void send_wavebank_notification(XACT3EngineImpl *This, IXACT3WaveBank *wa
|
||||
@@ -998,6 +1000,7 @@ static void send_wavebank_notification(XACT3EngineImpl *This, IXACT3WaveBank *wa
|
||||
|
||||
tdata->engine = This;
|
||||
tdata->note.type = XACTNOTIFICATIONTYPE_WAVEBANKPREPARED;
|
||||
+ tdata->note.pvContext = This->contexts[XACTNOTIFICATIONTYPE_WAVEBANKPREPARED - 1];
|
||||
tdata->note.u.wave.pWaveBank = wavebank;
|
||||
tdata->note.wave.pWaveBank = wavebank;
|
||||
|
||||
thread = CreateThread(NULL, 0, thread_notications, tdata, 0, NULL);
|
||||
@@ -1131,9 +1134,11 @@ static HRESULT WINAPI IXACT3EngineImpl_RegisterNotification(IXACT3Engine *iface,
|
||||
@@ -1257,9 +1260,11 @@ static HRESULT WINAPI IXACT3EngineImpl_RegisterNotification(IXACT3Engine *iface,
|
||||
XACT3EngineImpl *This = impl_from_IXACT3Engine(iface);
|
||||
FACTNotificationDescription fdesc;
|
||||
|
||||
@ -44,7 +44,7 @@ index e3b6e32cd5a..51826e81773 100644
|
||||
fdesc.pvContext = This;
|
||||
return FACTAudioEngine_RegisterNotification(This->fact_engine, &fdesc);
|
||||
}
|
||||
@@ -1147,6 +1152,8 @@ static HRESULT WINAPI IXACT3EngineImpl_UnRegisterNotification(IXACT3Engine *ifac
|
||||
@@ -1273,6 +1278,8 @@ static HRESULT WINAPI IXACT3EngineImpl_UnRegisterNotification(IXACT3Engine *ifac
|
||||
TRACE("(%p)->(%p)\n", This, pNotificationDesc);
|
||||
|
||||
unwrap_notificationdesc(&fdesc, pNotificationDesc);
|
||||
@ -54,5 +54,5 @@ index e3b6e32cd5a..51826e81773 100644
|
||||
return FACTAudioEngine_UnRegisterNotification(This->fact_engine, &fdesc);
|
||||
}
|
||||
--
|
||||
2.29.2
|
||||
2.30.2
|
||||
|
||||
|
@ -37,7 +37,7 @@ index 5bcd8a6202c..99e4bd19049 100644
|
||||
+ fakeParms.offset = streamingParams.offset;
|
||||
+ fakeParms.packetSize = streamingParams.packetSize;
|
||||
+
|
||||
+ fact_wavebank.dwFlagsAndDuration = entry.u.dwFlagsAndDuration;
|
||||
+ fact_wavebank.dwFlagsAndDuration = entry.dwFlagsAndDuration;
|
||||
+ fact_wavebank.Format.dwValue = entry.Format.dwValue;
|
||||
+ fact_wavebank.PlayRegion.dwOffset = entry.PlayRegion.dwOffset;
|
||||
+ fact_wavebank.PlayRegion.dwLength = entry.PlayRegion.dwLength;
|
||||
|
@ -25,7 +25,7 @@ index 99e4bd19049..e6c3863b9ee 100644
|
||||
+ TRACE("(%p)->(0x%08x, %p, %p, %p, %d, %d, %p)\n", This, dwFlags, &entry, pdwSeekTable,
|
||||
+ pbWaveData, dwPlayOffset, nLoopCount, ppWave);
|
||||
+
|
||||
+ fact_wavebank.dwFlagsAndDuration = entry.u.dwFlagsAndDuration;
|
||||
+ fact_wavebank.dwFlagsAndDuration = entry.dwFlagsAndDuration;
|
||||
+ fact_wavebank.Format.dwValue = entry.Format.dwValue;
|
||||
+ fact_wavebank.PlayRegion.dwOffset = entry.PlayRegion.dwOffset;
|
||||
+ fact_wavebank.PlayRegion.dwLength = entry.PlayRegion.dwLength;
|
||||
|
Loading…
Reference in New Issue
Block a user