Describes the architecture of the Digitizer Driver.

The architecture has two layers:

A platform-independent layer that:

  • processes digitiser samples

  • issues pen movement events to the kernel

  • maintains a buffer of digitiser readings

This layer implements behaviour that can be expected to be the same across all platforms.

Symbian provides this.

A platform specific layer that is responsible for:

  • the conversion between screen and digitiser coordinates

  • the implementation of low level calibration

  • the gathering of raw digitiser data samples

  • power management.

This layer implements behaviour that can vary between platforms and therefore needs to be implemented by the port.

The bulk of the effort here is the definition and implementation of a class derived from the Symbian defined DDigitiser class; the derived class implements the pure virtual functions defined by DDigitiser.

You provide this.

The template port provides a framework for implementing the platform specific part of the digitiser. The diagram below shows the overall relationship:

The standard Symbian platform ports all follow the same general pattern, including the H2. However, the H2 board implementation has two levels in its platform specific layer (an ASSP and a variant layer) and uses different source file names (e.g. digitizer.cpp), but, nevertheless, the same general pattern applies.