Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
target_input(3) 		  Arcan Lua API 		 target_input(3)

NAME
     target_input - Forward input data to a frameserver.

SYNOPSIS
     resbool
     target_input( tgtvid, inputtbl )

DESCRIPTION
     This function takes a properly formated inputtbl  and repackages it into an
     event  structure that is added to the event queue of the frameserver speci-
     fied by tgtvid . The function returns true if and only  if  the  event  was
     properly  formatted  and  could be successfully added to the incoming event
     queue of the frameserver.

     A properly formatted table has the following fields:

     universal:(devid, subid, kind) optional:(pts, gesture, label). The  devid
     and  subid    fields  are used to distinguish between different devices and
     subaxes or buttons. The kind  field indicates the type of the input and de-
     termines how the table will be interpreted. The optional  pts    field  in-
     cludes  an  optional  implementation  defined  relative 64-bit timestamp in
     milisecond resolution. The optional gesture  is a boolean flag that indici-
     ates if the event is a result from abstract gesture analysis  or  not,  and
     alters the client interpretation of *label'.

     If  gesture  is set, the contents of label  should match one of the follow-
     ing: 'touch', 'dbltouch', 'click', 'dblclick',  'drag',  'swipe',	'fling',
     'press', 'release', 'drag', 'drop', 'openpinch', 'closepinch', 'rotate'. If
     gesture   is not set/true, the contents of label  should match a previously
     frameserver- provided labelhint, or, in the context of a game, the more ab-
     stract ' PLAYER n _BUTTON m', ' PLAYER n _AXIS m'.

     If kind  is set to touch  the  required  additional  fields  are:	pressure
     (0..1, linear scale), size (px), x (px) and y (px)

     If  kind	 is  set to analog  the required additional fields are: relative
     (true/_false_), samples (indexed table of up to 4 int16_t	ranged	values).
     These  values are all the same for generic analog sources, such as game de-
     vice axes.

     If kind  is set to analog	the  possible  additional  fields  are:  mouse
     (true/_false_),  indicate if the samples come from a cursor- type device or
     not. If so, the interpretation of sample  values  is  more  complicated  as
     there  is a large variability in how underlying device layers provide their
     samples. If relative  is set to true, the order is ( rel_x , abs_x ,  rel_y
     ,	abs_y  ),  otherwise the order is ( abs_x , rel_x , rel_y , abs_y ). The
     reason for this is that the relative indicator shows the primary origin  of
     the  samples,  while  the other is a result of some state estimator and can
     therefore be less accurate. All permutations  of  relative,  absolute,  two
     samples  or  four	samples need to be accounted for. It is also possible to
     indicate that the input device is no longer active on the segment but  set-
     ting  the leave  field to true. This is important for clients that have ex-
     plicit enter/leave semantics per device, typically bridges to other window-
     ing systems.

     If kind  is set to digital , the required	additional  fields  are:  active
     (true/_false_), if the button is in a pressed state or not and the possible
     additional fields are: translated	(true/_false_) and if translated is set,
     the required additional fields are: keysym  (value should match SDL 1.2 ta-
     ble  of  symnames),  modifiers    (16 bit bitfield), *utf8* (single unicode
     character as utf-8) number  (undescript field, typically used to  carry  on
     device or OS  specific code).

     If  kind	is set to eyes , the required additional fields are: blink_left,
     blink_right (true/false) if the eye lids are closed or not gaze_x1, gaze_y1
     (float) screen coordinates for first gaze point  gaze_x2,	gaze_y2  (float)
     screen  coordinates  for second gaze point present (true/false) if the user
     is by the screen or not head_x, head_y, head_z (float) head position  rela-
     tive to the tracker head_rx, head_ry, head_rz (float) euler-angle for head

NOTES
     1	    instead  of preparing these tables manually, it's recommended to in-
	    place modify those you get from the applname_input event handler

     2	    arguments are flexible, table argument will be used as input  table,
	    number argument will be used as frameserver vid reference.

     3	    the  kind field can also be supplied as a bool to cut down on costly
	    string compares by using the kind type (analog, digital,  touch)  as
	    boolean  key  set  to  true,  and  the  same applies to (translated,
	    mouse).

     4	    mouse events does not necessarily translate into  an  event  on  the
	    event-queue,  the engine may chose to use a memory mapped interface.
	    This depends on the devid (0 for accelerated cursor).

SEE ALSO:
     message_target(3)

targetcontrol			   August 2026			 target_input(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=target_input&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help