diff -r 578be2adaf3e -r 307f4279f433 Adaptation/GUID-F9558573-7C79-57C5-809A-9257BF84758A.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Adaptation/GUID-F9558573-7C79-57C5-809A-9257BF84758A.dita Fri Oct 15 14:32:18 2010 +0100 @@ -0,0 +1,65 @@ + + + + + +ArchitectureThis topic describes the architecture of keyboard drivers +and related components. +

This topic describes the architecture of keyboard drivers and related +components on Symbian platform.

+

There are five components involved in this process:

+ +

The following diagram shows how these components fit together and +gives an overview of the data flow.

+ +Overview of data flow + + +

Depending on the keyboard hardware, key presses in the form of +key-down and key-up events are registered by the keyboard driver, +either as a result of hardware interrupts, or as a result of polling +the hardware. The driver assigns a standard scancode value to the +key. This is one of the values defined by the TStdScanCode enum. The value is a representation of the hardware key.

+

The driver creates TRawEvent objects, of type TRawEvent::EKeyUp and TRawEvent:EKeyDown, and includes the standard scancode value and modifiers as part +of the object. These objects are added to the kernel's event queue, +using the Kern::AddEvent() function.

+

The Window Server captures these events and passes the scancode +value to ektran.dll, which has the responsibility +for translating this value into a keycode value. A keycode value is +a logical representation of the key; it is this logical representation +that has meaning for the generic Symbian platform. The logical keycode +is one of the values defined by the TKeyCode enum. +Also, ektran.dll tells the Window Server whether +a capture key has been pressed - this is explained in Dynamic Behaviour.

+

ekdata.dll encapsulates a set of tables that +are used to map hardware scancodes to logical keycode values. This +is platform specific code, and is used by the generic ektran.dll when doing the translation.

+
\ No newline at end of file