[Spice-devel] [PATCH spice-gtk 1/5] util-priv: factor out spice_make_scancode()
Hans de Goede
hdegoede at redhat.com
Thu Aug 16 01:50:37 PDT 2012
Looks good, ack.
On 08/15/2012 09:59 PM, Marc-André Lureau wrote:
> Factor out the keyboard scancode manipulation function, to be reusable
> by newer code.
> ---
> gtk/channel-inputs.c | 22 ++++------------------
> gtk/spice-util-priv.h | 1 +
> gtk/spice-util.c | 21 +++++++++++++++++++++
> 3 files changed, 26 insertions(+), 18 deletions(-)
>
> diff --git a/gtk/channel-inputs.c b/gtk/channel-inputs.c
> index 02ac026..3259da8 100644
> --- a/gtk/channel-inputs.c
> +++ b/gtk/channel-inputs.c
> @@ -483,15 +483,8 @@ void spice_inputs_key_press(SpiceInputsChannel *channel, guint scancode)
> if (spice_channel_get_read_only(SPICE_CHANNEL(channel)))
> return;
>
> - SPICE_DEBUG("%s: scancode %d", __FUNCTION__, scancode);
> - if (scancode < 0x100) {
> - down.code = scancode;
> - } else {
> - down.code = 0xe0 | ((scancode - 0x100) << 8);
> - }
> -
> - msg = spice_msg_out_new(SPICE_CHANNEL(channel),
> - SPICE_MSGC_INPUTS_KEY_DOWN);
> + down.code = spice_make_scancode(scancode, FALSE);
> + msg = spice_msg_out_new(SPICE_CHANNEL(channel), SPICE_MSGC_INPUTS_KEY_DOWN);
> msg->marshallers->msgc_inputs_key_down(msg->marshaller, &down);
> spice_msg_out_send(msg);
> }
> @@ -515,15 +508,8 @@ void spice_inputs_key_release(SpiceInputsChannel *channel, guint scancode)
> if (spice_channel_get_read_only(SPICE_CHANNEL(channel)))
> return;
>
> - SPICE_DEBUG("%s: scancode %d", __FUNCTION__, scancode);
> - if (scancode < 0x100) {
> - up.code = scancode | 0x80;
> - } else {
> - up.code = 0x80e0 | ((scancode - 0x100) << 8);
> - }
> -
> - msg = spice_msg_out_new(SPICE_CHANNEL(channel),
> - SPICE_MSGC_INPUTS_KEY_UP);
> + up.code = spice_make_scancode(scancode, TRUE);
> + msg = spice_msg_out_new(SPICE_CHANNEL(channel), SPICE_MSGC_INPUTS_KEY_UP);
> msg->marshallers->msgc_inputs_key_up(msg->marshaller, &up);
> spice_msg_out_send(msg);
> }
> diff --git a/gtk/spice-util-priv.h b/gtk/spice-util-priv.h
> index c2022a3..ee5a42d 100644
> --- a/gtk/spice-util-priv.h
> +++ b/gtk/spice-util-priv.h
> @@ -28,6 +28,7 @@ G_BEGIN_DECLS
> gboolean spice_strv_contains(const GStrv strv, const gchar *str);
> gchar* spice_uuid_to_string(const guint8 uuid[16]);
> const gchar* spice_yes_no(gboolean value);
> +guint16 spice_make_scancode(guint scancode, gboolean release);
>
> #if GLIB_CHECK_VERSION(2,32,0)
> #define STATIC_MUTEX GMutex
> diff --git a/gtk/spice-util.c b/gtk/spice-util.c
> index 8f4f1dc..774a145 100644
> --- a/gtk/spice-util.c
> +++ b/gtk/spice-util.c
> @@ -224,3 +224,24 @@ const gchar* spice_yes_no(gboolean value)
> {
> return value ? "yes" : "no";
> }
> +
> +G_GNUC_INTERNAL
> +guint16 spice_make_scancode(guint scancode, gboolean release)
> +{
> + SPICE_DEBUG("%s: %s scancode %d",
> + __FUNCTION__, release ? "release" : "", scancode);
> +
> + if (release) {
> + if (scancode < 0x100)
> + return scancode | 0x80;
> + else
> + return 0x80e0 | ((scancode - 0x100) << 8);
> + } else {
> + if (scancode < 0x100)
> + return scancode;
> + else
> + return 0xe0 | ((scancode - 0x100) << 8);
> + }
> +
> + g_return_val_if_reached(0);
> +}
>
More information about the Spice-devel
mailing list