mirror of
https://github.com/Droid-Deck/DroidDeck.git
synced 2026-11-11 19:11:08 +00:00
fix: skip DirectAudio setup for Proton queries (#1044)
This commit is contained in:
1 parent
3c5e95afa8
commit
cffcbaae4a
2 files changed
+28
-3
No files matched your search
@@ -244,6 +244,10 @@ bl_vacdiag() {
|
||||
|
||||
BL_DIRECTAUDIO_SETUP = """
|
||||
bl_directaudio() {
|
||||
case "${verb:-}" in
|
||||
run|waitforexitandrun|runinprefix) ;;
|
||||
*) return 0 ;;
|
||||
esac
|
||||
base=$1
|
||||
[ -n "${BL_DIRECTAUDIO:-}" ] || return 0
|
||||
[ -d "$BL_DIRECTAUDIO" ] || return 0
|
||||
|
||||
@@ -849,12 +849,12 @@ class DirectAudioPrefixTest(unittest.TestCase):
|
||||
(self.windows / folder).mkdir(parents=True)
|
||||
self.reg = self.compat / "pfx/user.reg"
|
||||
|
||||
def run_setup(self):
|
||||
script = COMPAT["BL_DIRECTAUDIO_SETUP"] + '\nbl_directaudio "$1"\necho "WINEDLLPATH=$WINEDLLPATH"\necho "WINE_AUDIO_DRIVER=${WINE_AUDIO_DRIVER:-}"\n'
|
||||
def run_setup(self, verb="waitforexitandrun"):
|
||||
script = COMPAT["BL_DIRECTAUDIO_SETUP"] + '\nverb=$2\nbl_directaudio "$1"\necho "WINEDLLPATH=$WINEDLLPATH"\necho "WINE_AUDIO_DRIVER=${WINE_AUDIO_DRIVER:-}"\n'
|
||||
env = dict(os.environ, BL_DIRECTAUDIO=str(self.sets), STEAM_COMPAT_DATA_PATH=str(self.compat))
|
||||
env.pop("WINEDLLPATH", None)
|
||||
env.pop("WINE_AUDIO_DRIVER", None)
|
||||
return subprocess.run(["bash", "-c", script, "bash", str(self.tool)], env=env, capture_output=True, text=True, check=True)
|
||||
return subprocess.run(["bash", "-c", script, "bash", str(self.tool), verb], env=env, capture_output=True, text=True, check=True)
|
||||
|
||||
def audio_values(self):
|
||||
found, current = [], None
|
||||
@@ -869,6 +869,27 @@ class DirectAudioPrefixTest(unittest.TestCase):
|
||||
path = self.windows / folder / "winedirectaudio.drv"
|
||||
return os.readlink(path) if path.is_symlink() else None
|
||||
|
||||
def test_non_launch_verbs_preserve_audio_configuration(self):
|
||||
for verb in ("getcompatpath", "getnativepath", "destroyprefix"):
|
||||
with self.subTest(verb=verb):
|
||||
self.reg.write_text('WINE REGISTRY Version 2\n\n[Software\\\\Wine\\\\Drivers] 1\n"Audio"="pulse"\n')
|
||||
before = self.reg.read_bytes()
|
||||
result = self.run_setup(verb)
|
||||
self.assertEqual(self.reg.read_bytes(), before)
|
||||
self.assertIsNone(self.link("system32"))
|
||||
self.assertIsNone(self.link("syswow64"))
|
||||
self.assertIn("WINEDLLPATH=\n", result.stdout)
|
||||
self.assertIn("WINE_AUDIO_DRIVER=\n", result.stdout)
|
||||
|
||||
def test_other_windows_launch_verbs_still_set_up_audio(self):
|
||||
self.reg.write_text("WINE REGISTRY Version 2\n")
|
||||
for verb in ("run", "runinprefix"):
|
||||
with self.subTest(verb=verb):
|
||||
result = self.run_setup(verb)
|
||||
self.assertIn("DirectAudio ready", result.stderr)
|
||||
self.assertIn("WINE_AUDIO_DRIVER=directaudio,pulse\n", result.stdout)
|
||||
self.assertEqual(self.link("system32"), str(self.audio / "lib/wine/aarch64-windows/winedirectaudio.drv"))
|
||||
|
||||
def test_the_driver_is_placed_and_selected_the_way_wine_reads_it(self):
|
||||
self.reg.write_text("WINE REGISTRY Version 2\n;; All keys relative to \\\\User\\\\S-1-5-21-0-0-0-1000\n\n#arch=win64\n")
|
||||
result = self.run_setup()
|
||||
|
||||
Reference in new issue
Block a user