Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prevent WASM install when MSFS is running #1873

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions ProjectMessages/ProjectMessages.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

62 changes: 34 additions & 28 deletions ProjectMessages/ProjectMessages.de.resx
Original file line number Diff line number Diff line change
Expand Up @@ -196,8 +196,8 @@ Alle ungespeicherten Änderungen gehen dabei verloren.</value>
<data name="Offset" xml:space="preserve">
<value>Offset</value>
</data>
<data name="uiLabelDoubleClickToAddConfig" xml:space="preserve">
<value>Doppelklicken für neuen Eintrag...</value>
<data name="Label_Precondition_ConfigItem" xml:space="preserve">
<value>Config Eintrag</value>
</data>
<data name="DefaultFileName" xml:space="preserve">
<value>neu</value>
Expand All @@ -221,18 +221,18 @@ Möchten Sie die Änderungen jetzt speichern?</value>
<data name="ConfigErrorException_WritingDisplay" xml:space="preserve">
<value>Fehler beim Schreiben von Werten auf das Display Modul. Bitte prüfen Sie Ihre Konfigurationsdatei.</value>
</data>
<data name="Please_Choose" xml:space="preserve">
<value>Bitte wählen</value>
<data name="edit" xml:space="preserve">
<value>Bearbeiten</value>
</data>
<data name="Label_Precondition_ArcazePin" xml:space="preserve">
<value>Pin</value>
</data>
<data name="Label_Precondition_ConfigItem" xml:space="preserve">
<value>Config Eintrag</value>
</data>
<data name="Label_Precondition_None" xml:space="preserve">
<value>Keine</value>
</data>
<data name="Please_Choose" xml:space="preserve">
<value>Bitte wählen</value>
</data>
<data name="Please_select_a_pin" xml:space="preserve">
<value>Bitte wählen Sie einen Pin.</value>
</data>
Expand All @@ -242,6 +242,9 @@ Möchten Sie die Änderungen jetzt speichern?</value>
<data name="uiException_ConfigItemNotFound" xml:space="preserve">
<value>Config object ist null.</value>
</data>
<data name="uiLabelDoubleClickToAddConfig" xml:space="preserve">
<value>Doppelklicken für neuen Eintrag...</value>
</data>
<data name="uiMessageConfigLineNotSavedYet" xml:space="preserve">
<value>Der Zeile wurde noch nicht gespeichert und kann daher nicht bearbeitet werden.
Legen Sie zuerst den Beschreibungstext fest und editieren Sie dann den Eintrag.</value>
Expand Down Expand Up @@ -278,9 +281,6 @@ Führen Sie die Konfiguration jetzt unbedingt durch.</value>
<data name="uiMessagePreconditionNotSatisfied" xml:space="preserve">
<value>Vorbedingung ist nicht erfüllt.</value>
</data>
<data name="edit" xml:space="preserve">
<value>Bearbeiten</value>
</data>
<data name="WebsiteUrlHelp" xml:space="preserve">
<value>https://www.mobiflight.com/de/dokumentation/software.html</value>
</data>
Expand All @@ -293,6 +293,12 @@ Führen Sie die Konfiguration jetzt unbedingt durch.</value>
<data name="uiMessageNoOrphanedSerialsFound" xml:space="preserve">
<value>Es sind keine verwaisten Serial-Einträge in der aktuellen Konfiguration enthalten.</value>
</data>
<data name="fsuipcStatus" xml:space="preserve">
<value>FSUIPC Status</value>
</data>
<data name="xpuipcStatus" xml:space="preserve">
<value>XPUIPC Status</value>
</data>
<data name="uiMessageCmdParamConfigFileDoesNotExist" xml:space="preserve">
<value>Die als Parameter übergebene Config-Datei existiert nicht.</value>
</data>
Expand All @@ -314,9 +320,6 @@ Führen Sie die Konfiguration jetzt unbedingt durch.</value>
<data name="uiMessageSelectedModuleDoesNotContainAnyInputDevices" xml:space="preserve">
<value>Das ausgewählte Modul enthält keine Eingabegeräte. Möchtest Du welche konfigurieren?</value>
</data>
<data name="xpuipcStatus" xml:space="preserve">
<value>XPUIPC Status</value>
</data>
<data name="uiMessageNoUpdateNecessary" xml:space="preserve">
<value>Du hast die aktuellste Version {0}. Kein Update notwendig.</value>
</data>
Expand Down Expand Up @@ -493,6 +496,14 @@ Respective input actions won't work until they are connected and you have restar
<value>Diese Änderung benötigt einen Neustart von MobiFlight.</value>
<comment>This change will require a restart of MobiFlight to become effective.</comment>
</data>
<data name="uiI2CPinInUse" xml:space="preserve">
<value>{0} braucht Pin {1} welcher bereits verwendet wird. Lösche die Zuordnung und versuche es mit {0} nochmal.</value>
<comment>{0} requires the use of pin {1} which is already assigned to another module. Remove the pin assignment from the other module then try adding {0} again.</comment>
</data>
<data name="uiI2CPinInUseHint" xml:space="preserve">
<value>I2C Pin in Verwendung</value>
<comment>I2C pin in use</comment>
</data>
<data name="uiMessageFirmwareResetComplete" xml:space="preserve">
<value>{0} ({1}) Firmware Reset fertig. ({2}/{3})</value>
</data>
Expand All @@ -508,17 +519,6 @@ Respective input actions won't work until they are connected and you have restar
<data name="uiMessageFirmwareUpdateTimeout" xml:space="preserve">
<value>{0} ({1}) Firmware Update time out ({2}/{3})</value>
</data>
<data name="fsuipcStatus" xml:space="preserve">
<value>FSUIPC Status</value>
</data>
<data name="uiI2CPinInUse" xml:space="preserve">
<value>{0} braucht Pin {1} welcher bereits verwendet wird. Lösche die Zuordnung und versuche es mit {0} nochmal.</value>
<comment>{0} requires the use of pin {1} which is already assigned to another module. Remove the pin assignment from the other module then try adding {0} again.</comment>
</data>
<data name="uiI2CPinInUseHint" xml:space="preserve">
<value>I2C Pin in Verwendung</value>
<comment>I2C pin in use</comment>
</data>
<data name="uiMessageFirmwareResetSuccessful" xml:space="preserve">
<value>Der Reset Deines Boards war erfolgreich.</value>
</data>
Expand Down Expand Up @@ -634,10 +634,6 @@ That midiboard cannot be used until other application is terminated and MobiFlig
<value>Doppelte x-Werte sind nicht gültig.</value>
<comment>Duplicate x values are not valid</comment>
</data>
<data name="uiMessageDragDropNotAllowed" xml:space="preserve">
<value>Drag and Drop ist nicht verfügbar, wenn die Liste sortiert ist.</value>
<comment>Drag and Drop is not available when list is sorted.</comment>
</data>
<data name="uiMessageHubHopAutoUpdate" xml:space="preserve">
<value>Deine HubHop Presets sind älter als 7 Tage.

Expand All @@ -648,6 +644,10 @@ Möchtest Du sie aktualisieren?</value>
<value>HubHop Preset Update</value>
<comment>HubHop Preset Update</comment>
</data>
<data name="uiMessageDragDropNotAllowed" xml:space="preserve">
<value>Drag and Drop ist nicht verfügbar, wenn die Liste sortiert ist.</value>
<comment>Drag and Drop is not available when list is sorted.</comment>
</data>
<data name="uiMessageOpenConfigIncompatibleTypeHint" xml:space="preserve">
<value>Inkompatible Konfiguration</value>
</data>
Expand Down Expand Up @@ -679,4 +679,10 @@ Tip: Save the file after opening to update the associated board for future use.<
<value>Es sind nicht genug Pins frei, um die Auto-Zero Funktion zu nutzen.</value>
<comment>There are not enough pins available to use the auto-zero option.</comment>
</data>
<data name="uiMessageWasmMSFSRunning" xml:space="preserve">
<value>Das WASM Modul kann nicht installiert werden, solange Microsoft Flight Simulator läuft.


Schließe MSFS und führe die Installation erneut aus: "Extras" &gt; "Microsoft Flight Simulator" &gt; "Install WASM module".</value>
</data>
</root>
5 changes: 5 additions & 0 deletions ProjectMessages/ProjectMessages.resx
Original file line number Diff line number Diff line change
Expand Up @@ -644,4 +644,9 @@ Tip: Save the file after opening to update the associated board for future use.<
<data name="uiMessagePanelsStepperNoFreePins" xml:space="preserve">
<value>There are not enough pins available to use the auto-zero option. </value>
</data>
<data name="uiMessageWasmMSFSRunning" xml:space="preserve">
<value>The WASM module cannot be installed while Microsoft Flight Simulator is running.

Close MSFS and install the WASM module via menu "Extras" &gt; "Microsoft Flight Simulator" &gt; "Install WASM module"</value>
</data>
</root>
16 changes: 15 additions & 1 deletion UI/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ public partial class MainForm : Form
private Dictionary<string, string> AutoLoadConfigs = new Dictionary<string, string>();
public event EventHandler<string> CurrentFilenameChanged;

private bool IsMSFSRunning = false;

public string CurrentFileName {
get { return currentFileName; }
set {
Expand Down Expand Up @@ -907,6 +909,7 @@ private void ExecManager_OnSimAvailable(object sender, EventArgs e)
case FlightSimType.MSFS2020:
SimProcessDetectedToolStripMenuItem.Text = "MSFS Detected";
SimProcessDetectedToolStripMenuItem.Image = Properties.Resources.check;
IsMSFSRunning = true;
break;

case FlightSimType.FS9:
Expand Down Expand Up @@ -947,6 +950,7 @@ private void ExecManager_OnSimUnavailable(object sender, EventArgs e)

SimProcessDetectedToolStripMenuItem.Text = "No sim running.";
SimProcessDetectedToolStripMenuItem.Image = Properties.Resources.warning;
IsMSFSRunning = false;

UpdateAllConnectionIcons();
}
Expand Down Expand Up @@ -2110,7 +2114,7 @@ private void installWasmModuleToolStripMenuItem_Click(object sender, EventArgs e
InstallWasmModule();
}

private static void InstallWasmModule()
private void InstallWasmModule()
{
WasmModuleUpdater updater = new WasmModuleUpdater();
bool Is2020Different = false;
Expand Down Expand Up @@ -2143,6 +2147,16 @@ private static void InstallWasmModule()
return;
}

// Issue 1872: If the sim is running warn the user then bail
if (IsMSFSRunning)
{
MessageBox.Show(
i18n._tr("uiMessageWasmMSFSRunning"),
i18n._tr("uiMessageWasmUpdater"),
MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}

// Install for both versions
Update2020Successful = HandleWasmInstall(updater, Is2020Different, updater.CommunityFolder, "2020");
Update2024Successful = HandleWasmInstall(updater, Is2024Different, updater.CommunityFolder2024, "2024");
Expand Down