internal DynamicExecutor GetDynamicExecutorByMetadata(InputListenerMetadata mtd) { var executor = mtd.Parent; var guid = executor.ID.MetadataID; return(dynExecutors.FirstOrDefault(j => j.GUID == guid)); }
private System.Collections.ObjectModel.ReadOnlyCollection <InputListenerMetadata> CreateDynamicExecutorInfo() { var lId = ListenerID; InputListenerMetadata roote = new InputListenerMetadata(new InputListenerMetadataID(lId, ExecutorWindow_ListenerId), "Dynamic Executors", null, false); for (int i = 0; i < ExecutorWindow_MaxExecutors; i++) { var id = new InputListenerMetadataID(lId, executorIds[i]); InputListenerMetadata executorRoot = new InputListenerMetadata(id, "Current Executor " + i.ToString(), roote, false); executorRoot.AddChild(new InputListenerMetadata(new InputListenerMetadataID(id.ListenerID, "Fader"), "Fader", executorRoot)); executorRoot.AddChild(new InputListenerMetadata(new InputListenerMetadataID(id.ListenerID, "Go"), "Go", executorRoot)); executorRoot.AddChild(new InputListenerMetadata(new InputListenerMetadataID(id.ListenerID, "Stop"), "Stop", executorRoot)); executorRoot.AddChild(new InputListenerMetadata(new InputListenerMetadataID(id.ListenerID, "GoStop"), "Go / Stop", executorRoot)); executorRoot.AddChild(new InputListenerMetadata(new InputListenerMetadataID(id.ListenerID, "Pause"), "Pause", executorRoot)); executorRoot.AddChild(new InputListenerMetadata(new InputListenerMetadataID(id.ListenerID, "Back"), "Back", executorRoot)); executorRoot.AddChild(new InputListenerMetadata(new InputListenerMetadataID(id.ListenerID, "PauseBack"), "Pause / Back", executorRoot)); executorRoot.AddChild(new InputListenerMetadata(new InputListenerMetadataID(id.ListenerID, "Select"), "Select", executorRoot)); executorRoot.AddChild(new InputListenerMetadata(new InputListenerMetadataID(id.ListenerID, "Flash"), "Flash", executorRoot)); roote.AddChild(executorRoot); } roote.AddChild(new InputListenerMetadata(new InputListenerMetadataID(lId, ExecutorWindow_PGDn), "Page Down", roote, true)); roote.AddChild(new InputListenerMetadata(new InputListenerMetadataID(lId, ExecutorWindow_PGUp), "Page Up", roote, true)); roote.AddChild(new InputListenerMetadata(new InputListenerMetadataID(lId, GrandMasterValue), "Grandmaster", roote, true)); roote.AddChild(new InputListenerMetadata(new InputListenerMetadataID(lId, ModifierKeyValue), "Modifier Key", roote, true)); return(new List <InputListenerMetadata> { roote }.AsReadOnly()); }
public bool CanAttachInputChannel(InputChannelMetadata c, InputListenerMetadata meta) { if (!meta.ID.ListenerID.Equals(ListenerID)) { return(false); // check if metadata belongs to me } var executor = meta.Parent; /* Meta should be one of Fader, Go,Stop,GoStop,Pause,Back,PauseBack,Select,Flash */ if (meta.ID.MetadataID == ExecutorWindow_PGDn || meta.ID.MetadataID == ExecutorWindow_PGUp) { return(c.ChannelType == EInputChannelType.BUTTON); } if (meta.ID.MetadataID == GrandMasterValue) { return(c.ChannelType == EInputChannelType.RANGE); } if (!executorIds.Contains(executor.ID.MetadataID)) { return(false); } switch (meta.Name) { case "Fader": return(c.ChannelType == EInputChannelType.RANGE); default: return(c.ChannelType == EInputChannelType.BUTTON); } }
public InputLayerChangedCallback AttachInputChannel(InputChannelMetadata c, InputListenerMetadata meta) { if (meta.ID.MetadataID == ExecutorWindow_PGDn) { return (j, newValue) => { if (object.Equals(newValue, 1.0)) { ExecutorWindowPgUp(false); return true; } return false; } } ; if (meta.ID.MetadataID == ExecutorWindow_PGUp) { return (j, newValue) => { if (object.Equals(newValue, 1.0)) { ExecutorWindowPgUp(true); return true; } return false; } } ; if (meta.ID.MetadataID == ModifierKeyValue) { return (j, newValue) => { if (object.Equals(newValue, 1.0)) { modifierKey = true; return true; } modifierKey = false; return false; } } ; if (meta.ID.MetadataID == GrandMasterValue) { return (j, newValue) => { if (ConnectionManager.getInstance().Connected) { ICommand cmd = ConnectionManager.getInstance().GuiSession.getCommandInstance("Kernel", "setGrandMaster"); cmd.execute(new object[] { newValue }); return true; } return false; } } ; var executor = meta.Parent; var dynExc = dynExecutors.FirstOrDefault(j => j.GUID == executor.ID.MetadataID); if (dynExc == null) { return(null); } return(dynExc.AttachInputChannel(c, meta)); }
public InputLayerChangedCallback AttachInputChannel(InputChannelMetadata c, InputListenerMetadata meta) { string metadataID = meta.ID.MetadataID; if (c.ChannelType == EInputChannelType.BUTTON) { switch (metadataID) { case "Go": return((id, newValue) => { if (assignedExecutor != null && object.Equals(newValue, 1.0)) { assignedExecutor.go(); return true; } return false; }); case "Stop": return((id, newValue) => { if (assignedExecutor != null && object.Equals(newValue, 1.0)) { assignedExecutor.stop(); return true; } return false; }); case "GoStop": return((id, newValue) => { if (assignedExecutor != null) { if (object.Equals(newValue, 1.0)) { assignedExecutor.go(); return true; } else if (object.Equals(newValue, 0.0)) { assignedExecutor.stop(); return true; } } return false; }); case "Back": return((id, newValue) => { if (assignedExecutor != null && object.Equals(newValue, 1.0)) { assignedExecutor.goBack(); return true; } return false; }); case "Pause": return((id, newValue) => { if (assignedExecutor != null && object.Equals(newValue, 1.0)) { assignedExecutor.go(); return true; } return false; }); case "PauseBack": return((id, newValue) => { if (assignedExecutor != null && object.Equals(newValue, 1.0)) { assignedExecutor.pauseBack(); return true; } return false; }); case "Flash": return((id, newValue) => { if (assignedExecutor != null) { if (object.Equals(newValue, 1.0)) { assignedExecutor.flash(true); return true; } else if (object.Equals(newValue, 0.0)) { assignedExecutor.flash(false); return true; } } return false; }); case "Select": return((id, newValue) => { if (assignedExecutor != null) { if (object.Equals(newValue, 1.0)) { if (WindowManager.getInstance().StoreActive) { if (IsModifierKeyPressed() || assignedExecutor.HasOption(EExecutorOptions.SHOW__PROGRAMMER__FILTER)) { ProgrammerFilterPredicate predicate; if (ProgrammerFilter.ShowFilter(out predicate)) { assignedExecutor.storeProgrammerAtExecutor(assignedExecutor.SceneCount, predicate); } return false; } else { assignedExecutor.storeProgrammerAtExecutor(assignedExecutor.SceneCount, null); } WindowManager.getInstance().ElementStored(); } else { SceneListWindowManager.getInstance().openSceneList(assignedExecutor.SceneList, IsModifierKeyPressed()); return true; } } } return false; }); default: return(null); } } else if (c.ChannelType == EInputChannelType.RANGE) { if (metadataID == "Fader") { return (id, newValue) => { if (assignedExecutor != null) { if (Tolerance <= 0 || Math.Abs((double)assignedExecutor.FaderValue - (double)newValue) < Tolerance) //toleranz ggf. abschaltbar machen pro dynamic { assignedExecutor.FaderValue = (double)newValue; } return true; } return false; } } ; else if (metadataID == "Timing") { return (id, newValue) => { if (assignedExecutor != null) { //FIXME return true; } return false; } } ; } return(null); }
public void DetachInputChannel(InputChannelMetadata c, InputListenerMetadata meta) { /* Nothing to do here */ }