• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

luttje / Key2Joy / 6602636543

22 Oct 2023 08:16AM UTC coverage: 44.104% (-8.4%) from 52.519%
6602636543

Pull #50

github

web-flow
Merge cf342a7b3 into 14b7ce9a7
Pull Request #50: Add XInput in preparation for gamepad triggers + add xmldoc

764 of 2383 branches covered (0.0%)

Branch coverage included in aggregate %.

3060 of 3060 new or added lines in 106 files covered. (100.0%)

3896 of 8183 relevant lines covered (47.61%)

15812.68 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/Key2Joy.Gui/DeviceListControl.cs
1
using System.Drawing;
2
using System.Windows.Forms;
3
using CommonServiceLocator;
4
using Key2Joy.LowLevelInput.SimulatedGamePad;
5
using Key2Joy.LowLevelInput.XInput;
6

7
namespace Key2Joy.Gui;
8

9
public partial class DeviceListControl : UserControl
10
{
11
    public DeviceListControl()
×
12
    {
13
        this.InitializeComponent();
×
14

15
        if (System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv")
×
16
        {
17
            return; // The designer can't handle the code below.
×
18
        }
19

20
        this.RefreshDevices();
×
21
    }
×
22

23
    public void RefreshDevices()
24
    {
25
        this.pnlDevices.Controls.Clear();
×
26

27
        this.RefreshSimulatedDevices();
×
28
        this.RefreshPhysicalDevices();
×
29

30
        if (this.pnlDevices.Controls.Count == 0)
×
31
        {
32
            this.pnlDevices.Controls.Add(new Label()
×
33
            {
×
34
                Text = "No physical or simulated devices found. Try arming the mappings.",
×
35
                Font = new Font("Arial", 8, FontStyle.Italic),
×
36
                Padding = new Padding(5),
×
37
                Dock = DockStyle.Top,
×
38
                Height = 100,
×
39
                TextAlign = ContentAlignment.MiddleCenter,
×
40
            });
×
41
        }
42
    }
×
43

44
    private void AddDeviceControl(DeviceControl control)
45
    {
46
        control.Dock = DockStyle.Top;
×
47
        this.pnlDevices.Controls.Add(control);
×
48
    }
×
49

50
    private void RefreshPhysicalDevices()
51
    {
52
        var xInputService = ServiceLocator.Current.GetInstance<IXInputService>();
×
53
        xInputService.RecognizePhysicalDevices();
×
54
        var deviceIndexes = xInputService.GetActiveDevicesInfo();
×
55

56
        foreach (var device in deviceIndexes)
×
57
        {
58
            this.AddDeviceControl(new DeviceControl(device));
×
59
        }
60
    }
×
61

62
    private void RefreshSimulatedDevices()
63
    {
64
        var gamePadService = ServiceLocator.Current.GetInstance<ISimulatedGamePadService>();
×
65
        var simulatedGamePads = gamePadService.GetActiveDevicesInfo();
×
66

67
        foreach (var gamePad in simulatedGamePads)
×
68
        {
69
            this.AddDeviceControl(new DeviceControl(gamePad));
×
70
        }
71
    }
×
72

73
    private void BtnRefresh_Click(object sender, System.EventArgs e) => this.RefreshDevices();
×
74
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc