SetupDesignGuide.pdf - Firmware Encoding Index
SetupDesignGuide.pdf - Firmware Encoding Index
SetupDesignGuide.pdf - Firmware Encoding Index
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Setup Design Guide<br />
DRAFT<br />
accent keys that do not advance the cursor and in essence are a type of modifier key in that they<br />
maintain some level of state.<br />
The way a person uses a dead key is that the dead key that maybe has the function of overlaying an<br />
umlaut (two dots) onto whatever the next character might be. The user presses the umlaut dead key and<br />
follows it with a capital A. This yields a “Ä”<br />
//<br />
// If it’s a dead key, we need to pass a list of physical key<br />
// names… each with a unicode, shifted, altgr, shiftedaltgr<br />
// value. Each key name will have a Modifier value of<br />
// DEAD_KEY_MODIFIER for first entry, and then the list of<br />
// DEAD_KEY_DEPENDENCY_MODIFIER physical key descriptions.<br />
// This eventually will lead to the next normal non-dead-key<br />
// definition.<br />
//<br />
// This requires defining an additional Modifier value of<br />
// DEAD_KEY_DEPENDENCY_MODIFIER to signify DEAD_KEY_MODIFIER<br />
// children definitions.<br />
//<br />
// The keyboard driver (consumer of the layouts) will know that<br />
// any key definitions with the DEAD_KEY_DEPENDENCY_MODIFIER<br />
// modifier do not redefine the value of the specified EFI_KEY.<br />
// They are simply used as a special case augmentation to the<br />
// original DEAD_KEY_MODIFIER.<br />
//<br />
// It is an error condition to define a DEAD_KEY_MODIFIER<br />
// without having all the DEAD_KEY_DEPENDENCY_MODIFIER<br />
// keys defined serially.<br />
//<br />
Layout = {<br />
EfiKeyE0, 0, 0, 0, 0, DEAD_KEY_MODIFIER,<br />
EfiKeyC1, 0x00E2, 0x00C2, 0, 0, DEAD_KEY_DEPENDENCY_MODIFIER,<br />
EfiKeyD3, 0x00EA, 0x00CA, 0, 0, DEAD_KEY_DEPENDENCY_MODIFIER,<br />
EfiKeyD8, 0x00EC, 0x00CC, 0, 0, DEAD_KEY_DEPENDENCY_MODIFIER,<br />
EfiKeyD9, 0x00F4, 0x00D4, 0, 0, DEAD_KEY_DEPENDENCY_MODIFIER,<br />
EfiKeyD7, 0x00FB, 0x00CB, 0, 0, DEAD_KEY_DEPENDENCY_MODIFIER,<br />
}<br />
In the above example, a key located at E0 is designated as a Dead Key. Using a common German<br />
keyboard layout as the example, at the E0 location a circumflex accent “^” is defined as a dead key.<br />
The valid keys that can be pressed after the dead key which will produce valid printable characters are<br />
the A, E, I, O, and U characters. These are located at C1, D3, D8, D9, and D7 respectively.<br />
The results of the Layout definition provided above would allow for the production of the following<br />
characters: âÂêÊîÎôÔûÛ.<br />
84