private void SelectNextProperty() { if (++currentIndex == mainLayout.Controls.Count) { currentIndex = 0; } if (currentProperty != null) { currentProperty.SelectItem(false); } currentProperty = (PropertyControl)mainLayout.Controls[currentIndex]; currentProperty.SelectItem(true); }
private void InitHID() { if (INI.KeyExists("HID", webcam.DevicePath)) { string hidPath = INI.ReadINI(webcam.DevicePath, "HID"); if (hid != null) { hid.CloseDevice(); } hid = HidDevices.GetDevice(hidPath); if (hid != null) { hid.OpenDevice(); mulTimer = new System.Timers.Timer { Interval = 600, AutoReset = true, Enabled = true, }; mulTimer.Elapsed += HIDTimedEvent; if (currentProperty == null) { SelectNextProperty(); } else { currentProperty.SelectItem(true); } hid.ReadReport(OnReport); Globals._USBControl.HIDDisconnected += HIDDisconnectEvent; } else { Globals._USBControl.HIDConnected -= HIDConnectEvent; } } }
private void OnReport(HidReport report) { if (report.ReportId != 4) { return; } switch (report.Data[0]) { case 1: currentProperty.AutoMode(false); bool dir = report.Data[1] != 0; Debug.WriteLine(dir); if (oldDir != dir) { oldDir = dir; mul = 1; } else { mul++; } currentProperty.UpdateValue(mul, dir ? 1 : -1); break; case 2: currentProperty.AutoMode(true); Debug.WriteLine("Button auto"); break; case 3: Debug.WriteLine("Button 1"); if (PropertyHIDButton1Index < 0) { break; } currentProperty.SelectItem(false); currentIndex = PropertyHIDButton1Index; currentProperty = (PropertyControl)mainLayout.Controls[currentIndex]; currentProperty.SelectItem(true); break; case 4: Debug.WriteLine("Button 2"); if (PropertyHIDButton2Index < 0) { break; } currentProperty.SelectItem(false); currentIndex = PropertyHIDButton2Index; currentProperty = (PropertyControl)mainLayout.Controls[currentIndex]; currentProperty.SelectItem(true); break; case 5: Debug.WriteLine("Button next"); if (report.Data[1] == 0) { break; } SelectNextProperty(); break; } // we need to start listening again for more data hid.ReadReport(OnReport); }