Example #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);
            }
        }
Example #2
0
        private void RemoveActionInstance(string actionUUID, string context)
        {
            var instanceKey = new ActionInstanceKey(actionUUID, context);

            if (!actionInstances.TryGetValue(instanceKey, out var action))
            {
                return;
            }

            action.Dispose();
            actionInstances.Remove(instanceKey);
        }