public void AddDPad(GuiDrumDPad dpad, NumericUpDown nupNoteNormal, NumericUpDown nupNoteAdv, NumericUpDown nupButtonNoteVelocityAdv, ComboBox ddlSwitchStateAdv, CheckBox chkNoteOnCheck) { m_NupNoteArray[NUM_PADS + NUM_BUTTON_STATES + (byte)dpad / 2] = nupNoteNormal; m_NupAdvNoteArray[NUM_PADS + NUM_BUTTON_STATES + (byte)dpad / 2] = nupNoteAdv; m_NupAdvButtonVelArray[NUM_BUTTON_STATES + (byte)dpad / 2] = nupButtonNoteVelocityAdv; m_DdlAdvSwitchStateArray[NUM_BUTTON_STATES + (byte)dpad / 2] = ddlSwitchStateAdv; m_ChkNoteOnCheck[NUM_BUTTON_STATES + (byte)dpad / 2] = chkNoteOnCheck; InitControl((byte)dpad, GuiLinkerType.DPad, nupNoteNormal); InitControl((byte)dpad, GuiLinkerType.DPadVelocity, nupButtonNoteVelocityAdv); InitControl((byte)dpad, GuiLinkerType.DPad, nupNoteAdv); InitControl((byte)dpad, GuiLinkerType.DPad, ddlSwitchStateAdv); InitControl((byte)dpad, GuiLinkerType.DPad, chkNoteOnCheck); InitNumericUpDown(nupNoteNormal); InitNumericUpDown(nupNoteAdv); InitNumericUpDown(nupButtonNoteVelocityAdv); InitDDLSwitchState(ddlSwitchStateAdv); }
private void DPadOn(GuiDrumDPad dp) { Debug.Assert((byte)dp % 2 == 0, "only left, up, right, down is allowed here"); if (GuiLinker.GetButtonChecked(dp) == false) { GuiLinker.CheckboxButton(dp, true); MidiSender.SendNoteOn(GuiLinker.GetMidiNote(dp), GuiLinker.GetButtonVelocity(dp)); if (GuiLinker.GetButtonSwitchType(dp) != SwitchType.KeyboardLike) { MidiSender.SendNoteOff(GuiLinker.GetMidiNote(dp)); } } }
internal void SetButtonSwitchType(GuiDrumDPad dp, SwitchType type) { Debug.Assert((byte)dp % 2 == 0, "only left, up, right, down is allowed here"); SetSelectIndex(ref m_DdlAdvSwitchStateArray[NUM_BUTTON_STATES + (byte)dp / 2], type); }
internal byte GetButtonVelocity(GuiDrumDPad drumDPad) { Debug.Assert((byte)drumDPad % 2 == 0, "only left, up, right, down is allowed here"); return (byte)m_NupAdvButtonVelArray[NUM_BUTTON_STATES + (byte)drumDPad / 2].Value; }
internal byte GetMidiNote(GuiDrumDPad dp) { Debug.Assert((byte)dp % 2 == 0, "only left, up, right, down is allowed here"); return (byte)m_NupAdvNoteArray[NUM_PADS + NUM_BUTTON_STATES + (byte)dp / 2].Value; }
internal bool GetButtonChecked(GuiDrumDPad dp) { Debug.Assert((byte)dp % 2 == 0, "only left, up, right, down is allowed here"); return m_ChkNoteOnCheck[NUM_BUTTON_STATES + (byte)dp / 2].Checked; }
internal SwitchType GetButtonSwitchType(GuiDrumDPad drumDPad) { Debug.Assert((byte)drumDPad % 2 == 0, "only left, up, right, down is allowed here"); return (SwitchType)m_DdlAdvSwitchStateArray[NUM_BUTTON_STATES + (byte)drumDPad / 2].SelectedItem; }
internal void CheckboxButton(GuiDrumDPad dp, bool check) { Debug.Assert((byte)dp % 2 == 0, "only left, up, right, down is allowed here"); m_ChkNoteOnCheck[NUM_BUTTON_STATES + (byte)dp / 2].Checked = check; }
internal void SetButtonVelocity(GuiDrumDPad drumDPad, byte vel) { Debug.Assert((byte)drumDPad % 2 == 0, "only left, up, right, down is allowed here"); m_NupAdvButtonVelArray[NUM_BUTTON_STATES + (byte)drumDPad / 2].Value = vel; }
private void DPadOn(GuiDrumDPad dp, GuiDrumDPad dp2) { Debug.Assert((byte)dp % 2 == 0, "only left, up, right, down is allowed here"); Debug.Assert((byte)dp2 % 2 == 0, "only left, up, right, down is allowed here"); if (GuiLinker.GetButtonChecked(dp) == false) { GuiLinker.CheckboxButton(dp, true); MidiSender.SendNoteOn(GuiLinker.GetMidiNote(dp), GuiLinker.GetButtonVelocity(dp)); if (GuiLinker.GetButtonSwitchType(dp) != SwitchType.KeyboardLike) MidiSender.SendNoteOff(GuiLinker.GetMidiNote(dp)); } if (GuiLinker.GetButtonChecked(dp2) == false) { GuiLinker.CheckboxButton(dp2, true); MidiSender.SendNoteOn(GuiLinker.GetMidiNote(dp2), GuiLinker.GetButtonVelocity(dp)); if (GuiLinker.GetButtonSwitchType(dp) != SwitchType.KeyboardLike) MidiSender.SendNoteOff(GuiLinker.GetMidiNote(dp)); } }
internal byte GetButtonVelocity(GuiDrumDPad drumDPad) { Debug.Assert((byte)drumDPad % 2 == 0, "only left, up, right, down is allowed here"); return((byte)m_NupAdvButtonVelArray[NUM_BUTTON_STATES + (byte)drumDPad / 2].Value); }
internal SwitchType GetButtonSwitchType(GuiDrumDPad drumDPad) { Debug.Assert((byte)drumDPad % 2 == 0, "only left, up, right, down is allowed here"); return((SwitchType)m_DdlAdvSwitchStateArray[NUM_BUTTON_STATES + (byte)drumDPad / 2].SelectedItem); }
internal void SetMidiNote(GuiDrumDPad dp, byte note) { Debug.Assert((byte)dp % 2 == 0, "only left, up, right, down is allowed here"); m_NupAdvNoteArray[NUM_PADS + NUM_BUTTON_STATES + (byte)dp / 2].Value = note; m_NupNoteArray[NUM_PADS + NUM_BUTTON_STATES + (byte)dp / 2].Value = note; }
internal byte GetMidiNote(GuiDrumDPad dp) { Debug.Assert((byte)dp % 2 == 0, "only left, up, right, down is allowed here"); return((byte)m_NupAdvNoteArray[NUM_PADS + NUM_BUTTON_STATES + (byte)dp / 2].Value); }
internal bool GetButtonChecked(GuiDrumDPad dp) { Debug.Assert((byte)dp % 2 == 0, "only left, up, right, down is allowed here"); return(m_ChkNoteOnCheck[NUM_BUTTON_STATES + (byte)dp / 2].Checked); }
private void DrumDPadStateChanged(GuiDrumDPad dp) { if (m_PrevDPadState == dp) { return; } if (InvokeRequired) { Invoke(new DPadDelegate(DrumDPadStateChanged), new object[] { dp }); } else { int new1, new2; if ((byte)dp % 2 == 0) { new1 = (byte)dp; new2 = (byte)dp; } else { new1 = (byte)dp - 1; new2 = (byte)dp + 1; if (new2 == 8) { new2 = 0; } } if (dp != GuiDrumDPad.None) { DPadOn((GuiDrumDPad)new1, (GuiDrumDPad)new2); } if (m_PrevDPadState != GuiDrumDPad.None) { if ((byte)m_PrevDPadState % 2 == 0) { if ((byte)m_PrevDPadState != new1 && (byte)m_PrevDPadState != new2) { DPadOff(m_PrevDPadState); } } else { int prev1 = (byte)m_PrevDPadState - 1; int prev2 = (byte)m_PrevDPadState + 1; if (prev2 == 8) { prev2 = 0; } if (prev1 != new1 && prev1 != new2) { DPadOff((GuiDrumDPad)prev1); } if (prev2 != new1 && prev2 != new2) { DPadOff((GuiDrumDPad)prev2); } } } m_PrevDPadState = dp; } }
private void DrumDPadStateChanged(GuiDrumDPad dp) { if (m_PrevDPadState == dp) return; if (InvokeRequired) { Invoke(new DPadDelegate(DrumDPadStateChanged), new object[] { dp }); } else { int new1, new2; if ((byte)dp % 2 == 0) { new1 = (byte)dp; new2 = (byte)dp; } else { new1 = (byte)dp - 1; new2 = (byte)dp + 1; if (new2 == 8) new2 = 0; } if (dp != GuiDrumDPad.None) { DPadOn((GuiDrumDPad)new1, (GuiDrumDPad)new2); } if (m_PrevDPadState != GuiDrumDPad.None) { if ((byte)m_PrevDPadState % 2 == 0) { if ((byte)m_PrevDPadState != new1 && (byte)m_PrevDPadState != new2) DPadOff(m_PrevDPadState); } else { int prev1 = (byte)m_PrevDPadState - 1; int prev2 = (byte)m_PrevDPadState + 1; if (prev2 == 8) prev2 = 0; if (prev1 != new1 && prev1 != new2) DPadOff((GuiDrumDPad)prev1); if (prev2 != new1 && prev2 != new2) DPadOff((GuiDrumDPad)prev2); } } m_PrevDPadState = dp; } }