Skip to content

Commit 6a58e3e

Browse files
Add more comments
1 parent 901b203 commit 6a58e3e

File tree

4 files changed

+27
-7
lines changed

4 files changed

+27
-7
lines changed

Runtime/MediaController/Core/BcpMessageHandler.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ public interface IBcpMessageHandler
1919
public void Handle(BcpMessage message);
2020
}
2121

22+
/// <summary>
23+
/// Abstract base for all message handlers. Implementations parse and provide a received event
24+
/// for a specific type of message. Some messages are only sent by MPF if the media controller
25+
/// previously requested them using their monitoring category. This is handled dynamically by
26+
/// sending these requests when the first listener is added to the received event and canceling
27+
/// them when the last listener is removed.
28+
/// </summary>
29+
/// <typeparam name="T">The type of message to handle</typeparam>
2230
public abstract class BcpMessageHandler<T> : IBcpMessageHandler
2331
where T : EventArgs
2432
{

Runtime/MediaController/Core/BcpMessageHandlers.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727

2828
namespace VisualPinball.Engine.Mpf.Unity.MediaController
2929
{
30+
/// <summary>
31+
/// Central hub for accessing all message handlers.
32+
/// </summary>
3033
public class BcpMessageHandlers
3134
{
3235
public BcpMessageHandlers(BcpInterface bcpInterface)

Runtime/MediaController/Core/BcpServer.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ public enum BcpConnectionState
2828
Disconnecting,
2929
};
3030

31+
/// <summary>
32+
/// Sends and receives <c>BcpMessage</c> objects via TCP
33+
/// </summary>
3134
public class BcpServer : IDisposable
3235
{
3336
public event EventHandler<StateChangedEventArgs<BcpConnectionState>> StateChanged;

Runtime/MediaController/Core/MpfEventRequester.cs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,20 @@
1414

1515
namespace VisualPinball.Engine.Mpf.Unity.MediaController
1616
{
17-
public class MpfEventRequester<TEvent>
17+
/// <summary>
18+
/// Used to request certain categories of messages to be sent from MPF. The categories are eiter
19+
/// <c>MonitoringCategory</c> for various BCP messages or <c>string</c> to request arbitrary
20+
/// MPF events to be sent as 'trigger' messages whenever they occur.
21+
/// </summary>
22+
/// <typeparam name="T">The type of each message category</typeparam>
23+
public class MpfEventRequester<T>
1824
{
19-
public delegate ISentMessage CreateMessage(TEvent @event);
25+
public delegate ISentMessage CreateMessage(T @event);
2026

2127
private readonly BcpInterface _bcpInterface;
2228
private readonly CreateMessage _createStartListeningMessage;
2329
private readonly CreateMessage _createStopListeningMessage;
24-
private readonly Dictionary<TEvent, HashSet<object>> _listeners = new();
30+
private readonly Dictionary<T, HashSet<object>> _listeners = new();
2531
private bool _canSendMonitoringRequests = false;
2632
private bool CanSendMonitoringRequests
2733
{
@@ -55,7 +61,7 @@ CreateMessage createStopListeningMessage
5561
_createStopListeningMessage = createStopListeningMessage;
5662
}
5763

58-
public void AddListener(object listener, TEvent @event)
64+
public void AddListener(object listener, T @event)
5965
{
6066
if (_listeners.TryAdd(@event, new HashSet<object> { listener }))
6167
{
@@ -69,7 +75,7 @@ public void AddListener(object listener, TEvent @event)
6975
);
7076
}
7177

72-
public void RemoveListener(object listener, TEvent @event)
78+
public void RemoveListener(object listener, T @event)
7379
{
7480
if (
7581
_listeners.TryGetValue(@event, out var listenersForThisEvent)
@@ -89,13 +95,13 @@ public void RemoveListener(object listener, TEvent @event)
8995
);
9096
}
9197

92-
private void SendStartMonitoringRequest(TEvent @event)
98+
private void SendStartMonitoringRequest(T @event)
9399
{
94100
var startListeningMsg = _createStartListeningMessage(@event);
95101
_bcpInterface.EnqueueMessage(startListeningMsg);
96102
}
97103

98-
private void SendStopMonitoringRequest(TEvent @event)
104+
private void SendStopMonitoringRequest(T @event)
99105
{
100106
var stopListeningMsg = _createStopListeningMessage(@event);
101107
_bcpInterface.EnqueueMessage(stopListeningMsg);

0 commit comments

Comments
 (0)