Difference between revisions of "Unit HIDTOUCH"

From Ultibo.org
Jump to: navigation, search
(Created page with "Return to Unit Reference === Description === ---- ''To be documented'' === Constants === ---- ''To be documented'' === Type definitions === ---- ''To...")
 
 
(5 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
----
 
----
  
''To be documented''
+
'''Ultibo HID Touch Consumer unit'''
 +
 +
'''HID Touch'''
 +
 
 +
This is a consumer for any generic HID touch screen, it accepts HID application collections in the digitizer device page (HID_PAGE_DIGITIZERS) with the usage set to touch screen (HID_DIGITIZERS_TOUCH_SCREEN).
 +
 
 +
The consumer will bind to any touch collection that implements at a minimum the X and Y axis and the tip switch. The event data for in range, confidence, width and height are not currently reported but may be added if required.
 +
 
 +
To prevent the HID mouse consumer from binding to touch screen devices that also include a mouse collection, this consumer sets the HID_MOUSE_REJECT_TOUCH variable to True during initialization.
  
 
=== Constants ===
 
=== Constants ===
 
----
 
----
  
''To be documented''
+
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''HID touch specific constants''' <code> HID_TOUCH_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>HID_TOUCH_CONSUMER_NAME = 'HID Touch Consumer';</code>
 +
| Name of HID Touch consumer
 +
|-
 +
| <code>HID_TOUCH_DESCRIPTION = 'HID Touch';</code>
 +
| Description of HID Touch device
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
=== Type definitions ===
 
=== Type definitions ===
 
----
 
----
  
''To be documented''
+
 
 +
'''HID touch point'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PHIDTouchPoint = ^THIDTouchPoint;</code>
 +
 
 +
<code>THIDTouchPoint = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>X:LongWord;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Y:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Width:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Height:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Pressure:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TipSwitch:Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>InRange:Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Confidence:Boolean;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Identifier:LongWord;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''HID touch points''' 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PHIDTouchPoints = ^THIDTouchPoints;</code>
 +
 
 +
<code>THIDTouchPoints = array[0..0] of THIDTouchPoint;</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| &nbsp;
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''HID touch device'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PHIDTouchDevice = ^THIDTouchDevice;</code>
 +
 
 +
<code>THIDTouchDevice = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Touch Properties''
 +
|-
 +
| <code>Touch:TTouchDevice;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|''General Properties''
 +
|-
 +
| <code>MaxX:LongWord;</code>
 +
| Maximum X value from current configuration
 +
|-
 +
| <code>MaxY:LongWord;</code>
 +
| Maximum Y value from current configuration
 +
|-
 +
| <code>MaxZ:LongWord;</code>
 +
| Maximum Z value from current configuration
 +
|-
 +
| <code>MaxWidth:LongWord;</code>
 +
| Maximum width value from current configuration
 +
|-
 +
| <code>MaxHeight:LongWord;</code>
 +
| Maximum height value from current configuration
 +
|-
 +
| <code>MaxPoints:LongWord;</code>
 +
| Maximum touch points for this device
 +
|-
 +
| <code>LastCount:LongWord;</code>
 +
| Number of touch points for last touch report
 +
|-
 +
| <code>LastPoints:PHIDTouchPoints;</code>
 +
| Touch points for last touch report
 +
|-
 +
| <code>TouchPoints:PHIDTouchPoints;</code>
 +
| Touch points for current touch report
 +
|-
 +
| <code>FirstIdentifier:LongWord;</code>
 +
| Id number of first touch point identifier
 +
|-
 +
|colspan="2"|''HID Properties''
 +
|-
 +
| <code>Timer:TTimerHandle;</code>
 +
| Handle for touch release timer
 +
|-
 +
| <code>Collection:PHIDCollection;</code>
 +
| The HID collection this touch is bound to
 +
|-
 +
| <code>Definitions:PHIDDefinition;</code>
 +
| The input report definitions that can be accepted as touch reports
 +
|-
 +
| <code>FeatureDefinition:PHIDDefinition;</code>
 +
| The report definition that corresponds to the maximum contact count feature
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
=== Public variables ===
 
=== Public variables ===
 
----
 
----
  
''To be documented''
+
''None defined''
  
 
=== Function declarations ===
 
=== Function declarations ===
 
----
 
----
  
''To be documented''
 
  
 +
'''Initialization functions'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">procedure HIDTouchInit;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Initialize the HID Touch unit and HID Touch driver</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| Called only during system startup
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''HID touch functions'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function HIDTouchStart(Touch:PTouchDevice):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of TouchDeviceStart API for HID Touch device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| Not intended to be called directly by applications, use TouchDeviceStart instead.
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function HIDTouchStop(Touch:PTouchDevice):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of TouchDeviceStop API for HID Touch device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| Not intended to be called directly by applications, use TouchDeviceStop instead.
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function HIDTouchUpdate(Touch:PTouchDevice):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of TouchDeviceUpdate API for HID Touch device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| Not intended to be called directly by applications, use TouchDeviceUpdate instead.
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''HID touch helper functions'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function HIDTouchCheckCollection(Collection:PHIDCollection):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Check if a HID collection is suitable for use as a touch device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function HIDTouchCheckInputDefinition(Definition:PHIDDefinition):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Check if a HID definition is suitable for use as a touch input report</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function HIDTouchCheckFeatureDefinition(Definition:PHIDDefinition):LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Check if a HID definition is suitable for use as a touch feature report</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| A touch feature report is commonly used to report the maximum number of contacts
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
Return to [[Unit_Reference|Unit Reference]]
 
Return to [[Unit_Reference|Unit Reference]]

Latest revision as of 04:02, 28 March 2024

Return to Unit Reference


Description


Ultibo HID Touch Consumer unit

HID Touch

This is a consumer for any generic HID touch screen, it accepts HID application collections in the digitizer device page (HID_PAGE_DIGITIZERS) with the usage set to touch screen (HID_DIGITIZERS_TOUCH_SCREEN).

The consumer will bind to any touch collection that implements at a minimum the X and Y axis and the tip switch. The event data for in range, confidence, width and height are not currently reported but may be added if required.

To prevent the HID mouse consumer from binding to touch screen devices that also include a mouse collection, this consumer sets the HID_MOUSE_REJECT_TOUCH variable to True during initialization.

Constants



HID touch specific constants HID_TOUCH_*
HID_TOUCH_CONSUMER_NAME = 'HID Touch Consumer'; Name of HID Touch consumer
HID_TOUCH_DESCRIPTION = 'HID Touch'; Description of HID Touch device


Type definitions



HID touch point

PHIDTouchPoint = ^THIDTouchPoint;

THIDTouchPoint = record

X:LongWord;  
Y:LongWord;  
Width:LongWord;  
Height:LongWord;  
Pressure:LongWord;  
TipSwitch:Boolean;  
InRange:Boolean;  
Confidence:Boolean;  
Identifier:LongWord;  

HID touch points

PHIDTouchPoints = ^THIDTouchPoints;

THIDTouchPoints = array[0..0] of THIDTouchPoint;

   

HID touch device

PHIDTouchDevice = ^THIDTouchDevice;

THIDTouchDevice = record

Touch Properties
Touch:TTouchDevice;  
General Properties
MaxX:LongWord; Maximum X value from current configuration
MaxY:LongWord; Maximum Y value from current configuration
MaxZ:LongWord; Maximum Z value from current configuration
MaxWidth:LongWord; Maximum width value from current configuration
MaxHeight:LongWord; Maximum height value from current configuration
MaxPoints:LongWord; Maximum touch points for this device
LastCount:LongWord; Number of touch points for last touch report
LastPoints:PHIDTouchPoints; Touch points for last touch report
TouchPoints:PHIDTouchPoints; Touch points for current touch report
FirstIdentifier:LongWord; Id number of first touch point identifier
HID Properties
Timer:TTimerHandle; Handle for touch release timer
Collection:PHIDCollection; The HID collection this touch is bound to
Definitions:PHIDDefinition; The input report definitions that can be accepted as touch reports
FeatureDefinition:PHIDDefinition; The report definition that corresponds to the maximum contact count feature


Public variables


None defined

Function declarations



Initialization functions

procedure HIDTouchInit;
Description: Initialize the HID Touch unit and HID Touch driver
Note Called only during system startup


HID touch functions

function HIDTouchStart(Touch:PTouchDevice):LongWord;
Description: Implementation of TouchDeviceStart API for HID Touch device
Note Not intended to be called directly by applications, use TouchDeviceStart instead.


function HIDTouchStop(Touch:PTouchDevice):LongWord;
Description: Implementation of TouchDeviceStop API for HID Touch device
Note Not intended to be called directly by applications, use TouchDeviceStop instead.


function HIDTouchUpdate(Touch:PTouchDevice):LongWord;
Description: Implementation of TouchDeviceUpdate API for HID Touch device
Note Not intended to be called directly by applications, use TouchDeviceUpdate instead.


HID touch helper functions

function HIDTouchCheckCollection(Collection:PHIDCollection):LongWord;
Description: Check if a HID collection is suitable for use as a touch device
Note None documented


function HIDTouchCheckInputDefinition(Definition:PHIDDefinition):LongWord;
Description: Check if a HID definition is suitable for use as a touch input report
Note None documented


function HIDTouchCheckFeatureDefinition(Definition:PHIDDefinition):LongWord;
Description: Check if a HID definition is suitable for use as a touch feature report
Note A touch feature report is commonly used to report the maximum number of contacts


Return to Unit Reference