15.03.2015 Views

SetupDesignGuide.pdf - Firmware Encoding Index

SetupDesignGuide.pdf - Firmware Encoding Index

SetupDesignGuide.pdf - Firmware Encoding Index

SHOW MORE
SHOW LESS

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 />

// control function like SYSREQUEST<br />

//<br />

#define PRINT_MODIFIER<br />

#define SYS_REQUEST_MODIFIER<br />

#define SCROLL_LOCK_MODIFIER<br />

#define PAUSE_MODIFIER<br />

#define BREAK_MODIFIER<br />

0x0023<br />

0x0024<br />

0x0025<br />

0x0026<br />

0x0027<br />

9.3 Keyboard Layout Switching<br />

The need for switching from one keyboard layout to another is a very common implementation. A<br />

typical example would be for a user who needed to type in a language that did not have certain keys<br />

exposed (e.g. Typical Hebrew layout has no Latin characters). For these types of configurations, it<br />

would be common for the system to be aware of two completely different keyboard layouts and allow a<br />

hot key to switch between the default and the alternate layout.<br />

The way this would work in our given implementation would be that the firmware has some built-in<br />

keyboard layout. A driver installs the Hebrew layout. The user needs to switch modes and hits a hot<br />

key that forces the keyboard driver to switch from the Hebrew layout to the firmware’s Default layout.<br />

Hit the hot key again and the user mode switches again and the keyboard driver is now pointing to the<br />

Hebrew layout.<br />

//<br />

// To enable the ability to define what key combinations<br />

// designate a special function one could do some of the<br />

// following to allow for this flexibility.<br />

//<br />

//<br />

// This assumes that the driver implementation will not<br />

// assign a key definition if one of the following modifier<br />

// values is presented.<br />

//<br />

#define LAYOUT_SWITCH_MODIFIER<br />

0x0028<br />

#define LAYOUT_SWITCH_DEPENDENCY_MODIFIER 0x0029<br />

Layout = {<br />

EfiKeyLCtrl, 0, 0, 0, 0, LAYOUT_SWITCH_MODIFIER,<br />

EfiKeyLShift, 0, 0, 0, 0, LAYOUT_SWITCH_DEPENDENCY_MODIFIER<br />

}<br />

9.4 Dead Keys<br />

Dead keys are a concept that provides the ability to OR together an accent key and another printable<br />

character. Dead keys would be defined as a special type of Modifier character. They are typically<br />

83

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!