public override object[] GetArgumentsByKeys(string[] keys) { if (keys.Length != Arguments.Length) { return(null); } if (!int.TryParse(keys[0], out int mixerId)) { return(null); } if (!int.TryParse(keys[1], out int meBlockIndex)) { return(null); } BmdMixer mixer = MixerDatabase.Instance.GetTById(mixerId) as BmdMixer; if (mixer == null) { return(null); } if ((meBlockIndex < 0) || (meBlockIndex > 3)) { return(null); } return(new object[] { mixer, meBlockIndex }); }
protected override string getArgumentKey(int index, object value) { if (index == 0) { BmdMixer mixer = value as BmdMixer; if (mixer == null) { return("-1"); } return(mixer.ID.ToString()); } if (index == 1) { if (value == null) { return("-1"); } if (!(value is int)) { return("-1"); } return(value.ToString()); } throw new ArgumentException(); }
public override void Run(object[] argumentValues) { if (argumentValues.Length != Arguments.Length) { return; } BmdMixer mixer = argumentValues[0] as BmdMixer; if (mixer == null) { return; } if (!int.TryParse(argumentValues[1]?.ToString(), out int meBlockIndex)) { return; } if (!int.TryParse(argumentValues[2]?.ToString(), out int inputId)) { return; } setSource(mixer, meBlockIndex, inputId); }
private void connectionStateChangedHandler(BmdMixer mixer, bool oldState, bool newState) { if (InvokeRequired) { Invoke(new Action(() => connectionStateChangedHandler(mixer, oldState, newState))); return; } connectButton.Enabled = !newState; disconnectButton.Enabled = newState; }
protected override void setSource(BmdMixer mixer, int meBlockIndex, int inputId) { try { mixer.SetProgramSource(meBlockIndex, inputId); } catch { // Do something... } }
protected override void transition(BmdMixer mixer, int meBlockIndex) { try { mixer.CutTransition(meBlockIndex); } catch { // Do something... } }
protected override void validateFields() { base.validateFields(); BmdMixer bmdMixer = (BmdMixer)EditedModel; if (bmdMixer == null) { return; } bmdMixer.ValidateIpAddress(ipAddressTextbox.Text); }
protected override void writeFields() { base.writeFields(); BmdMixer bmdMixer = (BmdMixer)EditedModel; if (bmdMixer == null) { return; } bmdMixer.IpAddress = ipAddressTextbox.Text; bmdMixer.AutoReconnect = autoReconnectCheckbox.Checked; }
protected override void _run(object[] argumentObjects) { BmdMixer mixer = argumentObjects[0] as BmdMixer; if (mixer == null) { return; } if (!int.TryParse(argumentObjects[1]?.ToString(), out int meBlockIndex)) { return; } transition(mixer, meBlockIndex); }
protected override void loadData() { base.loadData(); BmdMixer bmdMixer = (BmdMixer)EditedModel; if (bmdMixer == null) { return; } ipAddressTextbox.Text = bmdMixer.IpAddress; autoReconnectCheckbox.Checked = bmdMixer.AutoReconnect; bmdMixer.ConnectionStateChanged += connectionStateChangedHandler; connectButton.Enabled = !bmdMixer.ConnectionState; disconnectButton.Enabled = bmdMixer.ConnectionState; }
protected override void _run(object[] argumentValues) { BmdMixer mixer = argumentValues[0] as BmdMixer; if (mixer == null) { return; } if (!int.TryParse(argumentValues[1]?.ToString(), out int meBlockIndex)) { return; } if (!int.TryParse(argumentValues[2]?.ToString(), out int inputId)) { return; } setSource(mixer, meBlockIndex, inputId); }
protected abstract void setSource(BmdMixer mixer, int meBlockIndex, int inputId);
protected abstract void transition(BmdMixer mixer, int meBlockIndex);