diff --git a/HIDDevices.sln b/HIDDevices.sln index 81296ef..d0b3da4 100644 --- a/HIDDevices.sln +++ b/HIDDevices.sln @@ -12,6 +12,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution .editorconfig = .editorconfig DevDecoder Icon.png = DevDecoder Icon.png LICENSE.txt = LICENSE.txt + HIDUsageTablesPDF.url = HIDUsageTablesPDF.url NOTICE.txt = NOTICE.txt .github\workflows\publish.yml = .github\workflows\publish.yml .github\workflows\validatepullrequest.yml = .github\workflows\validatepullrequest.yml diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ArcadePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ArcadePage.g.cs index b34552c..831edee 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ArcadePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ArcadePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ArcadeUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ArcadeUsagePage.g.cs index 4076663..0f88a99 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ArcadeUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ArcadeUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/AuxiliaryDisplayPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/AuxiliaryDisplayPage.g.cs index a419b20..928f8e7 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/AuxiliaryDisplayPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/AuxiliaryDisplayPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/AuxiliaryDisplayUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/AuxiliaryDisplayUsagePage.g.cs index 481d4ba..1353069 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/AuxiliaryDisplayUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/AuxiliaryDisplayUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BarcodeScannerPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BarcodeScannerPage.g.cs index f441a5e..ef7ac54 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BarcodeScannerPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BarcodeScannerPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BarcodeScannerUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BarcodeScannerUsagePage.g.cs index 3b70c9e..8504e75 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BarcodeScannerUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BarcodeScannerUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BatterySystemPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BatterySystemPage.g.cs index 1e7aaf2..9d95856 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BatterySystemPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BatterySystemPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BatterySystemUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BatterySystemUsagePage.g.cs index dde62be..58cda73 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BatterySystemUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BatterySystemUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BrailleDisplayPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BrailleDisplayPage.g.cs index 7c73004..fe58983 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BrailleDisplayPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BrailleDisplayPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BrailleDisplayUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BrailleDisplayUsagePage.g.cs index cd11ba7..ce6ce66 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BrailleDisplayUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/BrailleDisplayUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ButtonPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ButtonPage.g.cs index e3f816a..1448805 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ButtonPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ButtonPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ButtonUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ButtonUsagePage.g.cs index 990d9eb..570fab9 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ButtonUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ButtonUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/CameraControlPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/CameraControlPage.g.cs index bdf9a4d..08fc658 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/CameraControlPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/CameraControlPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/CameraControlUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/CameraControlUsagePage.g.cs index 54ecbc9..04b26b1 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/CameraControlUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/CameraControlUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ConsumerPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ConsumerPage.g.cs index 4d7f36c..39056db 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ConsumerPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ConsumerPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ConsumerUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ConsumerUsagePage.g.cs index 26a29fd..513ac57 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ConsumerUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ConsumerUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/DigitizersPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/DigitizersPage.g.cs index 1ae8587..6ac2961 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/DigitizersPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/DigitizersPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword @@ -658,6 +658,18 @@ public enum DigitizersPage : uint // Transducer Switches Usage. // [Description("Transducer Switches")] - TransducerSwitches = 0x000d00a5 + TransducerSwitches = 0x000d00a5, + + // + // Transducer Index Selector Usage. + // + [Description("Transducer Index Selector")] + TransducerIndexSelector = 0x000d00a6, + + // + // Button Press Threshold Usage. + // + [Description("Button Press Threshold")] + ButtonPressThreshold = 0x000d00b0 } } diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/DigitizersUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/DigitizersUsagePage.g.cs index fc95efc..680f7fb 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/DigitizersUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/DigitizersUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword @@ -142,7 +142,9 @@ protected override Usage CreateUsage(ushort id) case 0x00a2: return new Usage(this, id, "Transducer Connected", UsageTypes.SF); case 0x00a3: return new Usage(this, id, "Switch Disabled", UsageTypes.Sel); case 0x00a4: return new Usage(this, id, "Switch Unimplemented", UsageTypes.Sel); - case 0x00a5: return new Usage(this, id, "Transducer Switches", UsageTypes.Sel); + case 0x00a5: return new Usage(this, id, "Transducer Switches", UsageTypes.CL); + case 0x00a6: return new Usage(this, id, "Transducer Index Selector", UsageTypes.DV); + case 0x00b0: return new Usage(this, id, "Button Press Threshold", UsageTypes.DV); } return base.CreateUsage(id); diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/EyeAndHeadTrackersPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/EyeAndHeadTrackersPage.g.cs index e72381e..77b66a5 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/EyeAndHeadTrackersPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/EyeAndHeadTrackersPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/EyeAndHeadTrackersUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/EyeAndHeadTrackersUsagePage.g.cs index b67bc9b..9009fb7 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/EyeAndHeadTrackersUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/EyeAndHeadTrackersUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/FIDOAlliancePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/FIDOAlliancePage.g.cs index 47201e4..0774f01 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/FIDOAlliancePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/FIDOAlliancePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/FIDOAllianceUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/FIDOAllianceUsagePage.g.cs index c07b804..bc1d718 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/FIDOAllianceUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/FIDOAllianceUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GameControlsPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GameControlsPage.g.cs index 15cdf91..9eb0f46 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GameControlsPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GameControlsPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GameControlsUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GameControlsUsagePage.g.cs index 0d0a8b0..82d8397 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GameControlsUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GameControlsUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDesktopPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDesktopPage.g.cs index 4d8be43..ca1053e 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDesktopPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDesktopPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword @@ -522,6 +522,12 @@ public enum GenericDesktopPage : uint [Description("System Hibernate")] SystemHibernate = 0x000100a8, + // + // System Microphone Mute Usage. + // + [Description("System Microphone Mute")] + SystemMicrophoneMute = 0x000100a9, + // // System Display Invert Usage. // diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDesktopUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDesktopUsagePage.g.cs index ba62558..637ea39 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDesktopUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDesktopUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword @@ -120,6 +120,7 @@ protected override Usage CreateUsage(ushort id) case 0x00a6: return new Usage(this, id, "Application Debugger Break", UsageTypes.OSC); case 0x00a7: return new Usage(this, id, "System Speaker Mute", UsageTypes.OSC); case 0x00a8: return new Usage(this, id, "System Hibernate", UsageTypes.OSC); + case 0x00a9: return new Usage(this, id, "System Microphone Mute", UsageTypes.OOC); case 0x00b0: return new Usage(this, id, "System Display Invert", UsageTypes.OSC); case 0x00b1: return new Usage(this, id, "System Display Internal", UsageTypes.OSC); case 0x00b2: return new Usage(this, id, "System Display External", UsageTypes.OSC); diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDeviceControlsPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDeviceControlsPage.g.cs index d609353..d36a54b 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDeviceControlsPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDeviceControlsPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDeviceControlsUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDeviceControlsUsagePage.g.cs index 0bcc85d..cc2b23e 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDeviceControlsUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/GenericDeviceControlsUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/HapticsPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/HapticsPage.g.cs index 777557b..5d8ce16 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/HapticsPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/HapticsPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/HapticsUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/HapticsUsagePage.g.cs index 48139dd..4c9f5a8 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/HapticsUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/HapticsUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/KeyboardKeypadPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/KeyboardKeypadPage.g.cs index b04670e..41624e9 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/KeyboardKeypadPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/KeyboardKeypadPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword @@ -211,9 +211,9 @@ public enum KeyboardKeypadPage : uint Keyboard2AndAt = 0x0007001f, // - // Keyboard 3 And Hash Usage. + // Keyboard 3 and Hash Usage. // - [Description("Keyboard 3 And Hash")] + [Description("Keyboard 3 and Hash")] Keyboard3AndHash = 0x00070020, // @@ -313,16 +313,16 @@ public enum KeyboardKeypadPage : uint KeyboardRightBrace = 0x00070030, // - // Keyboard Pipe and Slash Usage. + // Keyboard Backslash and Pipe Usage. // - [Description("Keyboard Pipe and Slash")] - KeyboardPipeAndSlash = 0x00070031, + [Description("Keyboard Backslash and Pipe")] + KeyboardBackslashAndPipe = 0x00070031, // - // Keyboard Non-US Usage. + // Keyboard Non-US Hash and Tilde Usage. // - [Description("Keyboard Non-US")] - KeyboardNonUS = 0x00070032, + [Description("Keyboard Non-US Hash and Tilde")] + KeyboardNonUSHashAndTilde = 0x00070032, // // Keyboard SemiColon and Colon Usage. @@ -343,22 +343,22 @@ public enum KeyboardKeypadPage : uint KeyboardGraveAccentAndTilde = 0x00070035, // - // Keyboard Comma Usage. + // Keyboard Comma and LessThan Usage. // - [Description("Keyboard Comma")] - KeyboardComma = 0x00070036, + [Description("Keyboard Comma and LessThan")] + KeyboardCommaAndLessThan = 0x00070036, // - // Keyboard Period Usage. + // Keyboard Period and GreaterThan Usage. // - [Description("Keyboard Period")] - KeyboardPeriod = 0x00070037, + [Description("Keyboard Period and GreaterThan")] + KeyboardPeriodAndGreaterThan = 0x00070037, // - // Keyboard QuestionMark Usage. + // Keyboard ForwardSlash and QuestionMark Usage. // - [Description("Keyboard QuestionMark")] - KeyboardQuestionMark = 0x00070038, + [Description("Keyboard ForwardSlash and QuestionMark")] + KeyboardForwardSlashAndQuestionMark = 0x00070038, // // Keyboard Caps Lock Usage. @@ -523,9 +523,9 @@ public enum KeyboardKeypadPage : uint KeypadNumLockAndClear = 0x00070053, // - // Keypad Forward Slash Usage. + // Keypad ForwardSlash Usage. // - [Description("Keypad Forward Slash")] + [Description("Keypad ForwardSlash")] KeypadForwardSlash = 0x00070054, // @@ -535,10 +535,10 @@ public enum KeyboardKeypadPage : uint KeypadStar = 0x00070055, // - // Keyboard Dash Usage. + // Keypad Dash Usage. // - [Description("Keyboard Dash")] - KeyboardDash = 0x00070056, + [Description("Keypad Dash")] + KeypadDash = 0x00070056, // // Keypad Plus Usage. @@ -613,16 +613,16 @@ public enum KeyboardKeypadPage : uint Keypad0AndInsert = 0x00070062, // - // Keypad Period Usage. + // Keypad Period and Delete Usage. // - [Description("Keypad Period")] - KeypadPeriod = 0x00070063, + [Description("Keypad Period and Delete")] + KeypadPeriodAndDelete = 0x00070063, // - // Keyboard Non-US Slash Bar Usage. + // Keyboard Non-US Backslash and Pipe Usage. // - [Description("Keyboard Non-US Slash Bar")] - KeyboardNonUSSlashBar = 0x00070064, + [Description("Keyboard Non-US Backslash and Pipe")] + KeyboardNonUSBackslashAndPipe = 0x00070064, // // Keyboard Application Usage. diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/KeyboardKeypadUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/KeyboardKeypadUsagePage.g.cs index 7c2053e..cbd3be8 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/KeyboardKeypadUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/KeyboardKeypadUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword @@ -68,7 +68,7 @@ protected override Usage CreateUsage(ushort id) case 0x001d: return new Usage(this, id, "Keyboard Z", UsageTypes.Sel); case 0x001e: return new Usage(this, id, "Keyboard 1 and Bang", UsageTypes.Sel); case 0x001f: return new Usage(this, id, "Keyboard 2 and At", UsageTypes.Sel); - case 0x0020: return new Usage(this, id, "Keyboard 3 And Hash", UsageTypes.Sel); + case 0x0020: return new Usage(this, id, "Keyboard 3 and Hash", UsageTypes.Sel); case 0x0021: return new Usage(this, id, "Keyboard 4 and Dollar", UsageTypes.Sel); case 0x0022: return new Usage(this, id, "Keyboard 5 and Percent", UsageTypes.Sel); case 0x0023: return new Usage(this, id, "Keyboard 6 and Caret", UsageTypes.Sel); @@ -85,14 +85,14 @@ protected override Usage CreateUsage(ushort id) case 0x002e: return new Usage(this, id, "Keyboard Equals and Plus", UsageTypes.Sel); case 0x002f: return new Usage(this, id, "Keyboard Left Brace", UsageTypes.Sel); case 0x0030: return new Usage(this, id, "Keyboard Right Brace", UsageTypes.Sel); - case 0x0031: return new Usage(this, id, "Keyboard Pipe and Slash", UsageTypes.Sel); - case 0x0032: return new Usage(this, id, "Keyboard Non-US", UsageTypes.Sel); + case 0x0031: return new Usage(this, id, "Keyboard Backslash and Pipe", UsageTypes.Sel); + case 0x0032: return new Usage(this, id, "Keyboard Non-US Hash and Tilde", UsageTypes.Sel); case 0x0033: return new Usage(this, id, "Keyboard SemiColon and Colon", UsageTypes.Sel); case 0x0034: return new Usage(this, id, "Keyboard Left Apos and Double", UsageTypes.Sel); case 0x0035: return new Usage(this, id, "Keyboard Grave Accent and Tilde", UsageTypes.Sel); - case 0x0036: return new Usage(this, id, "Keyboard Comma", UsageTypes.Sel); - case 0x0037: return new Usage(this, id, "Keyboard Period", UsageTypes.Sel); - case 0x0038: return new Usage(this, id, "Keyboard QuestionMark", UsageTypes.Sel); + case 0x0036: return new Usage(this, id, "Keyboard Comma and LessThan", UsageTypes.Sel); + case 0x0037: return new Usage(this, id, "Keyboard Period and GreaterThan", UsageTypes.Sel); + case 0x0038: return new Usage(this, id, "Keyboard ForwardSlash and QuestionMark", UsageTypes.Sel); case 0x0039: return new Usage(this, id, "Keyboard Caps Lock", UsageTypes.Sel); case 0x003a: return new Usage(this, id, "Keyboard F1", UsageTypes.Sel); case 0x003b: return new Usage(this, id, "Keyboard F2", UsageTypes.Sel); @@ -120,9 +120,9 @@ protected override Usage CreateUsage(ushort id) case 0x0051: return new Usage(this, id, "Keyboard DownArrow", UsageTypes.Sel); case 0x0052: return new Usage(this, id, "Keyboard UpArrow", UsageTypes.Sel); case 0x0053: return new Usage(this, id, "Keypad Num Lock and Clear", UsageTypes.Sel); - case 0x0054: return new Usage(this, id, "Keypad Forward Slash", UsageTypes.Sel); + case 0x0054: return new Usage(this, id, "Keypad ForwardSlash", UsageTypes.Sel); case 0x0055: return new Usage(this, id, "Keypad Star", UsageTypes.Sel); - case 0x0056: return new Usage(this, id, "Keyboard Dash", UsageTypes.Sel); + case 0x0056: return new Usage(this, id, "Keypad Dash", UsageTypes.Sel); case 0x0057: return new Usage(this, id, "Keypad Plus", UsageTypes.Sel); case 0x0058: return new Usage(this, id, "Keypad ENTER", UsageTypes.Sel); case 0x0059: return new Usage(this, id, "Keypad 1 and End", UsageTypes.Sel); @@ -135,8 +135,8 @@ protected override Usage CreateUsage(ushort id) case 0x0060: return new Usage(this, id, "Keypad 8 and Up Arrow", UsageTypes.Sel); case 0x0061: return new Usage(this, id, "Keypad 9 and PageUp", UsageTypes.Sel); case 0x0062: return new Usage(this, id, "Keypad 0 and Insert", UsageTypes.Sel); - case 0x0063: return new Usage(this, id, "Keypad Period", UsageTypes.Sel); - case 0x0064: return new Usage(this, id, "Keyboard Non-US Slash Bar", UsageTypes.Sel); + case 0x0063: return new Usage(this, id, "Keypad Period and Delete", UsageTypes.Sel); + case 0x0064: return new Usage(this, id, "Keyboard Non-US Backslash and Pipe", UsageTypes.Sel); case 0x0065: return new Usage(this, id, "Keyboard Application", UsageTypes.Sel); case 0x0066: return new Usage(this, id, "Keyboard Power", UsageTypes.Sel); case 0x0067: return new Usage(this, id, "Keypad Equals", UsageTypes.Sel); diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LEDPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LEDPage.g.cs index ec64bf2..a19e18c 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LEDPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LEDPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword @@ -205,10 +205,10 @@ public enum LEDPage : uint Speaker = 0x0008001e, // - // Head Set Usage. + // Headset Usage. // - [Description("Head Set")] - HeadSet = 0x0008001f, + [Description("Headset")] + Headset = 0x0008001f, // // Hold Usage. @@ -540,6 +540,12 @@ public enum LEDPage : uint [Description("LED Intensity")] LEDIntensity = 0x00080056, + // + // System Microphone Mute Usage. + // + [Description("System Microphone Mute")] + SystemMicrophoneMute = 0x00080057, + // // Player Indicator Usage. // diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LEDUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LEDUsagePage.g.cs index aad7ed6..9ab01bf 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LEDUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LEDUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword @@ -67,7 +67,7 @@ protected override Usage CreateUsage(ushort id) case 0x001c: return new Usage(this, id, "Battery OK", UsageTypes.OOC); case 0x001d: return new Usage(this, id, "Battery Low", UsageTypes.OOC); case 0x001e: return new Usage(this, id, "Speaker", UsageTypes.OOC); - case 0x001f: return new Usage(this, id, "Head Set", UsageTypes.OOC); + case 0x001f: return new Usage(this, id, "Headset", UsageTypes.OOC); case 0x0020: return new Usage(this, id, "Hold", UsageTypes.OOC); case 0x0021: return new Usage(this, id, "Microphone", UsageTypes.OOC); case 0x0022: return new Usage(this, id, "Coverage", UsageTypes.OOC); @@ -123,6 +123,7 @@ protected override Usage CreateUsage(ushort id) case 0x0054: return new Usage(this, id, "Blue LED Channel", UsageTypes.DV); case 0x0055: return new Usage(this, id, "Green LED Channel", UsageTypes.DV); case 0x0056: return new Usage(this, id, "LED Intensity", UsageTypes.DV); + case 0x0057: return new Usage(this, id, "System Microphone Mute", UsageTypes.OOC); case 0x0060: return new Usage(this, id, "Player Indicator", UsageTypes.NAry); case 0x0061: return new Usage(this, id, "Player 1", UsageTypes.Sel); case 0x0062: return new Usage(this, id, "Player 2", UsageTypes.Sel); diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LightingAndIlluminationPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LightingAndIlluminationPage.g.cs index 07fac7d..08ebfa3 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LightingAndIlluminationPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LightingAndIlluminationPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LightingAndIlluminationUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LightingAndIlluminationUsagePage.g.cs index 1657b27..b64dcc4 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LightingAndIlluminationUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/LightingAndIlluminationUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MagneticStripeReaderPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MagneticStripeReaderPage.g.cs index 5d727aa..3f087a8 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MagneticStripeReaderPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MagneticStripeReaderPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MagneticStripeReaderUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MagneticStripeReaderUsagePage.g.cs index ca770e7..978ddea 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MagneticStripeReaderUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MagneticStripeReaderUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MedicalInstrumentPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MedicalInstrumentPage.g.cs index c7083b4..1f2cb60 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MedicalInstrumentPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MedicalInstrumentPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MedicalInstrumentUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MedicalInstrumentUsagePage.g.cs index 9c86289..b9134f4 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MedicalInstrumentUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MedicalInstrumentUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorEnumeratedPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorEnumeratedPage.g.cs index 9c6acdb..042312e 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorEnumeratedPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorEnumeratedPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorEnumeratedUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorEnumeratedUsagePage.g.cs index a7adb30..494918e 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorEnumeratedUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorEnumeratedUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorPage.g.cs index e85e1c0..c4f3f97 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorUsagePage.g.cs index 2558736..b614490 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/MonitorUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/OrdinalPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/OrdinalPage.g.cs index f869529..0d49f1f 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/OrdinalPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/OrdinalPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/OrdinalUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/OrdinalUsagePage.g.cs index 4eb46ab..f268f9e 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/OrdinalUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/OrdinalUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PhysicalInputDevicePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PhysicalInputDevicePage.g.cs index 56ef9e5..065c2ed 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PhysicalInputDevicePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PhysicalInputDevicePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PhysicalInputDeviceUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PhysicalInputDeviceUsagePage.g.cs index 3aa07b4..51b020f 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PhysicalInputDeviceUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PhysicalInputDeviceUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PowerPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PowerPage.g.cs index 03dae27..ec6279c 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PowerPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PowerPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PowerUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PowerUsagePage.g.cs index 0c7884b..0f7a9d9 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PowerUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/PowerUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ScalesPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ScalesPage.g.cs index 098cec2..15dce08 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ScalesPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ScalesPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ScalesUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ScalesUsagePage.g.cs index 75cdede..58b7d92 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ScalesUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/ScalesUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SensorsPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SensorsPage.g.cs index 5b9130f..e39202c 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SensorsPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SensorsPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword @@ -600,17 +600,23 @@ public enum SensorsPage : uint [Description("Personal Activity: Device Position")] PersonalActivityDevicePosition = 0x002000b2, + // + // Personal Activity: Floor Tracker Usage. + // + [Description("Personal Activity: Floor Tracker")] + PersonalActivityFloorTracker = 0x002000b3, + // // Personal Activity: Pedometer Usage. // [Description("Personal Activity: Pedometer")] - PersonalActivityPedometer = 0x002000b3, + PersonalActivityPedometer = 0x002000b4, // // Personal Activity: Step Detection Usage. // [Description("Personal Activity: Step Detection")] - PersonalActivityStepDetection = 0x002000b4, + PersonalActivityStepDetection = 0x002000b5, // // Orientation Extended Usage. @@ -1728,6 +1734,42 @@ public enum SensorsPage : uint [Description("Data Field: Human Attention Detected")] DataFieldHumanAttentionDetected = 0x002004bd, + // + // Data Field: Human Head Azimuth Usage. + // + [Description("Data Field: Human Head Azimuth")] + DataFieldHumanHeadAzimuth = 0x002004be, + + // + // Data Field: Human Head Altitude Usage. + // + [Description("Data Field: Human Head Altitude")] + DataFieldHumanHeadAltitude = 0x002004bf, + + // + // Data Field: Human Head Roll Usage. + // + [Description("Data Field: Human Head Roll")] + DataFieldHumanHeadRoll = 0x002004c0, + + // + // Data Field: Human Head Pitch Usage. + // + [Description("Data Field: Human Head Pitch")] + DataFieldHumanHeadPitch = 0x002004c1, + + // + // Data Field: Human Head Yaw Usage. + // + [Description("Data Field: Human Head Yaw")] + DataFieldHumanHeadYaw = 0x002004c2, + + // + // Data Field: Human Correlation Id Usage. + // + [Description("Data Field: Human Correlation Id")] + DataFieldHumanCorrelationId = 0x002004c3, + // // Data Field: Light Usage. // @@ -2826,6 +2868,12 @@ public enum SensorsPage : uint [Description("Reporting State: Wake On Threshold Events")] ReportingStateWakeOnThresholdEvents = 0x00200845, + // + // Reporting State: Anytime Usage. + // + [Description("Reporting State: Anytime")] + ReportingStateAnytime = 0x00200846, + // // Power State: Undefined Usage. // @@ -3823,16 +3871,16 @@ public enum SensorsPage : uint StepTypeUnknown = 0x00200990, // - // Step Type: Running Usage. + // Step Type: Walking Usage. // - [Description("Step Type: Running")] - StepTypeRunning = 0x00200991, + [Description("Step Type: Walking")] + StepTypeWalking = 0x00200991, // - // Step Type: Walking Usage. + // Step Type: Running Usage. // - [Description("Step Type: Walking")] - StepTypeWalking = 0x00200992, + [Description("Step Type: Running")] + StepTypeRunning = 0x00200992, // // Gesture State: Unknown Usage. diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SensorsUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SensorsUsagePage.g.cs index 9a00784..40d1121 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SensorsUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SensorsUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword @@ -133,8 +133,9 @@ protected override Usage CreateUsage(ushort id) case 0x00b0: return new Usage(this, id, "Personal Activity", UsageTypes.CA|UsageTypes.CP); case 0x00b1: return new Usage(this, id, "Personal Activity: Activity Detection", UsageTypes.CA|UsageTypes.CP); case 0x00b2: return new Usage(this, id, "Personal Activity: Device Position", UsageTypes.CA|UsageTypes.CP); - case 0x00b3: return new Usage(this, id, "Personal Activity: Pedometer", UsageTypes.CA|UsageTypes.CP); - case 0x00b4: return new Usage(this, id, "Personal Activity: Step Detection", UsageTypes.CA|UsageTypes.CP); + case 0x00b3: return new Usage(this, id, "Personal Activity: Floor Tracker", UsageTypes.CA|UsageTypes.CP); + case 0x00b4: return new Usage(this, id, "Personal Activity: Pedometer", UsageTypes.CA|UsageTypes.CP); + case 0x00b5: return new Usage(this, id, "Personal Activity: Step Detection", UsageTypes.CA|UsageTypes.CP); case 0x00c0: return new Usage(this, id, "Orientation Extended", UsageTypes.CA|UsageTypes.CP); case 0x00c1: return new Usage(this, id, "Orientation Extended: Geomagnetic Orientation", UsageTypes.CA|UsageTypes.CP); case 0x00c2: return new Usage(this, id, "Orientation Extended: Magnetometer", UsageTypes.CA|UsageTypes.CP); @@ -321,6 +322,12 @@ protected override Usage CreateUsage(ushort id) case 0x04bb: return new Usage(this, id, "Data Field: Respiratory Rate", UsageTypes.SV); case 0x04bc: return new Usage(this, id, "Data Field: SpO2", UsageTypes.SV); case 0x04bd: return new Usage(this, id, "Data Field: Human Attention Detected", UsageTypes.MC); + case 0x04be: return new Usage(this, id, "Data Field: Human Head Azimuth", UsageTypes.SV); + case 0x04bf: return new Usage(this, id, "Data Field: Human Head Altitude", UsageTypes.SV); + case 0x04c0: return new Usage(this, id, "Data Field: Human Head Roll", UsageTypes.SV); + case 0x04c1: return new Usage(this, id, "Data Field: Human Head Pitch", UsageTypes.SV); + case 0x04c2: return new Usage(this, id, "Data Field: Human Head Yaw", UsageTypes.SV); + case 0x04c3: return new Usage(this, id, "Data Field: Human Correlation Id", UsageTypes.SV); case 0x04d0: return new Usage(this, id, "Data Field: Light", UsageTypes.DV); case 0x04d1: return new Usage(this, id, "Data Field: Illuminance", UsageTypes.SV); case 0x04d2: return new Usage(this, id, "Data Field: Color Temperature", UsageTypes.SV); @@ -504,6 +511,7 @@ protected override Usage CreateUsage(ushort id) case 0x0843: return new Usage(this, id, "Reporting State: Wake On No Events", UsageTypes.Sel); case 0x0844: return new Usage(this, id, "Reporting State: Wake On All Events", UsageTypes.Sel); case 0x0845: return new Usage(this, id, "Reporting State: Wake On Threshold Events", UsageTypes.Sel); + case 0x0846: return new Usage(this, id, "Reporting State: Anytime", UsageTypes.Sel); case 0x0850: return new Usage(this, id, "Power State: Undefined", UsageTypes.Sel); case 0x0851: return new Usage(this, id, "Power State: D0 Full Power", UsageTypes.Sel); case 0x0852: return new Usage(this, id, "Power State: D1 Low Power", UsageTypes.Sel); @@ -670,8 +678,8 @@ protected override Usage CreateUsage(ushort id) case 0x0984: return new Usage(this, id, "Device Position: Moving in Bag", UsageTypes.Sel); case 0x0985: return new Usage(this, id, "Device Position: Stationary in Bag", UsageTypes.Sel); case 0x0990: return new Usage(this, id, "Step Type: Unknown", UsageTypes.Sel); - case 0x0991: return new Usage(this, id, "Step Type: Running", UsageTypes.Sel); - case 0x0992: return new Usage(this, id, "Step Type: Walking", UsageTypes.Sel); + case 0x0991: return new Usage(this, id, "Step Type: Walking", UsageTypes.Sel); + case 0x0992: return new Usage(this, id, "Step Type: Running", UsageTypes.Sel); case 0x09a0: return new Usage(this, id, "Gesture State: Unknown", UsageTypes.Sel); case 0x09a1: return new Usage(this, id, "Gesture State: Started", UsageTypes.Sel); case 0x09a2: return new Usage(this, id, "Gesture State: Completed", UsageTypes.Sel); diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SimulationControlsPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SimulationControlsPage.g.cs index 06cf761..a214f6a 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SimulationControlsPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SimulationControlsPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SimulationControlsUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SimulationControlsUsagePage.g.cs index 914458a..e95dcb5 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SimulationControlsUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SimulationControlsUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SoCPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SoCPage.g.cs new file mode 100644 index 0000000..c46b68b --- /dev/null +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SoCPage.g.cs @@ -0,0 +1,87 @@ +// Licensed under the Apache License, Version 2.0 (the "License"). +// See the LICENSE file in the project root for more information. + +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. + +#pragma warning disable CS0108 // Member hides inherited member; missing new keyword + +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.ComponentModel; + +namespace DevDecoder.HIDDevices.Usages +{ + // + // SoC Usage Page. + // + [Description("SoC Usage Page")] + public enum SoCPage : uint + { + // + // Undefined Usage. + // + [Description("Undefined")] + Undefined = 0x00110000, + + // + // SocControl Usage. + // + [Description("SocControl")] + SocControl = 0x00110001, + + // + // FirmwareTransfer Usage. + // + [Description("FirmwareTransfer")] + FirmwareTransfer = 0x00110002, + + // + // FirmwareFileId Usage. + // + [Description("FirmwareFileId")] + FirmwareFileId = 0x00110003, + + // + // FileOffsetInBytes Usage. + // + [Description("FileOffsetInBytes")] + FileOffsetInBytes = 0x00110004, + + // + // FileTransferSizeMaxInBytes Usage. + // + [Description("FileTransferSizeMaxInBytes")] + FileTransferSizeMaxInBytes = 0x00110005, + + // + // FilePayload Usage. + // + [Description("FilePayload")] + FilePayload = 0x00110006, + + // + // FilePayloadSizeInBytes Usage. + // + [Description("FilePayloadSizeInBytes")] + FilePayloadSizeInBytes = 0x00110007, + + // + // FilePayloadContainsLastBytes Usage. + // + [Description("FilePayloadContainsLastBytes")] + FilePayloadContainsLastBytes = 0x00110008, + + // + // FileTransferStop Usage. + // + [Description("FileTransferStop")] + FileTransferStop = 0x00110009, + + // + // FileTransferTillEnd Usage. + // + [Description("FileTransferTillEnd")] + FileTransferTillEnd = 0x0011000a + } +} diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SoCUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SoCUsagePage.g.cs new file mode 100644 index 0000000..6b947de --- /dev/null +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SoCUsagePage.g.cs @@ -0,0 +1,55 @@ +// Licensed under the Apache License, Version 2.0 (the "License"). +// See the LICENSE file in the project root for more information. + +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. + +#pragma warning disable CS0108 // Member hides inherited member; missing new keyword + +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.ComponentModel; + +namespace DevDecoder.HIDDevices.Pages +{ + using DevDecoder.HIDDevices.Usages; + + // + // SoC Usage Page. + // + public sealed class SoCUsagePage : UsagePage + { + // + // Singleton instance of SoC Usage Page. + // + public static readonly SoCUsagePage Instance = new(); + + // + // Create singleton. + // + private SoCUsagePage() : base(0x0011, "SoC") + { + } + + /// + protected override Usage CreateUsage(ushort id) + { + switch (id) + { + case 0x0000: return new Usage(this, id, "Undefined", UsageTypes.None); + case 0x0001: return new Usage(this, id, "SocControl", UsageTypes.CA); + case 0x0002: return new Usage(this, id, "FirmwareTransfer", UsageTypes.CL); + case 0x0003: return new Usage(this, id, "FirmwareFileId", UsageTypes.DV); + case 0x0004: return new Usage(this, id, "FileOffsetInBytes", UsageTypes.DV); + case 0x0005: return new Usage(this, id, "FileTransferSizeMaxInBytes", UsageTypes.DV); + case 0x0006: return new Usage(this, id, "FilePayload", UsageTypes.DV); + case 0x0007: return new Usage(this, id, "FilePayloadSizeInBytes", UsageTypes.DV); + case 0x0008: return new Usage(this, id, "FilePayloadContainsLastBytes", UsageTypes.DF); + case 0x0009: return new Usage(this, id, "FileTransferStop", UsageTypes.DF); + case 0x000a: return new Usage(this, id, "FileTransferTillEnd", UsageTypes.DF); + } + + return base.CreateUsage(id); + } + } +} diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SportControlsPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SportControlsPage.g.cs index 1b66124..31b9abd 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SportControlsPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SportControlsPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SportControlsUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SportControlsUsagePage.g.cs index b1e2b91..3afe71a 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SportControlsUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/SportControlsUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/TelephonyDevicePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/TelephonyDevicePage.g.cs index 34f12e6..0db0b6a 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/TelephonyDevicePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/TelephonyDevicePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/TelephonyDeviceUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/TelephonyDeviceUsagePage.g.cs index 2566f85..0b149c3 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/TelephonyDeviceUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/TelephonyDeviceUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/UsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/UsagePage.g.cs index 1e31398..b7eac0d 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/UsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/UsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword @@ -40,6 +40,7 @@ public partial class UsagePage [0x000d] = DigitizersUsagePage.Instance, [0x000e] = HapticsUsagePage.Instance, [0x000f] = PhysicalInputDeviceUsagePage.Instance, + [0x0011] = SoCUsagePage.Instance, [0x0012] = EyeAndHeadTrackersUsagePage.Instance, [0x0014] = AuxiliaryDisplayUsagePage.Instance, [0x0020] = SensorsUsagePage.Instance, @@ -134,6 +135,11 @@ public partial class UsagePage // public static readonly PhysicalInputDeviceUsagePage PhysicalInputDevice = PhysicalInputDeviceUsagePage.Instance; + // + // SoC Usage Page. + // + public static readonly SoCUsagePage SoC = SoCUsagePage.Instance; + // // Eye and Head Trackers Usage Page. // diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VESAVirtualControlsPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VESAVirtualControlsPage.g.cs index 55fbedd..0f85db6 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VESAVirtualControlsPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VESAVirtualControlsPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VESAVirtualControlsUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VESAVirtualControlsUsagePage.g.cs index c94216c..5826d9d 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VESAVirtualControlsUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VESAVirtualControlsUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VRControlsPage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VRControlsPage.g.cs index 538490d..f1c332d 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VRControlsPage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VRControlsPage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VRControlsUsagePage.g.cs b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VRControlsUsagePage.g.cs index 561a0cb..e81ff2d 100644 --- a/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VRControlsUsagePage.g.cs +++ b/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator/VRControlsUsagePage.g.cs @@ -1,7 +1,7 @@ // Licensed under the Apache License, Version 2.0 (the "License"). // See the LICENSE file in the project root for more information. -// Specification revision: 1.3.0; generated at 2022-03-01 02:00:40Z. +// Specification revision: 1.5.0; generated at 2024-01-08 23:33:15Z. #pragma warning disable CS0108 // Member hides inherited member; missing new keyword diff --git a/HIDDevices/HIDDevices.csproj b/HIDDevices/HIDDevices.csproj index ecde742..ebfee0b 100644 --- a/HIDDevices/HIDDevices.csproj +++ b/HIDDevices/HIDDevices.csproj @@ -39,7 +39,7 @@ true Generated - https://usb.org/sites/default/files/hut1_3_0.pdf + $([System.IO.File]::ReadAllText("HIDUsageTablesPDF.url")) HidUsageTables.json diff --git a/HIDUsageTablesPDF.url b/HIDUsageTablesPDF.url new file mode 100644 index 0000000..f11c215 --- /dev/null +++ b/HIDUsageTablesPDF.url @@ -0,0 +1 @@ +https://usb.org/sites/default/files/hut1_5.pdf \ No newline at end of file diff --git a/readme.md b/readme.md index b093fe7..09b04ee 100644 --- a/readme.md +++ b/readme.md @@ -2,15 +2,14 @@ [![Nuget](https://img.shields.io/nuget/v/HIDDevices)](https://www.nuget.org/packages/HIDDevices/) # Description -This library provides a cross-platform service for asynchronously accessing HID devices, such as Gamepads, Joysticks and Multi-axis controllers and programmable button pads. It supports Plug & Play, correctly identifying when controllers are added and removed, and Reactive frameworks. It also allows the creation of custom Controller implementations which are matched automatically against devices for easy use. +This library provides a cross-platform service for asynchronously accessing HID devices, such as Gamepads, Joysticks, Multi-axis controllers, and programmable button pads. It supports Plug & Play, correctly identifying when controllers are added and removed, and Reactive frameworks. It also allows the creation of custom Controller implementations, which are matched automatically against devices for easy use. ## Important Notes -* The project is currently based on [HIDSharp](https://www.zer7.com/software/hidsharp), but deliberately does not expose any of its library explicitly as it may well be replaced in future. -* Although the project isn't actively maintained, I do occassionaly refresh the usage tables, and will respond to issues if raised in the issue tracker. -* As the `Usage`s and `UsagePage`s are auto-generated they can change between versions whenever [the USB HID Usage Tables](https://usb.org/hid) are updated. This can cause breaking changes in your own code, so be careful when updating versions of the NuGet. In particular, any time the HID tables are updated, I will update -the minor version number (at least). Notable changes include from 2.0-2.1, when many of 1-indexed usages were changed to 0-indexed, e.g. `ButtonPage.Button1` became `ButtonPage.Button0`; and when moving from version 2 to version 3, when the code generation was changed and the source of truth was changed to directly reference the published PDF specification (see #6). -* It appears that the XInput-compatible HID device driver only transmits events from the HID device whilst the current process has a focussed window, so console applications/background services don't appear to work! This is not a bug in this library, although -I have been unable to find where this 'feature' is documented. This affects the "Microsoft XBox One for Windows Controller". +* The project is based on [HIDSharp](https://www.zer7.com/software/hidsharp) but deliberately does not expose any of its API explicitly, as I may replace it in a future version. +* Although the project isn't actively maintained, I occasionally refresh the usage tables and respond to issues if you raise them in the issue tracker. +* As the `Usage`s and `UsagePage`s are auto-generated they can change between versions whenever [the USB HID Usage Tables](https://usb.org/hid) are updated. This can cause breaking changes in your code, so be careful when updating versions of the NuGet. In particular, any time the HID tables are updated, I will update +the minor version number (at least). Notable changes include from 2.0-2.1 when many of the 1-indexed usages were changed to 0-indexed, e.g. `ButtonPage.Button1` became `ButtonPage.Button0`; and when moving from version 2 to version 3, when I changed the code generation algorithm and the source of truth was changed to directly reference the published PDF specification (see #6). +* The XInput-compatible HID device driver only transmits events from the HID device whilst the current process has a focussed window, so console applications/background services don't appear to work! This is not a bug in this library, although I have been unable to find where this 'feature' is documented. It affects the "Microsoft XBox One for Windows Controller". # Installation The library is [available via NuGet](https://www.nuget.org/packages?q=HIDDevices) and is delivered via NuGet Package Manager: @@ -28,42 +27,44 @@ Install-Package HIDDevices # Usage -There is a [sample program](HIDDevices.Sample) included which demonstrates using the library in various scenarios. +The [sample program](HIDDevices.Sample) demonstrates using the library in various scenarios. ## Devices ### Initialisation -To start monitoring controllers add the following code: +To start monitoring controllers, add the following code: ```csharp using var devices = new Devices(); ``` -**Note** this instantiates a new instance of the [Devices](HIDDevices/Devices.cs) class which immediately starts listening for new HID devices. In practice you should only ever create one of these. The [Devices](HIDDevices/Devices.cs) class implements `IDisposable` for asynchronous disposal, which cleans up all listeners. +**Note** This instantiates a new instance of the [Devices](HIDDevices/Devices.cs) class, which immediately starts listening for new HID devices. In practice, you should only ever create one of these. The [Devices](HIDDevices/Devices.cs) class implements `IDisposable` for asynchronous disposal, which cleans up all listeners. -Alternatively, the library is fully compatible with Dependency injection frameworks. Register the service as a Singleton (so only one instance is created) using code similar to: +Alternatively, the library is fully compatible with Dependency injection frameworks. Register the service as a Singleton (so only one instance is created) using code similar to: ```csharp services.AddSingleton(); ... var devices = serviceProvider.GetService(); ``` -Modern DI frameworks should correctly handle instantiation and disposal automatically, as well as suppplying a logger if registered. +Modern DI frameworks should correctly handle instantiation and disposal automatically and supply a logger if registered. ### Logging -The `Devices` constructor accepts an [`ILogger`](https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1?view=dotnet-plat-ext-3.1&viewFallbackFrom=netstandard-2.1) for logging, this is normally injected via dependency injection, but an example of a simple logger can be found in the [samples](HIDDevices.Sample) - [SimpleConsoleLogger](HIDDevices.Sample/SimpleConsoleLogger.cs). +The `Devices` constructor accepts an [`ILogger`](https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1?view=dotnet-plat-ext-3.1&viewFallbackFrom=netstandard-2.1) for logging, most often supplied via dependency injection, but you can find an example of a simple logger in the [samples](HIDDevices.Sample) - [SimpleConsoleLogger](HIDDevices.Sample/SimpleConsoleLogger.cs). ### Detecting changes in devices -The Devices service implements a `IObservableCache` property which can be subscribed to, to detect add/update/remove events for devices. For more information on `IObservableCache<,>`, and how to consume them, see [DynamicData](https://github.com/reactiveui/DynamicData). e.g. +The Devices service implements an `IObservableCache` property, which publishes add/update/remove events for devices. For more information on `IObservableCache<,>` and how to consume them, see [DynamicData](https://github.com/reactiveui/DynamicData). e.g. ```csharp using var subscription = devices.Connect().Subscribe(changeSet => { ... }); ``` -The standard `Connect()` method retrieves an observable collection of all devices, but does not actually attempt to connect to them; which is useful when you only want to see what is known to the Operating System. However, you can also use the `Connected()` extension method, which _does_ attempt to establish a working connection to the devices, and only includes devices that are _currently_ connected (_whilst_ they remain connected). As such it is a subset of the observable collection returned by `Connect()`. A disconnected device is one that is still connected to the system, but to which a connection can not be established by the library. For example, Windows prevents access to Keyboard and Mouse devices, but they are still listed. Devices that are physically disconnected (and hence not seen by the Operating System) will be removed from both collections. +The standard `Connect()` method retrieves an observable collection of all devices but does not attempt to connect to them, which is useful when you only want to see what is known to the Operating System. However, you can also use the `Connected()` extension method, which _does_ attempt to establish a working connection to the devices, and only includes devices that are _currently_ connected (_whilst_ they remain connected). It is a subset of the observable collection returned by `Connect()`. -Both methods accept a `predicate` that can be used to efficiently filter devices to only include those you are interested in, for example: +A disconnected device is connected to the system, but the library can not establish a connection to it. For example, Windows prevents access to Keyboard and Mouse devices, but they are still listed. Devices that are physically disconnected (and hence not seen by the Operating System) are absent from both collections. + +Both methods accept a `predicate` that you can use to efficiently filter devices only to include those you are interested in, for example: ```csharp using var subscription = @@ -73,17 +74,17 @@ using var subscription = .Subscribe() ``` -This uses the `UsagesAll` extension method to filter devices that don't implement the `GamePad` usage, and the `ControlUsagesAll` extension method to only select devices that have controls that implement all the specified usages (i.e. must have an `X` and `Y` axis - which, according to the HID specs, all GamePads are supposed to expose, but there's no guarantee). There are also `UsagesAny` and `ControlUsagesAny` extension methods; and `DeviceUsages*` and `ControlUsages*` extension methods that can be applied to `Devices` directly (and are equaivalent to calling `Connect(...)` with the appropriate delegate). +This uses the `UsagesAll` extension method to filter devices that don't implement the `GamePad` usage and the `ControlUsagesAll` extension method to only select devices that have controls that implement all the specified usages (i.e. must have an `X` and `Y` axis - which, according to the HID specs, all GamePads are supposed to expose, but there's no guarantee). There are also `UsagesAny` and `ControlUsagesAny` extension methods and `DeviceUsages*` and `ControlUsages*` extension methods that you can apply to `Devices` directly (and are equivalent to calling `Connect(...)` with the appropriate delegate). -Supplying a delegate to filter the `Connected()` extension method is particularly recommended as it prevents unneccessary connection attempts to devices which you are not interested in. +Supplying a delegate to filter the `Connected()` extension method is recommended to prevent unnecessary connection attempts to devices you are not interested in. ### Connecting to a device -Each `Device` classs implements `IObservable>` which can be used to obserbe changes in control values. A connection to the device is not established unless there is at least one subscriber to this interface. There is also an `IObservable ConnectionState` property that changes value when the device connects/disconnects; subscribing to the `ConnectionState` will also ensure that there is a subscription to the main observable - attempting a connection. To see the current connection state, you can use the `IsConnected` property, which returns the instantaneous value, but doesn't attempt a connection itself. Using the `Connected()` extension method on the `Devices` collection will also ensure there is a subscription, and hence connection attempt. +Each `Device` class implements `IObservable>`, which you can use to observe changes in control values. A connection to the device is only established when there is at least one subscriber to this interface. There is also an `IObservable ConnectionState` property that changes value when the device connects/disconnects; subscribing to the `ConnectionState` will also ensure a subscription to the main observable - attempting a connection. To see the current connection state, you can use the `IsConnected` property, which returns the instantaneous value but doesn't attempt a connection. Using the `Connected()` extension method on the `Devices` collection will also ensure a subscription and connection attempt. ### Detecting changes in controls - As mentioned above the `Device` object implements `IObservable>` which returns batches of changes reported by a device when subscribed to. `Device` also implements `IReadOnlyDictionary`, which can be used to find the last observed state of the Device's controls - however this doesn't establish a connection itself, so you should first connect by subscribing to the `Device`. A control's value is always mapped to a value between 0 and 1, or `double.NaN` to indicate null. For convenience you can look for control changes across all devices using the `ControlChanges` extension method. e.g. + As mentioned above, the `Device` object implements `IObservable>`, which returns batches of changes reported by a device when subscribed to. `Device` also implements `IReadOnlyDictionary`, which you can use to find the last observed state of the Device's controls - however this doesn't establish a connection itself, so you should first connect by subscribing to the `Device`. A control's value is always mapped to a value between 0 and 1, or `double.NaN` to indicate null. You can look for control changes across all devices using the `ControlChanges` extension method for convenience. e.g. ```csharp using var subscription2 = devices @@ -95,14 +96,14 @@ using var subscription2 = devices }); ``` -A `ControlChange` indicates the changed `Control`, the `PreviousValue` and the new `Value`. It also indicates how stale the change is by having `Timestamp` and, the derived `Elapsed` properties. +A `ControlChange` indicates the changed `Control`, the `PreviousValue` and the new `Value`. It also shows how stale the change is by having `Timestamp` and the associated `Elapsed` properties. -**Note**: HID devices are not required to report their initial state on connection, and frequently do not. It is common for the device to only report it's entire state the first time it communicate (e.g. on a button press); as such the `ControlChange` retrieved for a given `Control` may by a default struct until such a time as an update is received. In such a cash the `Timestamp` property will be `0` (and so the `Elapsed` will be `Timeout.InfiniteTimeSpan`). +**Note**: HID devices are not required to report their initial state on connection and frequently do not. It is typical for the device only to report its entire state the first time it communicates (e.g. on a button press); as such, the `ControlChange` retrieved for a given `Control` may be a default struct until such a time as an update is received. In such a case the `Timestamp` property will be `0` (and the `Elapsed` will be `Timeout.InfiniteTimeSpan`). # Controllers -To make devices easier to consume, the library contains a `Controller` concept which is effectively a device definition. These are easy to define using attributes (see [Gamepad](HIDDevices/Controllers/Gamepad.cs) for a complete example). +To make devices simpler to consume, the library contains a `Controller` concept, effectively a device definition. These are easy to define using attributes (see [Gamepad](HIDDevices/Controllers/Gamepad.cs) for a complete example). -To create a new Controller definition, extend the `Controller` class, and, optionally add zero or more `DeviceAttribute` attributes. The specified `DeviceAttribute`s must be satisfied for a `Device` to match the controller. `DeviceAttribute`s can specify multiple `Usage`s, all of which must match, or multiple `DeviceAttribute`s can be used to provide alternatives. They can also filter by Product ID, or Version, for example: +To create a new Controller definition, extend the `Controller` class and add zero or more `DeviceAttribute` attributes optionally. The specified `DeviceAttribute`s must be satisfied for a `Device` to match the controller. `DeviceAttribute`s can specify multiple `Usage`s, all of which must match, or you can use multiple `DeviceAttribute`s to provide alternatives. They can also filter by Product ID or Version, for example: ```csharp // The following controller will match devices that have either the GamePad @@ -112,14 +113,14 @@ To create a new Controller definition, extend the `Controller` class, and, optio public class Joystick : Controller { ... } ``` -In a similar way, you can then indicate properties that you wish to bind to a `Device`'s `Control`, using the `ControlAttribute`. Again, multiple usages on the same attribute must _all_ match, but multiple attributes can be specified per property. Where multiple attributes are specified, a weighting can be given to indicate a preference during the matching process (see example below). +Similarly, you can then indicate properties that you wish to bind to a `Device`'s `Control` using the `ControlAttribute`. Again, multiple usages on the same attribute must _all_ match, but you can specify multiple attributes per property. Where multiple attributes are selected, you can define a weighting to indicate a preference during the matching process (see example below). If a `RequiredAttribute` is placed on a Control Property, then a device that does not supply such a property will not be matched to the controller. -Finally, properties can be converted using `TypeConverter`s by specifying a `TypeConverterAttribute`. +Finally, you can automatically convert a property's type using `TypeConverter`s by specifying a `TypeConverterAttribute`. ```csharp -// The following example indicates a required control, that must match the 'GenericDesktopPage.X'. +// The following example indicates a required control matching the 'GenericDesktopPage.X'. // It also converts the normal 0->1 range of values to -1->1 using the 'SignedConverter'. [Control(GenericDesktopPage.X)] [Required] @@ -128,7 +129,7 @@ public double X => GetValue(); // The following example matches controls with the 'GenericDesktopPage.Select' in preference // to those with 'ButtonPage.Button6', a match is not required. -// A default converter is registered for booleans already which returns false for values < 0.5. +// A default converter is registered for booleans already, which returns false for values < 0.5. [Control(GenericDesktopPage.Select, Weight = 2)] [Control(ButtonPage.Button6)] public bool Select => GetValue(); @@ -136,21 +137,21 @@ public bool Select => GetValue(); To register a default type converter for control properties, use `Controller.RegisterDefaultTypeConverter`, e.g. ```csharp -// Note this registration occurs by default, but can be overriden with your own default converter. +// Note this registration occurs by default, but you can override it with a custom default converter. Controller.RegisterDefaultTypeConverter(typeof(bool), BooleanConverter.Instance); ``` - Once a device is matched to a controller it exposes the latest values of the controller via easily accessed properties. Changes can also be observed via the `Changes` property. To listen for specific controllers from `Devices` use the `Controllers` extension method, e.g. +Once a device matches a controller, it exposes the latest values of the controller via easily accessed properties. You can also observe changes via the `Changes` property. To listen for specific controllers from `Devices` use the `Controllers` extension method, e.g. ```csharp // Holds a reference to the current gamepad, which is set asynchronously as they are detected. Gamepad? gamepad = null; var batch = 0; -// Controller to any gamepads as they are found +// Subscribe to any gamepads as they are found using var subscription = devices.Controllers().Subscribe(g => { - // If we already have a connected gamepad ignore any more. + // If we already have a connected gamepad, ignore any more. // ReSharper disable once AccessToDisposedClosure if (gamepad?.IsConnected == true) { @@ -166,18 +167,20 @@ using var subscription = devices.Controllers().Subscribe(g => As demonstrated, a `Controller` doesn't start listening for changes until you call the `Connect()` method on it. # Usages -For convenience, the full HID Usage tables are exposed and described via the `Usages`, `UsagePages` and `UsageTypes` classes. These can be retrieved either directly using the `uint` identifier, or using the convenience enums, all of which have the `Page` suffix, for which implicit casts are available. +For convenience, the full HID Usage tables are exposed and described via the `Usages`, `UsagePages` and `UsageTypes` classes. These can be retrieved directly using the `uint` identifier or the convenience enums, all of which have the `Page` suffix, for which implicit casts are available. ```csharp -// The enums can be cast to a Usage to retrieve full information about the Usage and it's page. +// The enums can be cast to a Usage to retrieve full information about the Usage and its page. Usage usage = ButtonPage.Button0; Console.WriteLine($"Usage: {usage.Name}; Page: {usage.Page.Name}"); ``` # The HID Tables -The Usage Page enums and classes are extremely convenient, but it is entirely possible to use this library with, as yet unpublished, values by using the raw ids. +The Usage Page enums and classes are highly convenient, but using the raw IDs is possible if the enum is not defined in the library. + +However, publishing an updated NuGet whenever the specification changes is also relatively quick, as the build process can download the raw PDF from [usb.org](https://usb.org) and generate new code automatically. Unfortunately, I do not monitor the specifications for updates, so please [create an issue](https://github.com/DevDecoder/HIDDevices/issues) if you would like to prompt me to update - I usually respond quickly. -However, it is also relatively quick to publish an updated NuGet whenever the specification changes as the build process can download the raw PDF from https://usb.org and generate new code automatically. Unfortuantely, I do not monitor the specifications for updates, so please [create an issue](https://github.com/DevDecoder/HIDDevices/issues) if you would like to prompt me to update - I usually respond fairly quickly. +The latest PDF URL can be found in [HIDUsageTablesPDF.url](HIDUsageTablesPDF.url), and the generated files found in [this folder](https://github.com/DevDecoder/HIDDevices/tree/master/HIDDevices/Generated/HIDDevices.Generator/HIDDevices.Generator.UsagePageGenerator) explicitly state the current specification and generation date in their headers. # TODO @@ -188,17 +191,17 @@ However, it is also relatively quick to publish an updated NuGet whenever the sp ## Testing status -The following controllers have been tested: +I have tested the following controllers: * Saitek X-52 Pro Flight Control System, * Razer Sabertooth Elite -* Microsoft XBox One for Windows Controller (_**Note** that it appears XInput-compatible HID device driver only transmits events from the HID device whilst the current process has a focussed window, so console applications/background services don't appear to work! That is not usually an issue for games, which have a focussed window, but does affect the sample application. This is not a bug in this library._) +* Microsoft XBox One for Windows Controller (_**Note** that XInput-compatible HID device driver only transmits events from the HID device whilst the current process has a focussed window, so console applications/background services don't appear to work! That is not usually an issue for games with a focused window, but it does affect the sample application. This is not a bug in this library._) -The following OS's have been tested: +I have also tested the following OS's: * Windows 10 Pro 2004 (19041.330) * Windows 11 Pro 21H2 (10.0.22000.194) * Ubuntu (limited testing so far) -Please let me know if you've confirmed it as working with other devices/OS's by raising an issue. +Please let me know if you've confirmed it as working with other devices/OSs by raising an issue. # Acknowledgements @@ -207,5 +210,5 @@ Please let me know if you've confirmed it as working with other devices/OS's by * It makes extensive use of [HIDSharp](https://www.zer7.com/software/hidsharp) (© Copyright 2012, James F. Bellinger, licensed under Apache License 2.0) _although this may be replaced in future versions_ * [Reactive Extensions](https://github.com/dotnet/reactive) * [Dynamic Data](https://github.com/reactiveui/DynamicData). -* [iTextSharp PDF libary](https://usb.org/hid) - used to automatically extract the JSON HID table from the PDF specifcation in the version 3 generator. +* [iTextSharp PDF libary](https://usb.org/hid) - used to automatically extract the JSON HID table from the PDF specification in the version 3 generator. diff --git a/version.json b/version.json index 436dd03..a6b0bfa 100644 --- a/version.json +++ b/version.json @@ -1,7 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "3.0", + "version": "3.1", "publicReleaseRefSpec": [ "^refs/heads/master$", "^refs/heads/v\\d+(?:\\.\\d+)?$"