Difference between revisions of "Unit HIDKEYBOARD"

From Ultibo.org
Jump to: navigation, search
 
Line 121: Line 121:
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<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 HIDKeyboardDeviceControl(Keyboard:PKeyboardDevice; Request:Integer; Argument1:LongWord; var Argument2:LongWord):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function HIDKeyboardDeviceControl(Keyboard:PKeyboardDevice; Request:Integer; Argument1:PtrUInt; var Argument2:PtrUInt):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of KeyboardDeviceControl API for HID Keyboard</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of KeyboardDeviceControl API for HID Keyboard</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">

Latest revision as of 03:20, 17 November 2022

Return to Unit Reference


Description


Ultibo HID Keyboard Consumer unit

This is a consumer for any generic HID keyboard device, it accepts HID application collections in the generic desktop page (HID_PAGE_GENERIC_DESKTOP) with the usage set to keyboard (HID_DESKTOP_KEYBOARD).

The consumer will bind to any keyboard collection that includes at a minimum an input report containing a field that provides keypress data from the keyboard / keypad page (HID_PAGE_KEYBOARD_KEYPAD) and a field providing modifier keys from the same page.

The consumer will also look for an output report containing a field from the LED page (HID_PAGE_LED) and will use this to set the keyboard LEDs if found.

Up to 16 keypresses per report can be accepted (see HID_KEYBOARD_MAX_KEYS) but most keyboards will commonly report up to 6 which is the size defined in the USB HID usage tables for boot mode keyboard reports.

Constants



[Expand]
HID keyboard specific constants HID_KEYBOARD_*


Type definitions



HID keyboard keys

[Expand]

PHIDKeyboardKeys = ^THIDKeyboardKeys;

THIDKeyboardKeys = array[0..HID_KEYBOARD_MAX_KEYS - 1] of Byte;

HID keyboard device

[Expand]

PHIDKeyboardDevice = ^THIDKeyboardDevice;

THIDKeyboardDevice = record


Public variables


None defined

Function declarations



Initialization functions

[Expand]
procedure HIDKeyboardInit;
Description: Initialize the HID Keyboard unit and HID Keyboard driver


HID keyboard functions

[Expand]
function HIDKeyboardDeviceControl(Keyboard:PKeyboardDevice; Request:Integer; Argument1:PtrUInt; var Argument2:PtrUInt):LongWord;
Description: Implementation of KeyboardDeviceControl API for HID Keyboard


HID keyboard helper functions

[Expand]
function HIDKeyboardCheckCollection(Collection:PHIDCollection):LongWord;
Description: Check if a HID collection is suitable for use as a keyboard device


[Expand]
function HIDKeyboardCheckInputDefinition(Definition:PHIDDefinition):LongWord;
Description: Check if a HID definition is suitable for use as a keyboard input report


[Expand]
function HIDKeyboardCheckOutputDefinition(Definition:PHIDDefinition):LongWord;
Description: Check if a HID definition is suitable for use as a keyboard output (LED) report


[Expand]
function HIDKeyboardCheckPressed(Keyboard:PHIDKeyboardDevice; ScanCode:Byte):Boolean;
Description: Check if the passed scan code has been pressed (True if not pressed in last report


[Expand]
function HIDKeyboardCheckRepeated(Keyboard:PHIDKeyboardDevice; ScanCode:Byte):Boolean;
Description: Check if the passed scan code was the last key pressed and if the repeat delay has expired


[Expand]
function HIDKeyboardCheckReleased(Keyboard:PHIDKeyboardDevice; Keys:PHIDKeyboardKeys; ScanCode:Byte):Boolean;
Description: Check if the passed scan code has been released (True if not pressed in current report)


[Expand]
function HIDKeyboardDeviceSetLEDs(Keyboard:PHIDKeyboardDevice; LEDs:Byte):LongWord;
Description: Set the state of the LEDs for a HID keyboard device


[Expand]
function HIDKeyboardDeviceSetIdle(Keyboard:PHIDKeyboardDevice; Duration,ReportId:Byte):LongWord;
Description: Set the idle duration (Time between reports when no changes) for a HID keyboard device


Return to Unit Reference