The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

X11::Protocol::Ext::SYNC -- Perl extention module for X Synchronization Extension Protocol

SYNOPSIS

 use X11::Protocol;
 $x = X11::Protocol->new($ENV{DISPLAY});
 $x->init_extension('SYNC') or die;

DESCRIPTION

This module is used by the X11::Protocol(3pm) module to participate in the synchronization extension to the X protocol, allowing time synchronization between clients and to absolute real-time sources per the "X Synchronization Extension Protocol", a copy of which can be obtained from http://www.x.org/releases/X11R7.7/doc/xextproto/sync.pdf.

This manual page does not attempt to document the protocol itself, see the specification for that. It documents the "CONSTANTS", "REQUESTS", "EVENTS" and "ERRORS" that are added to the X11::Protocol(3pm) module.

CONSTANTS

X11::Protocol::Ext::SYNC provides the following symbolic constants:

 ValueType  => [ 'Absolute', 'Relative' ]
 TestType   => [ 'PositiveTransition', 'NegativeTransition',
                 'PositiveCommparison', 'NegativeComparison' ]
 AlarmState => [ 'Active', 'Inactive', 'Destroyed' ]

ERRORS

X11::Protocol::Ext::SYNC provides the folowing bad resource errors: Counter, Alarm, Fence.

REQUESTS

X11::Protocol::Ext::SYNC provides the following requests:

 $X->XsyncInitialize($major,$minor)
 =>
 ($major,$minor)
 $X->ListSystemCounters()
 =>
 ( [ $counter,$resolution_hi,$resolution_lo ], ... )
 $X->CreateCounter($id,($initial_value_hi,$initial_value_lo))
 $X->SetCounter($counter,($value_hi,$value_lo))
 $X->ChangeCounter($counter,($amount_hi,$amount_lo))
 $X->DestroyCounter($counter)
 =>
 ($counter_hi,$counter_lo)
 $X->Await([$trigger,($thresh_hi,$thresh_lo)], ...)
 $X->CreateAlarm($id,
    counter=>$counter,
    value_type=>$value_type,
    value=>[$value_hi,$value_lo],
    test_type=>$test_type,
    delta=>[$delta_hi,$delta_lo],
    events=>$events)
 $X->ChangeAlarm($id,
    counter=>$counter,
    value_type=>$value_type,
    value=>[$value_hi,$value_lo],
    test_type=>$test_type,
    delta=>[$delta_hi,$delta_lo],
    events=>$events)
 $X->QueryAlarm($alarm)
 =>
 ($trigger,($delta_hi,$delta_lo),$events,$state)
 $X->DestroyAlarm($alarm)
 $X->SetPriority($id,$priority)
 $X->GetPriority($id)
 =>
 ($priority)
 $X->CreateFence($drawable,$id,$initially_triggered)
 $X->TriggerFence($id)
 $X->ResetFence($id)
 $X->DestroyFence($id)
 $X->QueryFence($id)
 =>
 ($triggered)
 $X->AwaitFence(@ids)

EVENTS

X11::Protocol::Ext::SYNC provides the following events:

 CounterNotify => {
     counter=>$counter,
     wait_value=>[$wait_value_hi,$wait_value_lo],
     counter_value=>[$counter_value_hi,$counter_value_lo],
     time=>$time,
     count=>$count,
     destroyed=>'True'|'False' }
 AlarmNotify => {
     alarm=>$alarm,
     counter_value=>[$counter_value_hi,$counter_value_lo],
     alarm_value=>[$alarm_value_hi,$alarm_value_lo],
     time=>$time,
     state=>$state} # 'AlarmState'

BUGS

Probably lots: this module has not been thoroughly tested. At least it loads and initializes on server supporting the correct version.

AUTHOR

Brian Bidulock <bidulock@openss7.org>

SEE ALSO

perl(1), X11::Protocol(3pm), X Synchronization Extension Protocol.