1414
1515namespace 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