{
tdm_dummy_output_data *output_data = user_data;
tdm_dummy_event_data *e = NULL, *ee = NULL;
- unsigned int tv_sec, tv_usec;
+ long tv_sec, tv_usec;
static unsigned int sequence = 0;
struct timespec tp;
LIST_FOR_EACH_ENTRY_SAFE(e, ee, &output_data->timer_event_list, link) {
LIST_DEL(&e->link);
- _tdm_dummy_display_cb_event(output_data, e, sequence, tv_sec, tv_usec);
+ _tdm_dummy_display_cb_event(output_data, e, sequence, (unsigned int)tv_sec, (unsigned int)tv_usec);
free(e);
}
}
static tdm_error
-_tdm_dummy_display_wait_vblank(tdm_dummy_output_data *output_data, tdm_dummy_event_data *event_data)
+_tdm_dummy_display_wait_vblank(tdm_dummy_output_data *output_data, int interval, tdm_dummy_event_data *event_data)
{
tdm_error ret;
unsigned int ms;
return TDM_ERROR_NONE;
}
- ms = 1000 / output_data->output_mode->vrefresh;
+ ms = ((double)1000.0 / output_data->output_mode->vrefresh) * interval;
ret = tdm_event_loop_source_timer_update(output_data->timer, ms);
if (ret != TDM_ERROR_NONE)
event_data->output_data = output_data;
event_data->user_data = user_data;
- ret = _tdm_dummy_display_wait_vblank(output_data, event_data);
+ ret = _tdm_dummy_display_wait_vblank(output_data, interval, event_data);
if (ret != TDM_ERROR_NONE) {
free(event_data);
return ret;
event_data->output_data = output_data;
event_data->user_data = user_data;
- ret = _tdm_dummy_display_wait_vblank(output_data, event_data);
+ ret = _tdm_dummy_display_wait_vblank(output_data, 1, event_data);
if (ret != TDM_ERROR_NONE) {
free(event_data);
return ret;