[RFC PATCH 0/5] XAudio PE conversion.

Rémi Bernon rbernon at codeweavers.com
Wed Jun 23 07:37:22 CDT 2021


I'm sending this as an RFC for now as there's been some discussion
already about how to handle PE dependencies. I think the approach I'm
taking here, by including FAudio headers directly in the source and
loading it dynamically is the easiest way, and the least disruptive for
building and running Wine, if not the cleanest. All the other solutions
have higher friction, either on third party packages, or on the system
distribution.

Upstream FAudio now has a pure Win32 backend, which makes it much easier
to build as PE. This was never a requirement, and this series should
work too with the SDL2 backend, as it tries to load Wine Mono SDL2 and
FAudio as a fallback after trying from the prefix system libraries.

It could help the transition though, and is going to be required anyway
to support WMA decoding. Right now, with or without the Win32 backend,
this would also introduce a functional regression as although supported
by the new FAudio Win32 backend, it also depends on the WMA decoder MF
transform to be implemented, which isn't the case yet in Wine.

Cheers,

Rémi Bernon (5):
  xactengine3_7: Move sources to xaudio2_7.
  xaudio2_7: Load FAudio dynamically.
  xaudio2_7: Import FAudio headers for private use.
  xaudio2_7: Build with msvcrt.
  xaudio2_7: Use msvcrt allocation functions.

 configure.ac                                  |   55 -
 dlls/x3daudio1_0/Makefile.in                  |    4 +-
 dlls/x3daudio1_1/Makefile.in                  |    4 +-
 dlls/x3daudio1_2/Makefile.in                  |    4 +-
 dlls/x3daudio1_3/Makefile.in                  |    4 +-
 dlls/x3daudio1_4/Makefile.in                  |    4 +-
 dlls/x3daudio1_5/Makefile.in                  |    4 +-
 dlls/x3daudio1_6/Makefile.in                  |    4 +-
 dlls/x3daudio1_7/Makefile.in                  |    4 +-
 dlls/xactengine2_0/Makefile.in                |    6 +-
 dlls/xactengine2_4/Makefile.in                |    6 +-
 dlls/xactengine2_7/Makefile.in                |    6 +-
 dlls/xactengine2_9/Makefile.in                |    6 +-
 dlls/xactengine3_0/Makefile.in                |    6 +-
 dlls/xactengine3_1/Makefile.in                |    6 +-
 dlls/xactengine3_2/Makefile.in                |    6 +-
 dlls/xactengine3_3/Makefile.in                |    6 +-
 dlls/xactengine3_4/Makefile.in                |    6 +-
 dlls/xactengine3_5/Makefile.in                |    6 +-
 dlls/xactengine3_6/Makefile.in                |    6 +-
 dlls/xactengine3_7/Makefile.in                |    5 +-
 dlls/xapofx1_1/Makefile.in                    |    4 +-
 dlls/xapofx1_2/Makefile.in                    |    4 +-
 dlls/xapofx1_3/Makefile.in                    |    4 +-
 dlls/xapofx1_4/Makefile.in                    |    4 +-
 dlls/xapofx1_5/Makefile.in                    |    4 +-
 dlls/xaudio2_0/Makefile.in                    |    4 +-
 dlls/xaudio2_1/Makefile.in                    |    4 +-
 dlls/xaudio2_2/Makefile.in                    |    4 +-
 dlls/xaudio2_3/Makefile.in                    |    4 +-
 dlls/xaudio2_4/Makefile.in                    |    4 +-
 dlls/xaudio2_5/Makefile.in                    |    4 +-
 dlls/xaudio2_6/Makefile.in                    |    4 +-
 dlls/xaudio2_7/FAudio/F3DAudio.h              |  262 ++++
 dlls/xaudio2_7/FAudio/FACT.h                  |  814 ++++++++++
 dlls/xaudio2_7/FAudio/FACT3D.h                |  127 ++
 dlls/xaudio2_7/FAudio/FAPO.h                  |  207 +++
 dlls/xaudio2_7/FAudio/FAPOBase.h              |  264 ++++
 dlls/xaudio2_7/FAudio/FAPOFX.h                |  178 +++
 dlls/xaudio2_7/FAudio/FAudio.h                | 1322 +++++++++++++++++
 dlls/xaudio2_7/FAudio/FAudioFX.h              |  308 ++++
 dlls/xaudio2_7/Makefile.in                    |    4 +-
 dlls/xaudio2_7/compat.c                       |   92 +-
 dlls/xaudio2_7/faudio.c                       |  326 ++++
 dlls/xaudio2_7/x3daudio.c                     |   35 +-
 .../xact_classes.idl                          |    0
 dlls/{xactengine3_7 => xaudio2_7}/xact_dll.c  |  182 ++-
 dlls/xaudio2_7/xapo.c                         |   29 +-
 dlls/xaudio2_7/xapofx.c                       |   21 +-
 dlls/xaudio2_7/xaudio_allocator.c             |    2 -
 dlls/xaudio2_7/xaudio_dll.c                   |  267 ++--
 dlls/xaudio2_7/xaudio_private.h               |  149 +-
 dlls/xaudio2_8/Makefile.in                    |    4 +-
 dlls/xaudio2_9/Makefile.in                    |    4 +-
 54 files changed, 4298 insertions(+), 505 deletions(-)
 create mode 100644 dlls/xaudio2_7/FAudio/F3DAudio.h
 create mode 100644 dlls/xaudio2_7/FAudio/FACT.h
 create mode 100644 dlls/xaudio2_7/FAudio/FACT3D.h
 create mode 100644 dlls/xaudio2_7/FAudio/FAPO.h
 create mode 100644 dlls/xaudio2_7/FAudio/FAPOBase.h
 create mode 100644 dlls/xaudio2_7/FAudio/FAPOFX.h
 create mode 100644 dlls/xaudio2_7/FAudio/FAudio.h
 create mode 100644 dlls/xaudio2_7/FAudio/FAudioFX.h
 create mode 100644 dlls/xaudio2_7/faudio.c
 rename dlls/{xactengine3_7 => xaudio2_7}/xact_classes.idl (100%)
 rename dlls/{xactengine3_7 => xaudio2_7}/xact_dll.c (87%)

-- 
2.31.0




More information about the wine-devel mailing list