7 #endif /* ifdef HAVE_CONFIG_H */
10 #include "ecore_x_private.h"
12 #include "Ecore_X_Atoms.h"
14 EAPI Ecore_X_Sync_Alarm
15 ecore_x_sync_alarm_new(Ecore_X_Sync_Counter counter)
17 Ecore_X_Sync_Alarm alarm;
18 XSyncAlarmAttributes values;
21 LOGFN(__FILE__, __LINE__, __FUNCTION__);
22 XSyncIntToValue(&init, 0);
23 XSyncSetCounter(_ecore_x_disp, counter, init);
25 values.trigger.counter = counter;
26 values.trigger.value_type = XSyncAbsolute;
27 XSyncIntToValue(&values.trigger.wait_value, 1);
28 values.trigger.test_type = XSyncPositiveComparison;
30 XSyncIntToValue(&values.delta, 1);
34 alarm = XSyncCreateAlarm(_ecore_x_disp,
48 ecore_x_sync_alarm_free(Ecore_X_Sync_Alarm alarm)
50 LOGFN(__FILE__, __LINE__, __FUNCTION__);
51 return XSyncDestroyAlarm(_ecore_x_disp, alarm);
55 ecore_x_sync_counter_query(Ecore_X_Sync_Counter counter,
60 LOGFN(__FILE__, __LINE__, __FUNCTION__);
61 if (XSyncQueryCounter(_ecore_x_disp, counter, &value))
63 *val = (unsigned int)XSyncValueLow32(value);
70 EAPI Ecore_X_Sync_Counter
71 ecore_x_sync_counter_new(int val)
76 LOGFN(__FILE__, __LINE__, __FUNCTION__);
77 XSyncIntToValue(&v, val);
78 counter = XSyncCreateCounter(_ecore_x_disp, v);
83 ecore_x_sync_counter_free(Ecore_X_Sync_Counter counter)
85 LOGFN(__FILE__, __LINE__, __FUNCTION__);
86 XSyncDestroyCounter(_ecore_x_disp, counter);
90 ecore_x_sync_counter_inc(Ecore_X_Sync_Counter counter,
95 LOGFN(__FILE__, __LINE__, __FUNCTION__);
96 XSyncIntToValue(&v, by);
97 XSyncChangeCounter(_ecore_x_disp, counter, v);
101 ecore_x_sync_counter_val_wait(Ecore_X_Sync_Counter counter,
104 XSyncWaitCondition cond;
107 LOGFN(__FILE__, __LINE__, __FUNCTION__);
108 XSyncQueryCounter(_ecore_x_disp, counter, &v);
109 XSyncIntToValue(&v, val);
110 XSyncIntToValue(&v2, val + 1);
111 cond.trigger.counter = counter;
112 cond.trigger.value_type = XSyncAbsolute;
113 cond.trigger.wait_value = v;
114 cond.trigger.test_type = XSyncPositiveComparison;
115 cond.event_threshold = v2;
116 XSyncAwait(_ecore_x_disp, &cond, 1);
117 // XSync(_ecore_x_disp, False); // dont need this
121 ecore_x_sync_counter_set(Ecore_X_Sync_Counter counter,
126 LOGFN(__FILE__, __LINE__, __FUNCTION__);
127 XSyncIntToValue(&v, val);
128 XSyncSetCounter(_ecore_x_disp, counter, v);
132 ecore_x_sync_counter_2_set(Ecore_X_Sync_Counter counter,
138 LOGFN(__FILE__, __LINE__, __FUNCTION__);
139 XSyncIntsToValue(&v, val_lo, val_hi);
140 XSyncSetCounter(_ecore_x_disp, counter, v);
144 ecore_x_sync_counter_2_query(Ecore_X_Sync_Counter counter,
146 unsigned int *val_lo)
150 LOGFN(__FILE__, __LINE__, __FUNCTION__);
151 if (XSyncQueryCounter(_ecore_x_disp, counter, &value))
153 *val_lo = (unsigned int)XSyncValueLow32(value);
154 *val_hi = (int)XSyncValueHigh32(value);