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

FreeBSD Manual Pages

  
 
  

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

NAME
     accept_target - accept a pending target request for a new segment

SYNOPSIS
     vid:new_vid, aid:new_aid, int:cookie
     accept_target( int:setw, int:seth )
     accept_target( int:setw, int:seth, func:callback )

DESCRIPTION
     A	connected frameserver is provided with one segment by default, but addi-
     tional ones can be requested. If that happens, a segment_request  event  is
     sent  through  to the callback associated with the frameserver. If this re-
     quest goes unhandled in the callback implementation, a rejection reply will
     be sent. By calling accept_target in immediate response  to  a  segment_re-
     quest,  a	new  segment  will be allocated and sent to the frameserver. The
     type of this segment will follow the one present in the request, and it  is
     the responsibility of the script to determine that this is one that is sup-
     ported. To filter the segkind field, prefer to use a whitelisting approach.
     The  optional  arguments setw , seth  can be used to change the initial di-
     mensions of the new segment from the ones requested  in  the  segreq  event
     (see  launch_target ). The frameserver can still perform a resize to ignore
     these values, but it saves a possible displayhint->resize	cycle  with  the
     initial  1-2  frame  setup latency that would impose. The optional argument
     callback  sets the event handler for the  new  segment,  but  can	also  be
     changed  with  calls to target_updatehandler . On success, the function re-
     turns reference handles to the new audio and video resources, along with an
     identification token that might be used by the client  for  reparenting  in
     viewport events.

NOTES
     1	    accept_target  is context sensitive. This means that calling it out-
	    side a frameserver event-handler, or when there is no  pending  seg-
	    ment_request event, is a terminal state transition.

     2	    Possible  segkind  values  for a subsegment are: "multimedia", "cur-
	    sor", "terminal",  "popup",  "icon",  "remoting",  "game",	"hmd-l",
	    "hmd-r",  "hmd-sbs-lr", "vm", "application", "clipboard", "browser",
	    "encoder", "titlebar", "sensor", "debug", "accessibility".

     3	    The number of permitted segments etc. should be limited by available
	    vids and other resources so that a malicious  client  cannot  starve
	    the  serving  arcan  process. See the 'recursive_evil' security test
	    case for more detail.

     4	    Subsegments are always bound to the primary segment, this means that
	    attempts at complex hierarchies, such as a main- window with a popup
	    window with a titlebar with an icon is not possible directly, though
	    viewport hints can be used to describe such relations superficially.

EXAMPLE
     function accept_target0()
	   target_alloc("test", function(source, status)
		 if (status.kind == "segment_request") then
     -- possibly ignore request if supplied properties e.g.
     -- dimensions or subtype is not permitted.
		       accept_target();
		 end
	   end)
     end

SEE ALSO:
     target_alloc(3)

targetcontrol			   August 2026			accept_target(3)

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

home | help