Lines Matching +full:key +full:- +full:down

4 #include "qapi/qapi-commands-ui.h"
54 s->dev = dev; in qemu_input_handler_register()
55 s->handler = handler; in qemu_input_handler_register()
56 s->id = id++; in qemu_input_handler_register()
97 s->con = con; in qemu_input_handler_bind()
106 if (s->con == NULL || s->con != con) { in qemu_input_find_handler()
109 if (mask & s->handler->mask) { in qemu_input_find_handler()
115 if (s->con != NULL) { in qemu_input_find_handler()
118 if (mask & s->handler->mask) { in qemu_input_find_handler()
150 for (e = events; e != NULL; e = e->next) { in qmp_input_send_event()
151 InputEvent *event = e->value; in qmp_input_send_event()
153 if (!qemu_input_find_handler(1 << event->type, con)) { in qmp_input_send_event()
156 InputEventKind_str(event->type)); in qmp_input_send_event()
161 for (e = events; e != NULL; e = e->next) { in qmp_input_send_event()
162 InputEvent *evt = e->value; in qmp_input_send_event()
164 if (evt->type == INPUT_EVENT_KIND_KEY && in qmp_input_send_event()
165 evt->u.key.data->key->type == KEY_VALUE_KIND_NUMBER) { in qmp_input_send_event()
166 KeyValue *key = evt->u.key.data->key; in qmp_input_send_event() local
167 QKeyCode code = qemu_input_key_number_to_qcode(key->u.number.data); in qmp_input_send_event()
168 qemu_input_event_send_key_qcode(con, code, evt->u.key.data->down); in qmp_input_send_event()
180 int qcode, idx = -1; in qemu_input_event_trace()
181 InputKeyEvent *key; in qemu_input_event_trace() local
189 switch (evt->type) { in qemu_input_event_trace()
191 key = evt->u.key.data; in qemu_input_event_trace()
192 switch (key->key->type) { in qemu_input_event_trace()
194 qcode = qemu_input_key_number_to_qcode(key->key->u.number.data); in qemu_input_event_trace()
196 trace_input_event_key_number(idx, key->key->u.number.data, in qemu_input_event_trace()
197 name, key->down); in qemu_input_event_trace()
200 name = QKeyCode_str(key->key->u.qcode.data); in qemu_input_event_trace()
201 trace_input_event_key_qcode(idx, name, key->down); in qemu_input_event_trace()
209 btn = evt->u.btn.data; in qemu_input_event_trace()
210 name = InputButton_str(btn->button); in qemu_input_event_trace()
211 trace_input_event_btn(idx, name, btn->down); in qemu_input_event_trace()
214 move = evt->u.rel.data; in qemu_input_event_trace()
215 name = InputAxis_str(move->axis); in qemu_input_event_trace()
216 trace_input_event_rel(idx, name, move->value); in qemu_input_event_trace()
219 move = evt->u.abs.data; in qemu_input_event_trace()
220 name = InputAxis_str(move->axis); in qemu_input_event_trace()
221 trace_input_event_abs(idx, name, move->value); in qemu_input_event_trace()
224 mtt = evt->u.mtt.data; in qemu_input_event_trace()
225 name = InputAxis_str(mtt->axis); in qemu_input_event_trace()
226 trace_input_event_mtt(idx, name, mtt->value); in qemu_input_event_trace()
241 g_assert(item->type == QEMU_INPUT_QUEUE_DELAY); in qemu_input_queue_process()
243 queue_count--; in qemu_input_queue_process()
248 switch (item->type) { in qemu_input_queue_process()
250 timer_mod(item->timer, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) in qemu_input_queue_process()
251 + item->delay_ms); in qemu_input_queue_process()
254 qemu_input_event_send(item->src, item->evt); in qemu_input_queue_process()
255 qapi_free_InputEvent(item->evt); in qemu_input_queue_process()
262 queue_count--; in qemu_input_queue_process()
273 item->type = QEMU_INPUT_QUEUE_DELAY; in qemu_input_queue_delay()
274 item->delay_ms = delay_ms; in qemu_input_queue_delay()
275 item->timer = timer; in qemu_input_queue_delay()
280 timer_mod(item->timer, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) in qemu_input_queue_delay()
281 + item->delay_ms); in qemu_input_queue_delay()
290 item->type = QEMU_INPUT_QUEUE_EVENT; in qemu_input_queue_event()
291 item->src = src; in qemu_input_queue_event()
292 item->evt = evt; in qemu_input_queue_event()
301 item->type = QEMU_INPUT_QUEUE_SYNC; in qemu_input_queue_sync()
313 s = qemu_input_find_handler(1 << evt->type, src); in qemu_input_event_send_impl()
317 s->handler->event(s->dev, src, evt); in qemu_input_event_send_impl()
318 s->events++; in qemu_input_event_send_impl()
324 * Key numbers are only supported as end-user input via QMP */ in qemu_input_event_send()
325 assert(!(evt->type == INPUT_EVENT_KIND_KEY && in qemu_input_event_send()
326 evt->u.key.data->key->type == KEY_VALUE_KIND_NUMBER)); in qemu_input_event_send()
333 * 'sysrq' key serves no further purpose. We normalize it to in qemu_input_event_send()
337 if (evt->type == INPUT_EVENT_KIND_KEY && in qemu_input_event_send()
338 evt->u.key.data->key->u.qcode.data == Q_KEY_CODE_SYSRQ) { in qemu_input_event_send()
339 evt->u.key.data->key->u.qcode.data = Q_KEY_CODE_PRINT; in qemu_input_event_send()
356 if (!s->events) { in qemu_input_event_sync_impl()
359 if (s->handler->sync) { in qemu_input_event_sync_impl()
360 s->handler->sync(s->dev); in qemu_input_event_sync_impl()
362 s->events = 0; in qemu_input_event_sync_impl()
375 static InputEvent *qemu_input_event_new_key(KeyValue *key, bool down) in qemu_input_event_new_key() argument
378 evt->u.key.data = g_new0(InputKeyEvent, 1); in qemu_input_event_new_key()
379 evt->type = INPUT_EVENT_KIND_KEY; in qemu_input_event_new_key()
380 evt->u.key.data->key = key; in qemu_input_event_new_key()
381 evt->u.key.data->down = down; in qemu_input_event_new_key()
385 void qemu_input_event_send_key(QemuConsole *src, KeyValue *key, bool down) in qemu_input_event_send_key() argument
388 evt = qemu_input_event_new_key(key, down); in qemu_input_event_send_key()
401 void qemu_input_event_send_key_number(QemuConsole *src, int num, bool down) in qemu_input_event_send_key_number() argument
404 qemu_input_event_send_key_qcode(src, code, down); in qemu_input_event_send_key_number()
407 void qemu_input_event_send_key_qcode(QemuConsole *src, QKeyCode q, bool down) in qemu_input_event_send_key_qcode() argument
409 KeyValue *key = g_new0(KeyValue, 1); in qemu_input_event_send_key_qcode() local
410 key->type = KEY_VALUE_KIND_QCODE; in qemu_input_event_send_key_qcode()
411 key->u.qcode.data = q; in qemu_input_event_send_key_qcode()
412 qemu_input_event_send_key(src, key, down); in qemu_input_event_send_key_qcode()
432 void qemu_input_queue_btn(QemuConsole *src, InputButton btn, bool down) in qemu_input_queue_btn() argument
436 .down = down, in qemu_input_queue_btn()
467 return (s != NULL) && (s->handler->mask & INPUT_EVENT_MASK_ABS); in qemu_input_is_absolute()
474 int64_t range_in = (int64_t)max_in - min_in; in qemu_input_scale_axis()
475 int64_t range_out = (int64_t)max_out - min_out; in qemu_input_scale_axis()
480 return ((int64_t)value - min_in) * range_out / range_in + min_out; in qemu_input_scale_axis()
568 if (!(s->handler->mask & in qmp_query_mice()
574 info->index = s->id; in qmp_query_mice()
575 info->name = g_strdup(s->handler->name); in qmp_query_mice()
576 info->absolute = s->handler->mask & INPUT_EVENT_MASK_ABS; in qmp_query_mice()
577 info->current = current; in qmp_query_mice()
591 if (s->id == index) { in qemu_mouse_set()
601 if (!(s->handler->mask & (INPUT_EVENT_MASK_REL | in qemu_mouse_set()
604 s->handler->name); in qemu_mouse_set()