namespace X { [CCode (cprefix = "", cheader_filename = "X11/extensions/sync.h")] namespace Sync { [CCode (cname = "XSyncQueryExtension")] public X.Status QueryExtension (X.Display display, out int event_base, out int error_base); [CCode (cname = "XSyncInitialize")] public X.Status Initialize (X.Display display, out int major_version, out int minor_version); [CCode (cname = "XSyncListSystemCounters")] public SystemCounter* ListSystemCounters (X.Display display, out int n_counters); [CCode (cname = "XSyncFreeSystemCounterList")] public void FreeSystemCounterList (SystemCounter* counters); [CCode (cname = "XSyncQueryCounter")] public X.Status QueryCounter (X.Display display, X.ID counter, out Value value); [CCode (cname = "XSyncCreateAlarm")] public X.ID CreateAlarm (X.Display display, CA values_mask, AlarmAttributes values); [CCode (cname = "XSyncDestroyAlarm")] public X.Status DestroyAlarm (X.Display display, X.ID alarm); [CCode (cname = "XSyncQueryAlarm")] public X.Status QueryAlarm (X.Display display, X.ID alarm, out AlarmAttributes values); [CCode (cname = "XSyncChangeAlarm")] public X.Status ChangeAlarm (X.Display display, X.ID alarm, CA values_mask, AlarmAttributes values); [CCode (cname = "XSyncSetPriority")] public X.Status SetPriority (X.Display display, X.ID alarm, int priority); [CCode (cname = "XSyncGetPriority")] public X.Status GetPriority (X.Display display, X.ID alarm, out int priority); [CCode (cname = "XSyncIntToValue")] public void IntToValue (out Value value, int v); [CCode (cname = "XSyncIntsToValue")] public void IntsToValue (out Value value, uint l, int h); [CCode (cname = "XSyncValueGreaterThan")] public bool ValueGreaterThan (Value a, Value b); [CCode (cprefix = "XSyncCA")] public enum CA { Counter, ValueType, Value, TestType, Delta, Events } [CCode (cname = "XSyncSystemCounter", has_type_id = false)] public struct SystemCounter { public string name; public X.ID counter; } [CCode (cname = "XSyncAlarmNotify")] public int AlarmNotify; [CCode (cname = "XSyncAlarmNotifyEvent", has_type_id = false)] public struct AlarmNotifyEvent { public X.ID alarm; public AlarmState state; } [CCode (cname = "XSyncAlarmState", cprefix = "XSyncAlarm")] public enum AlarmState { Active, Inactive, Destroyed } [CCode (cname = "XSyncAlarmAttributes", has_type_id = false)] public struct AlarmAttributes { public Trigger trigger; public Value delta; public bool events; public AlarmState state; } [CCode (cname = "XSyncTrigger", has_type_id = false)] public struct Trigger { public X.ID counter; public ValueType value_type; public Value wait_value; public TestType test_type; } [CCode (cname = "XSyncValueType", cprefix = "XSync")] public enum ValueType { Absolute, Relative } [CCode (cname = "XSyncValue", has_type_id = false)] [SimpleType] public struct Value { public int hi; public uint lo; } [CCode (cname = "XSyncTestType", cprefix = "XSync")] public enum TestType { PositiveTransition, NegativeTransition, PositiveComparison, NegativeComparison } } }