private void DispatchMessage(IStreamDeckEventMessage message, string rawMessage) { if (!Enum.TryParse <ESDSDKEventType>(message.Event, false, out var eventType)) { logger.MessageUnknownEventType(message, rawMessage); return; } if (!eventTypeInfo.TryGetValue(eventType, out var eventInfo)) { logger.MessageNoEventHandler(message, eventType); return; } if (eventInfo.DispatchActionMessage != null) { var actionUUID = ((IStreamDeckActionMessage)message).Action; var context = ((IStreamDeckContextMessage)message).Context; var actions = GetActionInstances(actionUUID, context, eventType != ESDSDKEventType.willDisappear); if (actions == null) { return; } foreach (var action in actions) { Task.Run(async() => await eventInfo.DispatchActionMessage(action, message), cancellationToken); } } else if (eventInfo.DispatchGlobalEventMessage != null) { foreach (var globalEvent in GetGlobalEvents()) { Task.Run(async() => await eventInfo.DispatchGlobalEventMessage(globalEvent, message), cancellationToken); } } }
/// <inheritdoc /> public void MessageNoEventHandler(IStreamDeckEventMessage message, ESDSDKEventType eventType) { Log($"Message event type is not yet handled by the StreamDeck.NET library: {eventType}"); }
/// <inheritdoc /> public void MessageUnknownEventType(IStreamDeckEventMessage message, string rawMessage) { Log($"Message event type is unknown: {message.Event}, raw message: {rawMessage}"); }
/// <inheritdoc /> public void MessageNoEventHandler(IStreamDeckEventMessage message, ESDSDKEventType eventType) { }
/// <inheritdoc /> public void MessageUnknownEventType(IStreamDeckEventMessage message, string rawMessage) { }