summaryrefslogtreecommitdiffhomepage
path: root/proto-wine/ftnoir_protocol_wine.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2019-10-28 07:45:16 +0100
committerStanislaw Halik <sthalik@misaki.pl>2019-10-28 07:45:44 +0100
commit69c9a4136d2decc10f97ad49189070d8e4708110 (patch)
treeb4886667df3187e27d40f358217e0632da5bb9c7 /proto-wine/ftnoir_protocol_wine.cpp
parent2f07cc9958f31e405db7498989e90755234c7c47 (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.cpp15
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