コード例 #1
0
        private IEnumerable <IStreamDeckAction> GetActionInstances(string actionUUID, string context, bool allowCreate)
        {
            var client      = new StreamDeckClientWrapper(this, pluginUUID, context);
            var instanceKey = new ActionInstanceKey(actionUUID, context);

            if (!actionInstances.TryGetValue(instanceKey, out var instance))
            {
                if (allowCreate)
                {
                    instance = eventHandlerFactory.CreateAction(actionUUID, client);
                    actionInstances.Add(instanceKey, instance);
                    yield return(instance);
                }
            }
            else
            {
                yield return(instance);
            }


            foreach (var monitor in eventHandlerFactory.CreateEventMonitors(client))
            {
                yield return(monitor);
            }
        }
コード例 #2
0
        private IEnumerable <IStreamDeckGlobalEvent> GetGlobalEvents()
        {
            var client = new StreamDeckClientWrapper(this, pluginUUID, null);

            foreach (var globalEvent in eventHandlerFactory.CreateGlobalEventHandlers(client))
            {
                yield return(globalEvent);
            }

            foreach (var monitor in eventHandlerFactory.CreateEventMonitors(client))
            {
                yield return(monitor);
            }
        }