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); } }
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); } }