From: Seunghun Lee Date: Fri, 4 Mar 2022 07:27:16 +0000 (+0900) Subject: output: Add ds_output_enable/disable APIs X-Git-Tag: accepted/tizen/unified/20220718.140337~81 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e149285df5dc7c8729ff23775c7bd2f99d726079;p=platform%2Fcore%2Fuifw%2Flibds.git output: Add ds_output_enable/disable APIs Change-Id: I0e267ad8e411462487529bfde3d732a845903773 --- diff --git a/include/libds/interfaces/output.h b/include/libds/interfaces/output.h index 9b95db1..6fb2909 100644 --- a/include/libds/interfaces/output.h +++ b/include/libds/interfaces/output.h @@ -60,6 +60,8 @@ struct ds_output struct wl_signal frame; struct wl_signal commit; } events; + + bool enabled; }; void diff --git a/include/libds/output.h b/include/libds/output.h index c7ee476..cae9f7f 100644 --- a/include/libds/output.h +++ b/include/libds/output.h @@ -20,6 +20,12 @@ struct ds_output_mode { void ds_output_destroy(struct ds_output *output); +void +ds_output_enable(struct ds_output *output); + +void +ds_output_disable(struct ds_output *output); + bool ds_output_commit(struct ds_output *output); diff --git a/src/libds/output.c b/src/libds/output.c index 4f67056..bc286f7 100644 --- a/src/libds/output.c +++ b/src/libds/output.c @@ -7,6 +7,7 @@ static void output_handle_display_destroy(struct wl_listener *listener, void *data); +static void output_enable(struct ds_output *output, bool enable); static void output_state_clear(struct ds_output_state *state); static void output_state_clear_buffer(struct ds_output_state *state); @@ -43,6 +44,18 @@ ds_output_destroy(struct ds_output *output) free(output); } +void +ds_output_enable(struct ds_output *output) +{ + output_enable(output, true); +} + +void +ds_output_disable(struct ds_output *output) +{ + output_enable(output, false); +} + WL_EXPORT bool ds_output_commit(struct ds_output *output) { @@ -147,3 +160,15 @@ output_state_clear_buffer(struct ds_output_state *state) state->committed &= ~DS_OUTPUT_STATE_BUFFER; } + +static void +output_enable(struct ds_output *output, bool enable) +{ + if (output->enabled == enable) { + output->pending.committed &= ~DS_OUTPUT_STATE_ENABLED; + return; + } + + output->pending.committed |= DS_OUTPUT_STATE_ENABLED; + output->pending.enabled = enable; +}