Skip to content

Commit 94e1dd8

Browse files
committed
deps: bump pinmame-dotnet. Add disable audio
1 parent b858a9e commit 94e1dd8

File tree

3 files changed

+49
-22
lines changed

3 files changed

+49
-22
lines changed

VisualPinball.Engine.PinMAME.Unity/Editor/PinMameGamelogicEngineInspector.cs

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,11 @@ public class PinMameGamelogicEngineInspector : UnityEditor.Editor
4848
private bool _toggleStartup = true;
4949

5050
private SerializedProperty _disableMechsProperty;
51-
private SerializedProperty _solenoidDelayProperty;
51+
private SerializedProperty _solenoidDelayProperty;
52+
53+
private bool _toggleDebug = true;
54+
55+
private SerializedProperty _disableAudioProperty;
5256

5357
private void OnEnable()
5458
{
@@ -91,6 +95,7 @@ private void OnEnable()
9195

9296
_solenoidDelayProperty = serializedObject.FindProperty(nameof(_gle.SolenoidDelay));
9397
_disableMechsProperty = serializedObject.FindProperty(nameof(_gle.DisableMechs));
98+
_disableAudioProperty = serializedObject.FindProperty(nameof(_gle.DisableAudio));
9499
}
95100

96101
public override void OnInspectorGUI()
@@ -159,11 +164,31 @@ public override void OnInspectorGUI()
159164
if (EditorGUI.EndChangeCheck())
160165
{
161166
serializedObject.ApplyModifiedProperties();
162-
}
167+
}
163168

164169
EditorGUI.indentLevel--;
165170
}
166171

172+
EditorGUILayout.EndFoldoutHeaderGroup();
173+
174+
if (_toggleDebug = EditorGUILayout.BeginFoldoutHeaderGroup(_toggleStartup, "Debug"))
175+
{
176+
EditorGUI.indentLevel++;
177+
178+
EditorGUI.BeginChangeCheck();
179+
180+
EditorGUILayout.PropertyField(_disableAudioProperty, new GUIContent("Disable Audio"));
181+
182+
if (EditorGUI.EndChangeCheck())
183+
{
184+
serializedObject.ApplyModifiedProperties();
185+
}
186+
187+
EditorGUI.indentLevel--;
188+
}
189+
190+
EditorGUILayout.EndFoldoutHeaderGroup();
191+
167192
GUILayout.EndVertical();
168193

169194
EditorGUILayout.Space();

VisualPinball.Engine.PinMAME.Unity/Runtime/PinMameGamelogicEngine.cs

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,11 @@ public class PinMameGamelogicEngine : MonoBehaviour, IGamelogicEngine
5252

5353
[Min(0f)]
5454
[Tooltip("Delay after startup to listen for solenoid events.")]
55-
public float SolenoidDelay = 0;
56-
55+
public float SolenoidDelay = 0;
56+
57+
[Tooltip("Disable audio")]
58+
public bool DisableAudio = false;
59+
5760
public GamelogicEngineSwitch[] AvailableSwitches {
5861
get {
5962
UpdateCaches();
@@ -138,14 +141,18 @@ public void OnInit(Player player, TableApi tableApi, BallManager ballManager)
138141
_pinMame = PinMame.PinMame.Instance(AudioSettings.outputSampleRate);
139142

140143
_pinMame.SetHandleKeyboard(false);
141-
_pinMame.SetHandleMechanics(false);
144+
_pinMame.SetHandleMechanics(DisableMechs ? 0 : 1);
142145

143146
_pinMame.OnGameStarted += OnGameStarted;
144147
_pinMame.OnGameEnded += OnGameEnded;
145148
_pinMame.OnDisplayAvailable += OnDisplayAvailable;
146149
_pinMame.OnDisplayUpdated += OnDisplayUpdated;
147-
_pinMame.OnAudioAvailable += OnAudioAvailable;
148-
_pinMame.OnAudioUpdated += OnAudioUpdated;
150+
151+
if (!DisableAudio) {
152+
_pinMame.OnAudioAvailable += OnAudioAvailable;
153+
_pinMame.OnAudioUpdated += OnAudioUpdated;
154+
}
155+
149156
_pinMame.OnMechAvailable += OnMechAvailable;
150157
_pinMame.OnMechUpdated += OnMechUpdated;
151158
_pinMame.OnSolenoidUpdated += OnSolenoidUpdated;
@@ -166,16 +173,6 @@ private void OnGameStarted()
166173
Logger.Info($"[PinMAME] Game started.");
167174
_isRunning = true;
168175

169-
if (DisableMechs)
170-
{
171-
for (int id = 0; id < 10; id++)
172-
{
173-
Logger.Info($"Disabling mech {id}");
174-
175-
_pinMame.SetMech(id, null);
176-
}
177-
}
178-
179176
SendInitialSwitches();
180177

181178
_solenoidDelayStart = DateTimeOffset.Now.ToUnixTimeMilliseconds();
@@ -498,9 +495,14 @@ public void StopGame()
498495
_pinMame.OnGameStarted -= OnGameStarted;
499496
_pinMame.OnGameEnded -= OnGameEnded;
500497
_pinMame.OnDisplayAvailable -= OnDisplayAvailable;
501-
_pinMame.OnDisplayUpdated -= OnDisplayUpdated;
502-
_pinMame.OnAudioAvailable -= OnAudioAvailable;
503-
_pinMame.OnAudioUpdated -= OnAudioUpdated;
498+
_pinMame.OnDisplayUpdated -= OnDisplayUpdated;
499+
500+
if (!DisableAudio)
501+
{
502+
_pinMame.OnAudioAvailable -= OnAudioAvailable;
503+
_pinMame.OnAudioUpdated -= OnAudioUpdated;
504+
}
505+
504506
_pinMame.OnMechAvailable -= OnMechAvailable;
505507
_pinMame.OnMechUpdated -= OnMechUpdated;
506508
_pinMame.OnSolenoidUpdated -= OnSolenoidUpdated;

VisualPinball.Engine.PinMAME/VisualPinball.Engine.PinMAME.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
</PropertyGroup>
1717

1818
<ItemGroup>
19-
<PackageReference Include="PinMame" Version="0.1.0-preview.43" />
20-
<PackageReference Include="PinMame.Native" Version="3.4.0-preview.303" />
19+
<PackageReference Include="PinMame" Version="0.1.0-preview.44" />
20+
<PackageReference Include="PinMame.Native" Version="3.4.0-preview.307" />
2121
<PackageReference Include="VisualPinball.Engine" Version="0.0.1-preview.70" />
2222
</ItemGroup>
2323

0 commit comments

Comments
 (0)