Adaptation/GUID-552530EB-1287-542D-AED3-125387B485C1.dita
author Graeme Price <GRAEME.PRICE@NOKIA.COM>
Fri, 15 Oct 2010 14:32:18 +0100
changeset 15 307f4279f433
permissions -rw-r--r--
Initial contribution of the Adaptation Documentation.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-552530EB-1287-542D-AED3-125387B485C1" xml:lang="en"><title>Architecture</title><shortdesc>Describes the architecture of the Digitizer Driver. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>The architecture has two layers: </p>
<table id="GUID-66F9A575-14A6-5F98-9166-CF5F5B03BF67">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<tbody>
<row>
<entry><p>A platform-independent layer that: </p> </entry>
<entry><ul>
<li id="GUID-1F3AAAB4-181C-54EF-83AA-CEBE00590934"><p>processes digitiser
samples </p> </li>
<li id="GUID-F8D8BC65-0D80-5D5A-9F87-B8C34FEE70A2"><p>issues pen movement
events to the kernel </p> </li>
<li id="GUID-75A10183-BFCE-5D3D-B167-6D884EED335F"><p>maintains a buffer of
digitiser readings </p> </li>
</ul> <p>This layer implements behaviour that can be expected to be the same
across all platforms. </p> <p> <i>Symbian provides this.</i>  </p> </entry>
</row>
<row>
<entry><p>A platform specific layer that is responsible for: </p> </entry>
<entry><ul>
<li id="GUID-5D268750-7FF8-527F-B670-02A2605F610E"><p>the conversion between
screen and digitiser coordinates </p> </li>
<li id="GUID-65D85059-ED68-5AEF-BA1C-8255D5AAADC1"><p>the implementation of
low level calibration </p> </li>
<li id="GUID-98D55CC6-946B-5396-A518-65AF137684D3"><p>the gathering of raw
digitiser data samples </p> </li>
<li id="GUID-6E3D68AF-4EF8-50CA-90EA-814820C15ACA"><p>power management. </p> </li>
</ul> <p>This layer implements behaviour that can vary between platforms and
therefore needs to be implemented by the port. </p> <p>The bulk of the effort
here is the definition and implementation of a class derived from the Symbian
defined <xref href="GUID-2EDAF642-2399-3594-986A-5E8A5EEA01B9.dita"><apiname>DDigitiser</apiname></xref> class; the derived class implements
the pure virtual functions defined by <codeph>DDigitiser</codeph>. </p> <p> <i>You
provide this.</i>  </p> </entry>
</row>
</tbody>
</tgroup>
</table>
<p>The template port provides a framework for implementing the platform specific
part of the digitiser. The diagram below shows the overall relationship: </p>
<fig id="GUID-25F301AD-9B05-51BF-A96B-C99AB5B2D2E4">
<image href="GUID-904C9C5A-5FDB-5978-88CF-E30D6C0DBB61_d0e8869_href.png" placement="inline"/>
</fig>
<p>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. <filepath>digitizer.cpp</filepath>), but, nevertheless, the
same general pattern applies. </p>
</conbody></concept>