Signed-off-by: Lukáš Hrázký <lhrazky@xxxxxxxxxx> --- src/channel-main.c | 204 ++++++++++++++++++++++++--------------------- src/channel-main.h | 18 ++-- 2 files changed, 120 insertions(+), 102 deletions(-) diff --git a/src/channel-main.c b/src/channel-main.c index a23bc64..085990c 100644 --- a/src/channel-main.c +++ b/src/channel-main.c @@ -2623,6 +2623,55 @@ gboolean spice_main_channel_agent_test_capability(SpiceMainChannel *channel, gui return test_agent_cap(channel, cap); } +static void spice_main_channel_update_display_deprecated(SpiceMainChannel *channel, + int id, int x, int y, int width, + int height, gboolean update) +{ + g_return_if_fail(channel != NULL); + g_return_if_fail(SPICE_IS_MAIN_CHANNEL(channel)); + g_return_if_fail(x >= 0); + g_return_if_fail(y >= 0); + g_return_if_fail(width >= 0); + g_return_if_fail(height >= 0); + + GArray *monitor_configs = spice_session_get_monitor_configs( + spice_channel_get_session(SPICE_CHANNEL(channel))); + + bool found = false; + SpiceMonitorConfig *mc = NULL; + for (size_t i = 0; i < monitor_configs->len; ++i) { + mc = &g_array_index(monitor_configs, SpiceMonitorConfig, i); + if (mc->channel_id + mc->monitor_id == id) { + found = true; + break; + } + } + + if (!found) { + g_warning("Display ID %d not found while trying to update the display (monitor config).", id); + return; + } + + if (mc->x == x && + mc->y == y && + mc->width == width && + mc->height == height) { + return; + } + + CHANNEL_DEBUG(channel, + "Update display (monitor config) id: %d (channel_id: %u, monitor_id: %u), +%d+%d-%dx%d", + id, mc->channel_id, mc->monitor_id, x, y, width, height); + + mc->x = x; + mc->y = y; + mc->width = width; + mc->height = height; + + if (update) + spice_main_channel_update_display_timer(channel, 1); +} + /** * spice_main_update_display: * @channel: a #SpiceMainChannel @@ -2640,13 +2689,13 @@ gboolean spice_main_channel_agent_test_capability(SpiceMainChannel *channel, gui * without delay the new configuration to the remote with * spice_main_send_monitor_config() * - * Deprecated: 0.35: use spice_main_channel_update_display() instead. + * Deprecated: 0.36: use spice_session_update_monitor_config_dimensions() instead. **/ void spice_main_update_display(SpiceMainChannel *channel, int id, int x, int y, int width, int height, gboolean update) { - spice_main_channel_update_display(channel, id, x, y, width, height, update); + spice_main_channel_update_display_deprecated(channel, id, x, y, width, height, update); } /** @@ -2667,53 +2716,12 @@ void spice_main_update_display(SpiceMainChannel *channel, int id, * spice_main_send_monitor_config() * * Since: 0.35 + * Deprecated: 0.36: use spice_session_update_monitor_config_dimensions() instead. **/ void spice_main_channel_update_display(SpiceMainChannel *channel, int id, int x, int y, int width, int height, gboolean update) { - g_return_if_fail(channel != NULL); - g_return_if_fail(SPICE_IS_MAIN_CHANNEL(channel)); - g_return_if_fail(x >= 0); - g_return_if_fail(y >= 0); - g_return_if_fail(width >= 0); - g_return_if_fail(height >= 0); - - GArray *monitor_configs = spice_session_get_monitor_configs( - spice_channel_get_session(SPICE_CHANNEL(channel))); - - bool found = false; - SpiceMonitorConfig *mc = NULL; - for (size_t i = 0; i < monitor_configs->len; ++i) { - mc = &g_array_index(monitor_configs, SpiceMonitorConfig, i); - if (mc->channel_id + mc->monitor_id == id) { - found = true; - break; - } - } - - if (!found) { - g_warning("Display ID %d not found while trying to update the display (monitor config).", id); - return; - } - - if (mc->x == x && - mc->y == y && - mc->width == width && - mc->height == height) { - return; - } - - CHANNEL_DEBUG(channel, - "Update display (monitor config) id: %d (channel_id: %u, monitor_id: %u), +%d+%d-%dx%d", - id, mc->channel_id, mc->monitor_id, x, y, width, height); - - mc->x = x; - mc->y = y; - mc->width = width; - mc->height = height; - - if (update) - spice_main_channel_update_display_timer(channel, 1); + spice_main_channel_update_display_deprecated(channel, id, x, y, width, height, update); } /** @@ -2728,12 +2736,12 @@ void spice_main_channel_update_display(SpiceMainChannel *channel, int id, int x, * Notify the guest of screen resolution change. The notification is * sent 1 second later, if no further changes happen. * - * Deprecated: 0.35: use spice_main_channel_update_display() instead. + * Deprecated: 0.36: use spice_session_update_monitor_config_dimensions() instead. **/ void spice_main_set_display(SpiceMainChannel *channel, int id, int x, int y, int width, int height) { - spice_main_channel_update_display(channel, id, x, y, width, height, TRUE); + spice_main_channel_update_display_deprecated(channel, id, x, y, width, height, TRUE); } /** @@ -2958,51 +2966,9 @@ void spice_main_channel_clipboard_selection_request(SpiceMainChannel *channel, g spice_channel_wakeup(SPICE_CHANNEL(channel), FALSE); } -/** - * spice_main_update_display_enabled: - * @channel: a #SpiceMainChannel - * @id: the display ID - assumed to be channel_id + monitor_id - * @enabled: wether display @id is enabled - * @update: if %TRUE, update guest display state after 1sec. - * - * When sending monitor configuration to agent guest, if @enabled is %FALSE, - * don't set display @id, which the agent translates to disabling the display - * id. If @enabled is %TRUE, the monitor will be included in the next monitor - * update. Note: this will take effect next time the monitor configuration is - * sent. - * - * If @update is %FALSE, no server update will be triggered by this call, but - * the value will be saved and used in the next configuration update. - * - * Since: 0.30 - * Deprecated: 0.35: use spice_main_channel_update_display_enabled() instead. - **/ -void spice_main_update_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled, - gboolean update) -{ - spice_main_channel_update_display_enabled(channel, id, enabled, update); -} - -/** - * spice_main_channel_update_display_enabled: - * @channel: a #SpiceMainChannel - * @id: the display ID - assumed to be channel_id + monitor_id - * @enabled: wether display @id is enabled - * @update: if %TRUE, update guest display state after 1sec. - * - * When sending monitor configuration to agent guest, if @enabled is %FALSE, - * don't set display @id, which the agent translates to disabling the display - * id. If @enabled is %TRUE, the monitor will be included in the next monitor - * update. Note: this will take effect next time the monitor configuration is - * sent. - * - * If @update is %FALSE, no server update will be triggered by this call, but - * the value will be saved and used in the next configuration update. - * - * Since: 0.35 - **/ -void spice_main_channel_update_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled, - gboolean update) +static void spice_main_channel_update_display_enabled_deprecated(SpiceMainChannel *channel, + int id, gboolean enabled, + gboolean update) { g_return_if_fail(channel != NULL); g_return_if_fail(SPICE_IS_MAIN_CHANNEL(channel)); @@ -3051,6 +3017,56 @@ void spice_main_channel_update_display_enabled(SpiceMainChannel *channel, int id spice_main_channel_update_display_timer(channel, 1); } +/** + * spice_main_update_display_enabled: + * @channel: a #SpiceMainChannel + * @id: the display ID - assumed to be channel_id + monitor_id + * @enabled: wether display @id is enabled + * @update: if %TRUE, update guest display state after 1sec. + * + * When sending monitor configuration to agent guest, if @enabled is %FALSE, + * don't set display @id, which the agent translates to disabling the display + * id. If @enabled is %TRUE, the monitor will be included in the next monitor + * update. Note: this will take effect next time the monitor configuration is + * sent. + * + * If @update is %FALSE, no server update will be triggered by this call, but + * the value will be saved and used in the next configuration update. + * + * Since: 0.30 + * Deprecated: 0.36: use spice_session_update_monitor_config_enabled() instead. + **/ +void spice_main_update_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled, + gboolean update) +{ + spice_main_channel_update_display_enabled_deprecated(channel, id, enabled, update); +} + +/** + * spice_main_channel_update_display_enabled: + * @channel: a #SpiceMainChannel + * @id: the display ID - assumed to be channel_id + monitor_id + * @enabled: wether display @id is enabled + * @update: if %TRUE, update guest display state after 1sec. + * + * When sending monitor configuration to agent guest, if @enabled is %FALSE, + * don't set display @id, which the agent translates to disabling the display + * id. If @enabled is %TRUE, the monitor will be included in the next monitor + * update. Note: this will take effect next time the monitor configuration is + * sent. + * + * If @update is %FALSE, no server update will be triggered by this call, but + * the value will be saved and used in the next configuration update. + * + * Since: 0.35 + * Deprecated: 0.36: use spice_session_update_monitor_config_enabled() instead. + **/ +void spice_main_channel_update_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled, + gboolean update) +{ + spice_main_channel_update_display_enabled_deprecated(channel, id, enabled, update); +} + /** * spice_main_set_display_enabled: * @channel: a #SpiceMainChannel @@ -3063,11 +3079,11 @@ void spice_main_channel_update_display_enabled(SpiceMainChannel *channel, int id * configuration is sent. * * Since: 0.6 - * Deprecated: 0.35: use spice_main_channel_update_display_enabled() instead. + * Deprecated: 0.36: use spice_session_update_monitor_config_enabled() instead. **/ void spice_main_set_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled) { - spice_main_channel_update_display_enabled(channel, id, enabled, TRUE); + spice_main_channel_update_display_enabled_deprecated(channel, id, enabled, TRUE); } static void file_xfer_init_task_async_cb(GObject *obj, GAsyncResult *res, gpointer data) diff --git a/src/channel-main.h b/src/channel-main.h index 0495bb2..aee9577 100644 --- a/src/channel-main.h +++ b/src/channel-main.h @@ -71,10 +71,6 @@ struct _SpiceMainChannelClass { GType spice_main_channel_get_type(void); -void spice_main_channel_update_display(SpiceMainChannel *channel, int id, int x, int y, int width, - int height, gboolean update); -void spice_main_channel_update_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled, - gboolean update); gboolean spice_main_channel_send_monitor_config(SpiceMainChannel *channel); void spice_main_channel_clipboard_selection_grab(SpiceMainChannel *channel, guint selection, @@ -114,14 +110,20 @@ void spice_main_clipboard_notify(SpiceMainChannel *channel, guint32 type, const G_DEPRECATED_FOR(spice_main_channel_clipboard_selection_request) void spice_main_clipboard_request(SpiceMainChannel *channel, guint32 type); -G_DEPRECATED_FOR(spice_main_channel_update_display) +G_DEPRECATED_FOR(spice_session_update_monitor_config_dimensions) +void spice_main_channel_update_display(SpiceMainChannel *channel, int id, int x, int y, int width, + int height, gboolean update); +G_DEPRECATED_FOR(spice_session_update_monitor_config_dimensions) void spice_main_set_display(SpiceMainChannel *channel, int id,int x, int y, int width, int height); -G_DEPRECATED_FOR(spice_main_channel_update_display) +G_DEPRECATED_FOR(spice_session_update_monitor_config_dimensions) void spice_main_update_display(SpiceMainChannel *channel, int id, int x, int y, int width, int height, gboolean update); -G_DEPRECATED_FOR(spice_main_channel_update_display_enabled) +G_DEPRECATED_FOR(spice_session_update_monitor_config_enabled) +void spice_main_channel_update_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled, + gboolean update); +G_DEPRECATED_FOR(spice_session_update_monitor_config_enabled) void spice_main_set_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled); -G_DEPRECATED_FOR(spice_main_channel_update_display_enabled) +G_DEPRECATED_FOR(spice_session_update_monitor_config_enabled) void spice_main_update_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled, gboolean update); G_DEPRECATED_FOR(spice_main_channel_send_monitor_config) -- 2.18.0 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel