X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=client%2Ftdm_client.c;h=4d8ba302b9f39119faee5f867f726e9ad1638e52;hb=refs%2Fheads%2Ftizen_3.0_tv;hp=c9b312c20f0cefa4ba56f6058ad21439a75eb6cb;hpb=1c44c129755a129a45d4d59e54ac482a58d64f62;p=platform%2Fcore%2Fuifw%2Flibtdm.git diff --git a/client/tdm_client.c b/client/tdm_client.c index c9b312c..4d8ba30 100644 --- a/client/tdm_client.c +++ b/client/tdm_client.c @@ -86,6 +86,7 @@ struct _tdm_private_client_vblank { struct wl_tdm_vblank *vblank; struct list_head wait_list; + char name[TDM_NAME_LEN]; unsigned int sync; unsigned int fps; int offset; @@ -498,6 +499,9 @@ tdm_client_output_add_change_handler(tdm_client_output *output, h = calloc(1, sizeof *h); TDM_RETURN_VAL_IF_FAIL(h != NULL, TDM_ERROR_OUT_OF_MEMORY); + if (LIST_IS_EMPTY(&private_output->change_handler_list)) + wl_tdm_output_watch_output_changes(private_output->output, 1); + h->private_output = private_output; h->func = func; h->user_data = user_data; @@ -525,6 +529,10 @@ tdm_client_output_remove_change_handler(tdm_client_output *output, LIST_DEL(&h->link); free(h); + + if (LIST_IS_EMPTY(&private_output->change_handler_list)) + wl_tdm_output_watch_output_changes(private_output->output, 0); + return; } } @@ -647,6 +655,26 @@ tdm_client_vblank_destroy(tdm_client_vblank *vblank) } tdm_error +tdm_client_vblank_set_name(tdm_client_vblank *vblank, const char *name) +{ + tdm_private_client_vblank *private_vblank; + + TDM_RETURN_VAL_IF_FAIL(vblank != NULL, TDM_ERROR_INVALID_PARAMETER); + + private_vblank = vblank; + + if (!name) + name = TDM_VBLANK_DEFAULT_NAME; + + strncpy(private_vblank->name, name, TDM_NAME_LEN - 1); + private_vblank->name[TDM_NAME_LEN - 1] = '\0'; + + wl_tdm_vblank_set_name(private_vblank->vblank, private_vblank->name); + + return TDM_ERROR_NONE; +} + +tdm_error tdm_client_vblank_set_sync(tdm_client_vblank *vblank, unsigned int sync) { tdm_private_client_vblank *private_vblank; @@ -668,7 +696,6 @@ tdm_client_vblank_set_fps(tdm_client_vblank *vblank, unsigned int fps) TDM_RETURN_VAL_IF_FAIL(fps > 0, TDM_ERROR_INVALID_PARAMETER); private_vblank = vblank; - TDM_RETURN_VAL_IF_FAIL(private_vblank->started == 0, TDM_ERROR_BAD_REQUEST); if (private_vblank->fps == fps) return TDM_ERROR_NONE;