Fix sign extension error
[platform/core/uifw/libtdm.git] / backends / virtual / tdm_virtual_display.c
index 89f0769..23d85aa 100644 (file)
@@ -40,12 +40,12 @@ _tdm_virtual_display_cb_event(tdm_virtual_output_data *output_data, tdm_virtual_
        }
 }
 
-static void _tdm_virtual_get_current_time(unsigned int *tv_sec, unsigned int *tv_usec)
+static void _tdm_virtual_get_current_time(long *tv_sec, long *tv_usec)
 {
        struct timespec tp;
 
        if (clock_gettime(CLOCK_MONOTONIC, &tp) == 0) {
-               *tv_sec = tp.tv_sec;
+               *tv_sec = (long)tp.tv_sec;
                *tv_usec = tp.tv_nsec / 1000;
        } else {
                *tv_sec = *tv_usec = 0;
@@ -57,7 +57,7 @@ _tdm_virtual_display_cb_timeout(void *user_data)
 {
        tdm_virtual_output_data *output_data = user_data;
        tdm_virtual_event_data *e = NULL, *ee = NULL;
-       unsigned int tv_sec, tv_usec;
+       long tv_sec, tv_usec;
        static unsigned int sequence = 0;
 
        sequence++;
@@ -66,7 +66,7 @@ _tdm_virtual_display_cb_timeout(void *user_data)
 
        LIST_FOR_EACH_ENTRY_SAFE(e, ee, &output_data->timer_event_list, link) {
                LIST_DEL(&e->link);
-               _tdm_virtual_display_cb_event(output_data, e, sequence, tv_sec, tv_usec);
+               _tdm_virtual_display_cb_event(output_data, e, sequence, (unsigned int)tv_sec, (unsigned int)tv_usec);
                free(e);
        }
 
@@ -810,6 +810,8 @@ virtual_display_voutput_create(tdm_backend_data *bdata, const char *name, tdm_er
        voutput_data->mmwidth = 10;
        voutput_data->mmheight = 10;
 
+       voutput_data->target_buffer_queue_flag = TBM_BO_SCANOUT;
+
        voutput_data->virtual_data = virtual_data;
 
        output_data = calloc(1, sizeof(tdm_virtual_output_data));
@@ -962,7 +964,7 @@ virtual_voutput_commit_done(tdm_voutput *voutput)
 {
        tdm_virtual_voutput_data *voutput_data = voutput;
        tdm_virtual_output_data *output_data = NULL;
-       unsigned int tv_sec, tv_usec;
+       long tv_sec, tv_usec;
        static unsigned int sequence = 0;
        tdm_virtual_event_data *event_data;
        tdm_error ret = TDM_ERROR_NONE;
@@ -993,6 +995,18 @@ virtual_voutput_commit_done(tdm_voutput *voutput)
        return TDM_ERROR_NONE;
 }
 
+tdm_error
+virtual_voutput_set_target_buffer_queue_flag(tdm_voutput *voutput, int flag)
+{
+       tdm_virtual_voutput_data *voutput_data = voutput;
+
+       RETURN_VAL_IF_FAIL(voutput_data, TDM_ERROR_INVALID_PARAMETER);
+
+       voutput_data->target_buffer_queue_flag = flag;
+
+       return TDM_ERROR_NONE;
+}
+
 tdm_virtual_layer_data *
 virtual_output_data_get_layer_data(tdm_virtual_output_data *output_data, int layer_zpos)
 {