diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2019-10-28 07:45:16 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2019-10-28 07:45:44 +0100 |
commit | 69c9a4136d2decc10f97ad49189070d8e4708110 (patch) | |
tree | b4886667df3187e27d40f358217e0632da5bb9c7 /proto-wine/ftnoir_protocol_wine.cpp | |
parent | 2f07cc9958f31e405db7498989e90755234c7c47 (diff) |
proto/wine: implement more proton knobs
Reported by: @jp7677
Issue: #996
Diffstat (limited to 'proto-wine/ftnoir_protocol_wine.cpp')
-rw-r--r-- | proto-wine/ftnoir_protocol_wine.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/proto-wine/ftnoir_protocol_wine.cpp b/proto-wine/ftnoir_protocol_wine.cpp index 719da51f..ae7c6c31 100644 --- a/proto-wine/ftnoir_protocol_wine.cpp +++ b/proto-wine/ftnoir_protocol_wine.cpp @@ -57,15 +57,26 @@ module_status wine::initialize() static const QString library_path(OPENTRACK_BASE_PATH + OPENTRACK_LIBRARY_PATH); QString wine_path = "wine"; + auto env = QProcessEnvironment::systemEnvironment(); + if (s.variant_proton) { - QProcessEnvironment make_steam_environ(const QString& proton_version); + if (s.proton_appid == 0) + return error(tr("Must specify application id for Proton (Steam Play)")); + + QProcessEnvironment make_steam_environ(const QString& proton_version, int appid); QString proton_path(const QString& proton_version); wine_path = proton_path(s.proton_version); - wrapper.setProcessEnvironment(make_steam_environ(s.proton_version)); + env = make_steam_environ(s.proton_version, s.proton_appid); } + if (s.esync) + env.insert("WINEESYNC", "1"); + if (s.fsync) + env.insert("WINEFSYNC", "1"); + + wrapper.setProcessEnvironment(env); wrapper.setWorkingDirectory(OPENTRACK_BASE_PATH); wrapper.start(wine_path, { library_path + "opentrack-wrapper-wine.exe.so" }); #endif |