X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Ftdm_output.c;h=d44591486e688e2ab1311e9f565e651c05ce7d6e;hb=c61e3aaef986c13175c299570e8bc3ef09a4d50a;hp=3dd945c1d43764f8ac237f7b59c281a2f7ae786a;hpb=4132be9593526d9358888f77186c9e00b3d81891;p=platform%2Fcore%2Fuifw%2Flibtdm.git diff --git a/src/tdm_output.c b/src/tdm_output.c index 3dd945c..d445914 100644 --- a/src/tdm_output.c +++ b/src/tdm_output.c @@ -690,7 +690,7 @@ tdm_output_cb_commit(tdm_output *output_backend, unsigned int sequence, TDM_INFO("handler(%p)", output_commit_handler); } - if (private_display->commit_type == TDM_COMMIT_TYPE_OUTPUT) { + if (private_output->commit_type == TDM_COMMIT_TYPE_OUTPUT) { /* In case of layer commit, the below will be handled in the layer commit callback */ LIST_FOR_EACH_ENTRY(private_layer, &private_output->layer_list, link) { if (private_layer->committed_buffer) @@ -922,7 +922,7 @@ tdm_output_commit_internal(tdm_output *output, int sync, tdm_output_commit_handl /* TODO: this is ugly. But before using tdm_output_get_dpms_internal, we have * to check if all backends's DPMS operation has no problem. */ - if (private_display->commit_per_vblank) + if (private_output->commit_per_vblank) tdm_output_get_dpms_internal(output, &dpms_value); else dpms_value = private_output->current_dpms_value; @@ -999,15 +999,15 @@ tdm_output_commit(tdm_output *output, int sync, tdm_output_commit_handler func, _pthread_mutex_lock(&private_display->lock); - if (private_display->commit_type == TDM_COMMIT_TYPE_NONE) - private_display->commit_type = TDM_COMMIT_TYPE_OUTPUT; - else if (private_display->commit_type == TDM_COMMIT_TYPE_LAYER) { + if (private_output->commit_type == TDM_COMMIT_TYPE_NONE) + private_output->commit_type = TDM_COMMIT_TYPE_OUTPUT; + else if (private_output->commit_type == TDM_COMMIT_TYPE_LAYER) { TDM_ERR("Can't supported. Use tdm_layer_commit"); _pthread_mutex_unlock(&private_display->lock); return TDM_ERROR_BAD_REQUEST; } - if (private_display->commit_per_vblank) { + if (private_output->commit_per_vblank) { TDM_ERR("Use tdm_layer_commit"); _pthread_mutex_unlock(&private_display->lock); return TDM_ERROR_BAD_REQUEST; @@ -1298,7 +1298,7 @@ tdm_output_get_dpms_internal(tdm_output *output, tdm_output_dpms *dpms_value) } /* TODO: this is ugly. But we have to check if all backends's DPMS operation has no problem. */ - if (private_display->commit_per_vblank) + if (private_output->commit_per_vblank) if (*dpms_value != private_output->current_dpms_value) { private_output->current_dpms_value = *dpms_value; TDM_ERR("output(%d) dpms changed suddenly: %s", @@ -1727,3 +1727,24 @@ tdm_output_need_validate_event_init(tdm_output *output) return ret; } + +INTERN tdm_error +tdm_output_choose_commit_per_vblank_mode(tdm_private_output *private_output, int mode) +{ + if (!private_output) + return TDM_ERROR_INVALID_PARAMETER; + + if (mode < 0 || mode > 2) + return TDM_ERROR_INVALID_PARAMETER; + + private_output->commit_per_vblank = mode; + + if (private_output->commit_per_vblank == 0) + TDM_INFO("commit per vblank: disable"); + else if (private_output->commit_per_vblank == 1) + TDM_INFO("commit per vblank: enable (1 layer)"); + else if (private_output->commit_per_vblank == 2) + TDM_INFO("commit per vblank: enable (previous commit)"); + + return TDM_ERROR_NONE; +}