# HG changeset patch
# User sl
# Date 1419008753 -3600
# Node ID ddfd2ddf10e1d8d0df0264990de1804fa089a6d0
# Parent 634ac38db22570cfbf214a0931ea8f583366b659
Generated full list of consumer controls.
Add Perl script we used for parsing.
diff -r 634ac38db225 -r ddfd2ddf10e1 HidUsageTableConsumer.txt
--- a/HidUsageTableConsumer.txt Fri Dec 19 16:54:32 2014 +0100
+++ b/HidUsageTableConsumer.txt Fri Dec 19 18:05:53 2014 +0100
@@ -139,7 +139,8 @@
10B Duress Alarm OSC 15.11
10C Holdup Alarm OSC 15.11
10D Medical Alarm OSC 15.11
-10E-14F Reserved 150 Balance Right RTC 15.9.2
+10E-14F Reserved
+150 Balance Right RTC 15.9.2
151 Balance Left RTC 15.9.2
152 Bass Increment RTC 15.9.3
153 Bass Decrement RTC 15.9.3
diff -r 634ac38db225 -r ddfd2ddf10e1 HidUsageTables.cs
--- a/HidUsageTables.cs Fri Dec 19 16:54:32 2014 +0100
+++ b/HidUsageTables.cs Fri Dec 19 18:05:53 2014 +0100
@@ -49,7 +49,7 @@
}
public enum UsageCollectionGenericDesktop : ushort
- {
+ {
Pointer = 0x01,
Mouse = 0x02,
Joystick = 0x04,
@@ -90,10 +90,10 @@
GenericGuiApplicationControls = 0x0200,
}
-
+
public enum UsageCollectionWindowsMediaCenter: ushort
{
- WindowsMediaCenterRemoteControl = 0x88
+ WindowsMediaCenterRemoteControl = 0x88
}
@@ -283,128 +283,334 @@
/// Usage Table for Consumer Controls
/// 0x0C 0X01
///
- public enum ConsumerControl: ushort
+ public enum ConsumerControl : ushort
{
- Null = 0x0000,
- //
- Channel = 0x0086,
- MediaSelectComputer = 0x0088,
- MediaSelectTV = 0x0089,
- MediaSelectWWW = 0x008A,
- MediaSelectDVD = 0x008B,
- MediaSelectTelephone = 0x008C,
- MediaSelectProgramGuide = 0x008D,
- MediaSelectVideoPhone = 0x008E,
- MediaSelectGames = 0x008F,
- MediaSelectMessages = 0x0090,
- MediaSelectCD = 0x0091,
- MediaSelectVCR = 0x0092,
- MediaSelectTuner = 0x0093,
- Quit = 0x0094,
- Help = 0x0095,
- MediaSelectTape = 0x0096,
- MediaSelectCable = 0x0097,
- MediaSelectSatellite = 0x0098,
- MediaSelectSecurity = 0x0099,
- MediaSelectHome = 0x009A,
- MediaSelectCall = 0x009B,
- ChannelIncrement = 0x009C,
- ChannelDecrement = 0x009D,
- MediaSelectSAP = 0x009E,
+ Null = 0x0000,
//
- Play = 0x00B0,
- Pause = 0x00B1,
- Record = 0x00B2,
- FastForward = 0x00B3,
- Rewind = 0x00B4,
- ScanNextTrack = 0x00B5,
- ScanPreviousTrack = 0x00B6,
- Stop = 0x00B7,
- Eject = 0x00B8,
- RandomPlay = 0x00B9,
- EnterDisc = 0x00BB,
- Repeat = 0x00BC,
- Tracking = 0x00BD,
- TrackNormal = 0x00BE,
- SlowTracking = 0x00BF,
- FrameForward = 0x00C0,
- FrameBack = 0x00C1,
- Mark = 0x00C2,
- ClearMark = 0x00C3,
- RepeatFromMark = 0x00C4,
- ReturnToMark = 0x00C5,
- SearchMarkForward = 0x00C6,
- SearchMarkBackwards = 0x00C7,
- CounterReset = 0x00C8,
- ShowCounter = 0x00C9,
- TrackingIncrement = 0x00CA,
- TrackingDecrement = 0x00CB,
- StopEject = 0x00CC,
- PlayPause = 0x00CD,
- PlaySkip = 0x00CE,
-
- ///
- /// Audio controls
- ///
- Volume = 0x00E0,
- Balance = 0x00E1,
- Mute = 0x00E2,
- Bass = 0x00E3,
- Treble = 0x00E4,
- BassBoost = 0x00E5,
- SurroundMode = 0x00E6,
- Loudness = 0x00E7,
- MPX = 0x00E8,
- VolumeIncrement = 0x00E9,
- VolumeDecrement = 0x00EA,
-
- //Generic GUI Application Controls
- //GenericGUIApplicationControls = 0x0200,
- AppCtrlNew = 0x0201,
- AppCtrlOpen = 0x0202,
- AppCtrlClose = 0x0203,
- AppCtrlExit = 0x0204,
- AppCtrlMaximize = 0x0205,
- AppCtrlMinimize = 0x0206,
- AppCtrlSave = 0x0207,
- AppCtrlPrint = 0x0208,
- AppCtrlProperties = 0x0209,
- AppCtrlUndo = 0x021A,
- AppCtrlCopy = 0x021B,
- AppCtrlCut = 0x021C,
- AppCtrlPaste = 0x021D,
- AppCtrlSelectAll = 0x021E,
- AppCtrlFind = 0x021F,
- AppCtrlFindAndReplace = 0x0220,
- AppCtrlSearch = 0x0221,
- AppCtrlGoTo = 0x0222,
- AppCtrlHome = 0x0223,
- AppCtrlBack = 0x0224,
- AppCtrlForward = 0x0225,
- AppCtrlStop = 0x0226,
- AppCtrlRefresh = 0x0227,
- AppCtrlPreviousLink = 0x0228,
- AppCtrlNextLink = 0x0229,
- AppCtrlBookmarks = 0x022A,
- AppCtrlHistory = 0x022B,
- AppCtrlSubscriptions = 0x022C,
- AppCtrlZoomIn = 0x022D,
- AppCtrlZoomOut = 0x022E,
- AppCtrlZoom = 0x022F,
- AppCtrlFullScreenView = 0x0230,
- AppCtrlNormalView = 0x0231,
- AppCtrlViewToggle = 0x0232,
- AppCtrlScrollUp = 0x0233,
- AppCtrlScrollDown = 0x0234,
- AppCtrlScroll = 0x0235,
- AppCtrlPanLeft = 0x0236,
- AppCtrlPanRight = 0x0237,
- AppCtrlPan = 0x0238,
- AppCtrlNewWindow = 0x0239,
- AppCtrlTileHorizontally = 0x023A,
- AppCtrlTileVertically = 0x023B,
- AppCtrlFormat = 0x023C,
- AppCtrlEdit = 0x023D,
+ ConsumerControl = 0x01,
+ NumericKeyPad = 0x02,
+ ProgrammableButtons = 0x03,
+ Microphone = 0x04,
+ Headphone = 0x05,
+ GraphicEqualizer = 0x06,
+ Plus10 = 0x20,
+ Plus100 = 0x21,
+ AmPm = 0x22,
+ Power = 0x30,
+ Reset = 0x31,
+ Sleep = 0x32,
+ SleepAfter = 0x33,
+ SleepMode = 0x34,
+ Illumination = 0x35,
+ FunctionButtons = 0x36,
+ Menu = 0x40,
+ MenuPick = 0x41,
+ MenuUp = 0x42,
+ MenuDown = 0x43,
+ MenuLeft = 0x44,
+ MenuRight = 0x45,
+ MenuEscape = 0x46,
+ MenuValueIncrease = 0x47,
+ MenuValueDecrease = 0x48,
+ DataOnScreen = 0x60,
+ ClosedCaption = 0x61,
+ ClosedCaptionSelect = 0x62,
+ VcrTv = 0x63,
+ BroadcastMode = 0x64,
+ Snapshot = 0x65,
+ Still = 0x66,
+ Selection = 0x80,
+ AssignSelection = 0x81,
+ ModeStep = 0x82,
+ RecallLast = 0x83,
+ EnterChannel = 0x84,
+ OrderMovie = 0x85,
+ Channel = 0x86,
+ MediaSelection = 0x87,
+ MediaSelectComputer = 0x88,
+ MediaSelectTv = 0x89,
+ MediaSelectWww = 0x8A,
+ MediaSelectDvd = 0x8B,
+ MediaSelectTelephone = 0x8C,
+ MediaSelectProgramGuide = 0x8D,
+ MediaSelectVideoPhone = 0x8E,
+ MediaSelectGames = 0x8F,
+ MediaSelectMessages = 0x90,
+ MediaSelectCd = 0x91,
+ MediaSelectVcr = 0x92,
+ MediaSelectTuner = 0x93,
+ Quit = 0x94,
+ Help = 0x95,
+ MediaSelectTape = 0x96,
+ MediaSelectCable = 0x97,
+ MediaSelectSatellite = 0x98,
+ MediaSelectSecurity = 0x99,
+ MediaSelectHome = 0x9A,
+ MediaSelectCall = 0x9B,
+ ChannelIncrement = 0x9C,
+ ChannelDecrement = 0x9D,
+ MediaSelectSap = 0x9E,
+ VcrPlus = 0xA0,
+ Once = 0xA1,
+ Daily = 0xA2,
+ Weekly = 0xA3,
+ Monthly = 0xA4,
+ Play = 0xB0,
+ Pause = 0xB1,
+ Record = 0xB2,
+ FastForward = 0xB3,
+ Rewind = 0xB4,
+ ScanNextTrack = 0xB5,
+ ScanPreviousTrack = 0xB6,
+ Stop = 0xB7,
+ Eject = 0xB8,
+ RandomPlay = 0xB9,
+ SelectDisc = 0xBA,
+ EnterDisc = 0xBB,
+ Repeat = 0xBC,
+ Tracking = 0xBD,
+ TrackNormal = 0xBE,
+ SlowTracking = 0xBF,
+ FrameForward = 0xC0,
+ FrameBack = 0xC1,
+ Mark = 0xC2,
+ ClearMark = 0xC3,
+ RepeatFromMark = 0xC4,
+ ReturnToMark = 0xC5,
+ SearchMarkForward = 0xC6,
+ SearchMarkBackwards = 0xC7,
+ CounterReset = 0xC8,
+ ShowCounter = 0xC9,
+ TrackingIncrement = 0xCA,
+ TrackingDecrement = 0xCB,
+ StopEject = 0xCC,
+ PlayPause = 0xCD,
+ PlaySkip = 0xCE,
+ Volume = 0xE0,
+ Balance = 0xE1,
+ Mute = 0xE2,
+ Bass = 0xE3,
+ Treble = 0xE4,
+ BassBoost = 0xE5,
+ SurroundMode = 0xE6,
+ Loudness = 0xE7,
+ Mpx = 0xE8,
+ VolumeIncrement = 0xE9,
+ VolumeDecrement = 0xEA,
+ SpeedSelect = 0xF0,
+ PlaybackSpeed = 0xF1,
+ StandardPlay = 0xF2,
+ LongPlay = 0xF3,
+ ExtendedPlay = 0xF4,
+ Slow = 0xF5,
+ FanEnable = 0x100,
+ FanSpeed = 0x101,
+ LightEnable = 0x102,
+ LightIlluminationLevel = 0x103,
+ ClimateControlEnable = 0x104,
+ RoomTemperature = 0x105,
+ SecurityEnable = 0x106,
+ FireAlarm = 0x107,
+ PoliceAlarm = 0x108,
+ Proximity = 0x109,
+ Motion = 0x10A,
+ DuressAlarm = 0x10B,
+ HoldupAlarm = 0x10C,
+ MedicalAlarm = 0x10D,
+ BalanceRight = 0x150,
+ BalanceLeft = 0x151,
+ BassIncrement = 0x152,
+ BassDecrement = 0x153,
+ TrebleIncrement = 0x154,
+ TrebleDecrement = 0x155,
+ SpeakerSystem = 0x160,
+ ChannelLeft = 0x161,
+ ChannelRight = 0x162,
+ ChannelCenter = 0x163,
+ ChannelFront = 0x164,
+ ChannelCenterFront = 0x165,
+ ChannelSide = 0x166,
+ ChannelSurround = 0x167,
+ ChannelLowFrequencyEnhancement = 0x168,
+ ChannelTop = 0x169,
+ ChannelUnknown = 0x16A,
+ SubChannel = 0x170,
+ SubChannelIncrement = 0x171,
+ SubChannelDecrement = 0x172,
+ AlternateAudioIncrement = 0x173,
+ AlternateAudioDecrement = 0x174,
+ ApplicationLaunchButtons = 0x180,
+ AppLaunchLaunchButtonConfigurationTool = 0x181,
+ AppLaunchProgrammableButtonConfiguration = 0x182,
+ AppLaunchConsumerControlConfiguration = 0x183,
+ AppLaunchWordProcessor = 0x184,
+ AppLaunchTextEditor = 0x185,
+ AppLaunchSpreadsheet = 0x186,
+ AppLaunchGraphicsEditor = 0x187,
+ AppLaunchPresentationApp = 0x188,
+ AppLaunchDatabaseApp = 0x189,
+ AppLaunchEmailReader = 0x18A,
+ AppLaunchNewsreader = 0x18B,
+ AppLaunchVoicemail = 0x18C,
+ AppLaunchContactsAddressBook = 0x18D,
+ AppLaunchCalendarSchedule = 0x18E,
+ AppLaunchTaskProjectManager = 0x18F,
+ AppLaunchLogJournalTimecard = 0x190,
+ AppLaunchCheckbookFinance = 0x191,
+ AppLaunchCalculator = 0x192,
+ AppLaunchAVCapturePlayback = 0x193,
+ AppLaunchLocalMachineBrowser = 0x194,
+ AppLaunchLanWanBrowser = 0x195,
+ AppLaunchInternetBrowser = 0x196,
+ AppLaunchRemoteNetworkingIspConnect = 0x197,
+ AppLaunchNetworkConference = 0x198,
+ AppLaunchNetworkChat = 0x199,
+ AppLaunchTelephonyDialer = 0x19A,
+ AppLaunchLogon = 0x19B,
+ AppLaunchLogoff = 0x19C,
+ AppLaunchLogonLogoff = 0x19D,
+ AppLaunchTerminalLockScreensaver = 0x19E,
+ AppLaunchControlPanel = 0x19F,
+ AppLaunchCommandLineProcessorRun = 0x1A0,
+ AppLaunchProcessTaskManager = 0x1A1,
+ AppLaunchSelectTaskApplication = 0x1A2,
+ AppLaunchNextTaskApplication = 0x1A3,
+ AppLaunchPreviousTaskApplication = 0x1A4,
+ AppLaunchPreemptiveHaltTaskApplication = 0x1A5,
+ AppLaunchIntegratedHelpCenter = 0x1A6,
+ AppLaunchDocuments = 0x1A7,
+ AppLaunchThesaurus = 0x1A8,
+ AppLaunchDictionary = 0x1A9,
+ AppLaunchDesktop = 0x1AA,
+ AppLaunchSpellCheck = 0x1AB,
+ AppLaunchGrammarCheck = 0x1AC,
+ AppLaunchWirelessStatus = 0x1AD,
+ AppLaunchKeyboardLayout = 0x1AE,
+ AppLaunchVirusProtection = 0x1AF,
+ AppLaunchEncryption = 0x1B0,
+ AppLaunchScreenSaver = 0x1B1,
+ AppLaunchAlarms = 0x1B2,
+ AppLaunchClock = 0x1B3,
+ AppLaunchFileBrowser = 0x1B4,
+ AppLaunchPowerStatus = 0x1B5,
+ AppLaunchImageBrowser = 0x1B6,
+ AppLaunchAudioBrowser = 0x1B7,
+ AppLaunchMovieBrowser = 0x1B8,
+ AppLaunchDigitalRightsManager = 0x1B9,
+ AppLaunchDigitalWallet = 0x1BA,
+ AppLaunchInstantMessaging = 0x1BC,
+ AppLaunchOemFeaturesTipsTutorialBrowser = 0x1BD,
+ AppLaunchOemHelp = 0x1BE,
+ AppLaunchOnlineCommunity = 0x1BF,
+ AppLaunchEntertainmentContentBrowser = 0x1C0,
+ AppLaunchOnlineShoppingBrowser = 0x1C1,
+ AppLaunchSmartcardInformationHelp = 0x1C2,
+ AppLaunchMarketMonitorFinanceBrowser = 0x1C3,
+ AppLaunchCustomizedCorporateNewsBrowser = 0x1C4,
+ AppLaunchOnlineActivityBrowser = 0x1C5,
+ AppLaunchResearchSearchBrowser = 0x1C6,
+ AppLaunchAudioPlayer = 0x1C7,
+ GenericGuiApplicationControls = 0x200,
+ AppCtrlNew = 0x201,
+ AppCtrlOpen = 0x202,
+ AppCtrlClose = 0x203,
+ AppCtrlExit = 0x204,
+ AppCtrlMaximize = 0x205,
+ AppCtrlMinimize = 0x206,
+ AppCtrlSave = 0x207,
+ AppCtrlPrint = 0x208,
+ AppCtrlProperties = 0x209,
+ AppCtrlUndo = 0x21A,
+ AppCtrlCopy = 0x21B,
+ AppCtrlCut = 0x21C,
+ AppCtrlPaste = 0x21D,
+ AppCtrlSelectAll = 0x21E,
+ AppCtrlFind = 0x21F,
+ AppCtrlFindAndReplace = 0x220,
+ AppCtrlSearch = 0x221,
+ AppCtrlGoTo = 0x222,
+ AppCtrlHome = 0x223,
+ AppCtrlBack = 0x224,
+ AppCtrlForward = 0x225,
+ AppCtrlStop = 0x226,
+ AppCtrlRefresh = 0x227,
+ AppCtrlPreviousLink = 0x228,
+ AppCtrlNextLink = 0x229,
+ AppCtrlBookmarks = 0x22A,
+ AppCtrlHistory = 0x22B,
+ AppCtrlSubscriptions = 0x22C,
+ AppCtrlZoomIn = 0x22D,
+ AppCtrlZoomOut = 0x22E,
+ AppCtrlZoom = 0x22F,
+ AppCtrlFullScreenView = 0x230,
+ AppCtrlNormalView = 0x231,
+ AppCtrlViewToggle = 0x232,
+ AppCtrlScrollUp = 0x233,
+ AppCtrlScrollDown = 0x234,
+ AppCtrlScroll = 0x235,
+ AppCtrlPanLeft = 0x236,
+ AppCtrlPanRight = 0x237,
+ AppCtrlPan = 0x238,
+ AppCtrlNewWindow = 0x239,
+ AppCtrlTileHorizontally = 0x23A,
+ AppCtrlTileVertically = 0x23B,
+ AppCtrlFormat = 0x23C,
+ AppCtrlEdit = 0x23D,
+ AppCtrlBold = 0x23E,
+ AppCtrlItalics = 0x23F,
+ AppCtrlUnderline = 0x240,
+ AppCtrlStrikethrough = 0x241,
+ AppCtrlSubscript = 0x242,
+ AppCtrlSuperscript = 0x243,
+ AppCtrlAllCaps = 0x244,
+ AppCtrlRotate = 0x245,
+ AppCtrlResize = 0x246,
+ AppCtrlFlipHorizontal = 0x247,
+ AppCtrlFlipVertical = 0x248,
+ AppCtrlMirrorHorizontal = 0x249,
+ AppCtrlMirrorVertical = 0x24A,
+ AppCtrlFontSelect = 0x24B,
+ AppCtrlFontColor = 0x24C,
+ AppCtrlFontSize = 0x24D,
+ AppCtrlJustifyLeft = 0x24E,
+ AppCtrlJustifyCenterH = 0x24F,
+ AppCtrlJustifyRight = 0x250,
+ AppCtrlJustifyBlockH = 0x251,
+ AppCtrlJustifyTop = 0x252,
+ AppCtrlJustifyCenterV = 0x253,
+ AppCtrlJustifyBottom = 0x254,
+ AppCtrlJustifyBlockV = 0x255,
+ AppCtrlIndentDecrease = 0x256,
+ AppCtrlIndentIncrease = 0x257,
+ AppCtrlNumberedList = 0x258,
+ AppCtrlRestartNumbering = 0x259,
+ AppCtrlBulletedList = 0x25A,
+ AppCtrlPromote = 0x25B,
+ AppCtrlDemote = 0x25C,
+ AppCtrlYes = 0x25D,
+ AppCtrlNo = 0x25E,
+ AppCtrlCancel = 0x25F,
+ AppCtrlCatalog = 0x260,
+ AppCtrlBuyCheckout = 0x261,
+ AppCtrlAddToCart = 0x262,
+ AppCtrlExpand = 0x263,
+ AppCtrlExpandAll = 0x264,
+ AppCtrlCollapse = 0x265,
+ AppCtrlCollapseAll = 0x266,
+ AppCtrlPrintPreview = 0x267,
+ AppCtrlPasteSpecial = 0x268,
+ AppCtrlInsertMode = 0x269,
+ AppCtrlDelete = 0x26A,
+ AppCtrlLock = 0x26B,
+ AppCtrlUnlock = 0x26C,
+ AppCtrlProtect = 0x26D,
+ AppCtrlUnprotect = 0x26E,
+ AppCtrlAttachComment = 0x26F,
+ AppCtrlDeleteComment = 0x270,
+ AppCtrlViewComment = 0x271,
+ AppCtrlSelectWord = 0x272,
+ AppCtrlSelectSentence = 0x273,
+ AppCtrlDistributeVertically = 0x29C
}
}
}
\ No newline at end of file
diff -r 634ac38db225 -r ddfd2ddf10e1 genUsageTableEnum.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/genUsageTableEnum.pl Fri Dec 19 18:05:53 2014 +0100
@@ -0,0 +1,106 @@
+#!/usr/local/bin/perl
+#Developed by Stéphane Lenclud
+#Generate C# enumeration from parsing Hid Usage Table
+#See ../data/gl.h
+#Usage example
+#perl -S genUsageTableEnum.pl ../data/gl.h
+
+use strict;
+use warnings;
+
+
+my $inputFile = $ARGV[0];
+
+#my $dummy="lala";
+#$dummy=~s/(^\w)/uc($1)/e;
+#print "$dummy";
+#exit(0);
+
+#Open input file
+open INPUT, "< $inputFile" or die "Can't read $inputFile\n";
+my @lines = ;
+close INPUT;
+
+
+my %hash = ();
+
+my $count=0;
+foreach my $line(@lines)
+ {
+ #if ($line=~ /^\#\s*define\s+(.+?)\s+([a-fA-FxX\d]+?)\s*$/)
+ if ($line=~ /^([a-fA-FxX\d]+)(.+)\s+\w+\s+15\..*$/)
+ {
+ my $string=$2;
+ my $value=$1;
+
+ my $varName=FormatVarName($string);
+
+
+ $hash{$string}=$value;
+
+ print "$varName = 0x$value,\n";
+ }
+ else
+ {
+ #print "NO MATCH $line\n";
+ }
+ }
+
+exit(0);
+
+#Output in sorted order
+for my $string ( sort keys %hash )
+ {
+ #print "_S8(\"$string\"),$hash{$string}, //$count\n";
+ print "_S8(\"$string\"),$string, //$count\n";
+ $count++;
+ }
+
+
+print "$count const found.\n";
+
+exit(0);
+
+#
+
+sub FormatVarName
+ {
+ my $text=$_[0];
+ my $varName="";
+ Trim($text);
+ #Make sure AC ends up as AppCtrl
+ $text=~s/(^AC)/App Ctrl/;
+ #Make sure AL ends up as AppLaunch
+ $text=~s/(^AL)/App Launch/;
+ #Replace / by white-space
+ $text=~s/\// /g;
+ #Replace + with Plus
+ $text=~s/\+/Plus/g;
+ #Replace - with white-space
+ $text=~s/-/ /g;
+
+
+ $text=lc($text);
+ while ($text=~/(\w+)\s+(.+)/)
+ {
+ my $word=$1;
+ $text=$2;
+ #upper case the first letter
+ $word=~s/(^\w)/uc($1)/e;
+ $varName.=$word;
+ }
+
+ $text=~s/(^\w)/uc($1)/e;
+ $varName.=$text;
+ #get ride of -
+ $varName=~s/-(\w)/uc($1)/e;
+
+ return $varName;
+ }
+
+sub Trim
+ {
+ $_[0] =~ s/^\s+//; #Trim leading space and line return char
+ $_[0] =~ s/\s+$//; #Trim trailling space and line return char
+ }
+