void spice_display_send_key(SpiceDisplay *display, int scancode, bool down) { SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display); uint32_t i, b, m; if (!d->inputs) return; i = scancode / 32; b = scancode % 32; m = (1 << b); g_return_if_fail(i < G_N_ELEMENTS(d->key_state)); if (down) { spice_inputs_key_press(d->inputs, scancode); d->key_state[i] |= m; } else { if (!(d->key_state[i] & m)) { return; } spice_inputs_key_release(d->inputs, scancode); d->key_state[i] &= ~m; } }
void QSpiceInputsChannel::inputsKeyRelease(uint scancode) { spice_inputs_key_release((SpiceInputsChannel *) gobject, scancode); }