2 * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
14 #include "ecore_x_private.h"
16 #include "Ecore_X_Atoms.h"
18 EAPI Ecore_X_Sync_Alarm
19 ecore_x_sync_alarm_new(Ecore_X_Sync_Counter counter)
21 Ecore_X_Sync_Alarm alarm;
22 XSyncAlarmAttributes values;
25 LOGFN(__FILE__, __LINE__, __FUNCTION__);
26 XSyncIntToValue(&init, 0);
27 XSyncSetCounter(_ecore_x_disp, counter, init);
29 values.trigger.counter = counter;
30 values.trigger.value_type = XSyncAbsolute;
31 XSyncIntToValue(&values.trigger.wait_value, 1);
32 values.trigger.test_type = XSyncPositiveComparison;
34 XSyncIntToValue(&values.delta, 1);
38 alarm = XSyncCreateAlarm(_ecore_x_disp,
52 ecore_x_sync_alarm_free(Ecore_X_Sync_Alarm alarm)
54 LOGFN(__FILE__, __LINE__, __FUNCTION__);
55 return XSyncDestroyAlarm(_ecore_x_disp, alarm);
59 ecore_x_sync_counter_query(Ecore_X_Sync_Counter counter, unsigned int *val)
63 LOGFN(__FILE__, __LINE__, __FUNCTION__);
64 if (XSyncQueryCounter(_ecore_x_disp, counter, &value))
66 *val = (unsigned int) XSyncValueLow32(value);
73 EAPI Ecore_X_Sync_Counter
74 ecore_x_sync_counter_new(int val)
79 LOGFN(__FILE__, __LINE__, __FUNCTION__);
80 XSyncIntToValue(&v, val);
81 counter = XSyncCreateCounter(_ecore_x_disp, v);
86 ecore_x_sync_counter_free(Ecore_X_Sync_Counter counter)
88 LOGFN(__FILE__, __LINE__, __FUNCTION__);
89 XSyncDestroyCounter(_ecore_x_disp, counter);
93 ecore_x_sync_counter_inc(Ecore_X_Sync_Counter counter, int by)
97 LOGFN(__FILE__, __LINE__, __FUNCTION__);
98 XSyncIntToValue(&v, by);
99 XSyncChangeCounter(_ecore_x_disp, counter, v);
103 ecore_x_sync_counter_val_wait(Ecore_X_Sync_Counter counter, int val)
105 XSyncWaitCondition cond;
108 LOGFN(__FILE__, __LINE__, __FUNCTION__);
109 XSyncQueryCounter(_ecore_x_disp, counter, &v);
110 XSyncIntToValue(&v, val);
111 XSyncIntToValue(&v2, val + 1);
112 cond.trigger.counter = counter;
113 cond.trigger.value_type = XSyncAbsolute;
114 cond.trigger.wait_value = v;
115 cond.trigger.test_type = XSyncPositiveComparison;
116 cond.event_threshold = v2;
117 XSyncAwait(_ecore_x_disp, &cond, 1);
118 // XSync(_ecore_x_disp, False); // dont need this