void InputDevice_MessageReceived(object sender, MidiMessage message, int channel, int key, int value) { ControlMap map = null; map = FindMap(channel, key); if (MessageReceived != null) { MessageReceived.Invoke(this, message, channel, key, value); } if (map == null) { if (UnhandledMessageReceived != null) { UnhandledMessageReceived.Invoke(this, message, channel, key, value); } } else { map.DispatchMessage(message, channel, key, value); if (map.AutoRepeat && map.KeyDown && !AutoRepeatList.Contains(map)) { AutoRepeatList.Add(map); } else if (map.AutoRepeat && !map.KeyDown && AutoRepeatList.Contains(map)) { AutoRepeatList.Remove(map); } } }
private void AddButton(ControlMap map) { switch (map.ButtonType) { case ButtonType.Button: { WwtButton button = new WwtButton(); map.Width = 140; map.Height = 33; button.Text = map.Name; button.Location = new Point((int)map.X, (int)map.Y); button.Click += new EventHandler(button_Click); button.MouseDown += new MouseEventHandler(button_MouseDown); button.MouseMove += new MouseEventHandler(button_MouseMove); button.MouseUp += new MouseEventHandler(button_MouseUp); button.Tag = map; Controls.Add(button); } break; case ButtonType.Checkbox: { WWTCheckbox button = new WWTCheckbox(); map.Width = 140; map.Height = 33; //button.Parent = this; button.Text = map.Name; button.Location = new Point((int)map.X, (int)map.Y); button.CheckedChanged += new EventHandler(button_CheckedChanged); button.MouseDown += new MouseEventHandler(button_MouseDown); button.MouseMove += new MouseEventHandler(button_MouseMove); button.MouseUp += new MouseEventHandler(button_MouseUp); button.Tag = map; Controls.Add(button); } break; case ButtonType.Slider: { TrackButton button = new TrackButton(); map.Width = 140; map.Height = 33; //button.Parent = this; button.LabelText = map.Name; button.Location = new Point((int)map.X, (int)map.Y); button.ValueChanged += new EventHandler(button_ValueChanged); button.MouseDown += new MouseEventHandler(button_MouseDown); button.MouseMove += new MouseEventHandler(button_MouseMove); button.MouseUp += new MouseEventHandler(button_MouseUp); button.Tag = map; button.Value = (int)map.GetValue(MIDI.MidiMessage.NoteOn, -1, 0); Controls.Add(button); } break; default: break; } EnableUserChildren(!editMode); }
private void DeviceImage_Paint(object sender, PaintEventArgs e) { ControlMap selectedMap = null; if (DeviceList.SelectedIndex > -1 && ImageLoaded) { if (MapsView.SelectedIndices.Count > 0) { ControlBinding binding = (ControlBinding)MapsView.SelectedItems[0].Tag; selectedMap = binding.Parent; } SolidBrush BackgroundBrush = new SolidBrush(Color.FromArgb(128, 10, 10, 45)); MidiMap midiMap = (MidiMap)DeviceList.SelectedItem; foreach (ControlMap cm in midiMap.ControlMaps) { if (cm.Mapped) { Brush textBrush = UiTools.StadardTextBrush; if (cm == selectedMap) { textBrush = UiTools.YellowTextBrush; } SizeF sizeText = e.Graphics.MeasureString(cm.Name, UiTools.StandardLarge); Point pnt = ImageToControl(new PointF(cm.X, cm.Y)); pnt.Offset(new Point((int)(-sizeText.Width / 2), (int)(-sizeText.Height / 2))); Point pnt2 = ImageToControl(new PointF(cm.X + cm.Width, cm.Y + cm.Height)); Size size = new Size((int)sizeText.Width, (int)sizeText.Height); e.Graphics.FillRectangle(BackgroundBrush, new Rectangle(pnt, size)); e.Graphics.DrawString(cm.Name, UiTools.StandardLarge, textBrush, pnt); } } BackgroundBrush.Dispose(); } }
void delete_Click(object sender, EventArgs e) { UserControl button = (UserControl)((ToolStripMenuItem)sender).Tag; ControlMap map = (ControlMap)button.Tag; buttonGroup.Remove(map); CleanupButton(button); }
void button_Click(object sender, EventArgs e) { if (!editMode) { ControlMap map = (ControlMap)((WwtButton)sender).Tag; map.DispatchMessage(MIDI.MidiMessage.NoteOn, -1, 0, 127); } }
void button_ValueChanged(object sender, EventArgs e) { TrackButton tb = sender as TrackButton; if (!editMode) { ControlMap map = (ControlMap)((UserControl)sender).Tag; map.DispatchMessage(MIDI.MidiMessage.NoteOn, -1, 0, tb.Value); } }
private void SelectControlMap(ControlMap target) { foreach (ListViewItem item in MapsView.Items) { if (item.Tag == target) { item.Selected = true; return; } } }
private void MapsView_ItemDrag(object sender, ItemDragEventArgs e) { if (DeviceList.SelectedIndex > -1 && MapsView.SelectedIndices.Count > 0) { MidiMap midiMap = (MidiMap)DeviceList.SelectedItem; ControlBinding binding = (ControlBinding)MapsView.SelectedItems[0].Tag; DragSource = binding.Parent; DoDragDrop(MidiControlDataFormat, DragDropEffects.Copy); } }
static List <ControlMap> MakeControlGroups() { List <ControlMap> maps = new List <ControlMap>(); foreach (XboxButtons button in Enum.GetValues(typeof(XboxButtons))) { ControlMap map = new ControlMap(); map.Name = Enum.GetName(typeof(XboxButtons), button); map.ID = -1; switch (button) { case XboxButtons.DirectionPadUp: case XboxButtons.DirectionPadDown: case XboxButtons.DirectionPadLeft: case XboxButtons.DirectionPadRight: case XboxButtons.Start: case XboxButtons.Back: case XboxButtons.LeftThumbClick: case XboxButtons.RightThumbClick: case XboxButtons.LeftShoulder: case XboxButtons.RightShoulder: map.BindingA.BindingType = BindingType.Toggle; map.BindingA.HadnlerType = HandlerType.KeyPress; break; case XboxButtons.A: case XboxButtons.B: case XboxButtons.X: case XboxButtons.Y: map.BindingA.BindingType = BindingType.Toggle; map.BindingA.HadnlerType = HandlerType.KeyPress; break; case XboxButtons.LeftTrigger: case XboxButtons.RightTrigger: case XboxButtons.LeftThumbX: case XboxButtons.LeftThumbY: case XboxButtons.RightThumbX: case XboxButtons.RightThumbY: map.BindingA.BindingType = BindingType.SetValue; map.BindingA.HadnlerType = HandlerType.ValueChange; break; default: break; } maps.Add(map); } return(maps); }
void button_CheckedChanged(object sender, EventArgs e) { if (!ignoreEvent) { ignoreEvent = true; WWTCheckbox checkbox = sender as WWTCheckbox; if (!editMode) { ControlMap map = (ControlMap)((UserControl)sender).Tag; checkbox.Checked = map.DispatchMessage(MIDI.MidiMessage.NoteOn, -1, 0, 127); } ignoreEvent = false; } }
private void MapsView_AfterLabelEdit(object sender, LabelEditEventArgs e) { ControlMap cm = ((ControlBinding)MapsView.SelectedItems[0].Tag).Parent; if (!string.IsNullOrEmpty(e.Label)) { cm.Name = e.Label; ((MidiMap)DeviceList.SelectedItem).Dirty = true; DeviceImage.Invalidate(); } else { e.CancelEdit = true; } }
void properties_Click(object sender, EventArgs e) { UserControl button = (UserControl)((ToolStripMenuItem)sender).Tag; ControlMap map = (ControlMap)button.Tag; ButtonProperties props = new ButtonProperties(); props.ButtonMap = map; if (props.ShowDialog() == System.Windows.Forms.DialogResult.OK) { CleanupButton(button); AddButton(map); buttonGroup.Dirty = true; } }
void button_MouseMove(object sender, MouseEventArgs e) { if (mouseDown && editMode) { UserControl button = sender as UserControl; if (button != null) { Point posDelta = Point.Subtract(e.Location, new Size(mouseDownPoint.X, mouseDownPoint.Y)); button.Location = Point.Add(button.Location, new Size(posDelta.X, posDelta.Y)); ControlMap map = button.Tag as ControlMap; map.X = button.Location.X; map.Y = button.Location.Y; buttonGroup.Dirty = true; } } }
private void Plus_Click(object sender, EventArgs e) { ControlMap map = new ControlMap(); ButtonProperties props = new ButtonProperties(); props.ButtonMap = map; if (props.ShowDialog() == System.Windows.Forms.DialogResult.OK) { buttonGroup.Add(map); Point pnt = FindFirstFreeSpot(new Size(140, 33)); map.X = pnt.X; map.Y = pnt.Y; AddButton(map); buttonGroup.Dirty = true; } }
void monitoringMap_MessageReceived(object sender, MIDI.MidiMessage message, int channel, int key, int value) { if (monitoringMap != null) { ControlMap map = monitoringMap.FindMap(channel, key); if (map != null) { MethodInvoker doIt = delegate { foreach (ListViewItem item in MapsView.Items) { ControlBinding cb = item.Tag as ControlBinding; if (cb != null) { if (cb.Parent == map) { item.Selected = true; MapsView.EnsureVisible(item.Index); break; } } } }; if (this.InvokeRequired) { try { this.Invoke(doIt); } catch { } } else { doIt(); } } } }
public static bool DispatchXboxEvent(XboxButtons id, double value) { int mode = (int)Earth3d.MainWindow.CurrentImageSet.DataSetType; if (Earth3d.MainWindow.CurrentImageSet.DataSetType == ImageSetType.Sky && Properties.Settings.Default.LocalHorizonMode) { mode = 5; } if (!Properties.Settings.Default.XboxModeMapping) { mode = 6; } ControlMap map = xboxMaps[mode].ControlMaps[(int)id]; map.BindingA.DispatchMessage(MIDI.MidiMessage.NoteOn, -1, 0, value * 127); return(!map.AutoRepeat); }
public void Add(ControlMap map) { Buttons.Add(map); Dirty = true; }
private void Plus_Click(object sender, EventArgs e) { ControlMap map = new ControlMap(); ButtonProperties props = new ButtonProperties(); props.ButtonMap = map; if (props.ShowDialog() == System.Windows.Forms.DialogResult.OK) { buttonGroup.Add(map); Point pnt = FindFirstFreeSpot(new Size(140,33)); map.X = pnt.X; map.Y = pnt.Y; AddButton(map); buttonGroup.Dirty = true; } }
internal void Remove(ControlMap map) { Buttons.Remove(map); Dirty = true; }
static List<ControlMap> MakeControlGroups() { var maps = new List<ControlMap>(); foreach (XboxButtons button in Enum.GetValues(typeof(XboxButtons))) { var map = new ControlMap(); map.Name = Enum.GetName(typeof(XboxButtons), button); map.ID = -1; switch (button) { case XboxButtons.DirectionPadUp: case XboxButtons.DirectionPadDown: case XboxButtons.DirectionPadLeft: case XboxButtons.DirectionPadRight: case XboxButtons.Start: case XboxButtons.Back: case XboxButtons.LeftThumbClick: case XboxButtons.RightThumbClick: case XboxButtons.LeftShoulder: case XboxButtons.RightShoulder: map.BindingA.BindingType = BindingType.Toggle; map.BindingA.HadnlerType = HandlerType.KeyPress; break; case XboxButtons.A: case XboxButtons.B: case XboxButtons.X: case XboxButtons.Y: map.BindingA.BindingType = BindingType.Toggle; map.BindingA.HadnlerType = HandlerType.KeyPress; break; case XboxButtons.LeftTrigger: case XboxButtons.RightTrigger: case XboxButtons.LeftThumbX: case XboxButtons.LeftThumbY: case XboxButtons.RightThumbX: case XboxButtons.RightThumbY: map.BindingA.BindingType = BindingType.SetValue; map.BindingA.HadnlerType = HandlerType.ValueChange; break; default: break; } maps.Add(map); } return maps; }