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);
        }
Exemple #3
0
        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();
            }
        }
Exemple #4
0
        void delete_Click(object sender, EventArgs e)
        {
            UserControl button = (UserControl)((ToolStripMenuItem)sender).Tag;
            ControlMap  map    = (ControlMap)button.Tag;

            buttonGroup.Remove(map);
            CleanupButton(button);
        }
Exemple #5
0
        void button_Click(object sender, EventArgs e)
        {
            if (!editMode)
            {
                ControlMap map = (ControlMap)((WwtButton)sender).Tag;

                map.DispatchMessage(MIDI.MidiMessage.NoteOn, -1, 0, 127);
            }
        }
Exemple #6
0
        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);
            }
        }
Exemple #7
0
 private void SelectControlMap(ControlMap target)
 {
     foreach (ListViewItem item in MapsView.Items)
     {
         if (item.Tag == target)
         {
             item.Selected = true;
             return;
         }
     }
 }
Exemple #8
0
        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);
        }
Exemple #10
0
        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;
            }
        }
Exemple #11
0
        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;
            }
        }
Exemple #12
0
        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;
            }
        }
Exemple #13
0
        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;
                }
            }
        }
Exemple #14
0
        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;
            }
        }
Exemple #15
0
        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 SelectControlMap(ControlMap target)
 {
     foreach (ListViewItem item in MapsView.Items)
     {
         if (item.Tag == target)
         {
             item.Selected = true;
             return;
         }
     }
 }
        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;
            }
        }
        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);
            }
        }
Exemple #21
0
 public void Add(ControlMap map)
 {
     Buttons.Add(map);
     Dirty = true;
 }
 internal void Remove(ControlMap map)
 {
     Buttons.Remove(map);
     Dirty = true;
 }
Exemple #23
0
 internal void Remove(ControlMap map)
 {
     Buttons.Remove(map);
     Dirty = true;
 }
Exemple #24
0
        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);
        }
        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;
        }