예제 #1
0
        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}");
 }
예제 #4
0
 /// <inheritdoc />
 public void MessageNoEventHandler(IStreamDeckEventMessage message, ESDSDKEventType eventType)
 {
 }
예제 #5
0
 /// <inheritdoc />
 public void MessageUnknownEventType(IStreamDeckEventMessage message, string rawMessage)
 {
 }