Lines Matching +full:io +full:- +full:width

2  * SPDX-License-Identifier: GPL-2.0-or-later
5 * See the COPYING file in the top-level directory.
9 * - Enable SSL
10 * - Manage SetOptions/ResetOptions commands
15 #include "qemu/main-loop.h"
19 #include "io/channel-socket.h"
25 #include "input-barrier.h"
27 #define TYPE_INPUT_BARRIER "input-barrier"
43 int16_t width, height; member
131 l -= size; \
142 l -= size; \
153 l -= size; \
164 l -= size; \
175 l -= size; \
186 l -= size; \
197 l -= sizeof(size); \
200 l -= size; \
209 ret = qio_channel_read(QIO_CHANNEL(ib->sioc), (char *)&len, sizeof(len), in readcmd()
220 ret = qio_channel_read(QIO_CHANNEL(ib->sioc), ib->buffer, len, NULL); in readcmd()
225 p = ib->buffer; in readcmd()
231 len -= strlen(cmd_names[barrierCmdHello]); in readcmd()
234 if (memcmp(ib->buffer, cmd_names[cmd], 4) == 0) { in readcmd()
243 len -= 4; in readcmd()
246 msg->cmd = cmd; in readcmd()
250 read_short(msg->version.major, p, len); in readcmd()
251 read_short(msg->version.minor, p, len); in readcmd()
254 read_int(msg->set.nb, p, len); in readcmd()
255 msg->set.nb /= 2; in readcmd()
256 if (msg->set.nb > BARRIER_MAX_OPTIONS) { in readcmd()
257 msg->set.nb = BARRIER_MAX_OPTIONS; in readcmd()
260 while (len && i < msg->set.nb) { in readcmd()
261 read_int(msg->set.option[i].id, p, len); in readcmd()
263 msg->set.option[i].id = htonl(msg->set.option[i].id); in readcmd()
264 msg->set.option[i].nul = 0; in readcmd()
265 read_int(msg->set.option[i].value, p, len); in readcmd()
275 read_short(msg->mousepos.x, p, len); in readcmd()
276 read_short(msg->mousepos.y, p, len); in readcmd()
280 read_char(msg->mousebutton.buttonid, p, len); in readcmd()
283 read_short(msg->mousepos.y, p, len); in readcmd()
284 msg->mousepos.x = 0; in readcmd()
286 msg->mousepos.x = msg->mousepos.y; in readcmd()
287 read_short(msg->mousepos.y, p, len); in readcmd()
294 read_short(msg->key.keyid, p, len); in readcmd()
295 read_short(msg->key.modifier, p, len); in readcmd()
296 msg->key.button = 0; in readcmd()
298 read_short(msg->key.button, p, len); in readcmd()
302 read_short(msg->repeat.keyid, p, len); in readcmd()
303 read_short(msg->repeat.modifier, p, len); in readcmd()
304 read_short(msg->repeat.repeat, p, len); in readcmd()
305 msg->repeat.button = 0; in readcmd()
307 read_short(msg->repeat.button, p, len); in readcmd()
327 read_short(msg->version.major, p, len); in readcmd()
328 read_short(msg->version.minor, p, len); in readcmd()
347 p = ib->buffer; in writecmd()
352 avail -= sizeof(int); in writecmd()
354 switch (msg->cmd) { in writecmd()
356 if (msg->version.major < BARRIER_VERSION_MAJOR || in writecmd()
357 (msg->version.major == BARRIER_VERSION_MAJOR && in writecmd()
358 msg->version.minor < BARRIER_VERSION_MINOR)) { in writecmd()
359 ib->ioc_tag = 0; in writecmd()
365 write_string(p, ib->name, avail); in writecmd()
368 ib->ioc_tag = 0; in writecmd()
372 write_short(p, ib->x_origin, avail); in writecmd()
373 write_short(p, ib->y_origin, avail); in writecmd()
374 write_short(p, ib->width, avail); in writecmd()
375 write_short(p, ib->height, avail); in writecmd()
400 qemu_input_queue_abs(NULL, INPUT_AXIS_X, msg->mousepos.x, in writecmd()
401 ib->x_origin, ib->width); in writecmd()
402 qemu_input_queue_abs(NULL, INPUT_AXIS_Y, msg->mousepos.y, in writecmd()
403 ib->y_origin, ib->height); in writecmd()
407 qemu_input_queue_rel(NULL, INPUT_AXIS_X, msg->mousepos.x); in writecmd()
408 qemu_input_queue_rel(NULL, INPUT_AXIS_Y, msg->mousepos.y); in writecmd()
413 input_barrier_to_mouse(msg->mousebutton.buttonid), in writecmd()
419 input_barrier_to_mouse(msg->mousebutton.buttonid), in writecmd()
424 qemu_input_queue_btn(NULL, (msg->mousepos.y > 0) ? INPUT_BUTTON_WHEEL_UP in writecmd()
427 qemu_input_queue_btn(NULL, (msg->mousepos.y > 0) ? INPUT_BUTTON_WHEEL_UP in writecmd()
435 input_barrier_to_qcode(msg->key.keyid, msg->key.button), in writecmd()
439 for (i = 0; i < msg->repeat.repeat; i++) { in writecmd()
441 input_barrier_to_qcode(msg->repeat.keyid, msg->repeat.button), in writecmd()
444 input_barrier_to_qcode(msg->repeat.keyid, msg->repeat.button), in writecmd()
450 input_barrier_to_qcode(msg->key.keyid, msg->key.button), in writecmd()
458 len = MAX_HELLO_LENGTH - avail - sizeof(int); in writecmd()
460 p = ib->buffer; in writecmd()
463 ret = qio_channel_write(QIO_CHANNEL(ib->sioc), ib->buffer, in writecmd()
466 ib->ioc_tag = 0; in writecmd()
483 ib->ioc_tag = 0; in input_barrier_event()
495 if (!ib->name) { in input_barrier_complete()
506 ib->sioc = qio_channel_socket_new(); in input_barrier_complete()
507 qio_channel_set_name(QIO_CHANNEL(ib->sioc), "barrier-client"); in input_barrier_complete()
509 qio_channel_socket_connect_sync(ib->sioc, &ib->saddr, &local_err); in input_barrier_complete()
515 qio_channel_set_delay(QIO_CHANNEL(ib->sioc), false); in input_barrier_complete()
517 ib->ioc_tag = qio_channel_add_watch(QIO_CHANNEL(ib->sioc), G_IO_IN, in input_barrier_complete()
525 if (ib->ioc_tag) { in input_barrier_instance_finalize()
526 g_source_remove(ib->ioc_tag); in input_barrier_instance_finalize()
527 ib->ioc_tag = 0; in input_barrier_instance_finalize()
530 if (ib->sioc) { in input_barrier_instance_finalize()
531 qio_channel_close(QIO_CHANNEL(ib->sioc), NULL); in input_barrier_instance_finalize()
532 object_unref(OBJECT(ib->sioc)); in input_barrier_instance_finalize()
534 g_free(ib->name); in input_barrier_instance_finalize()
535 g_free(ib->saddr.u.inet.host); in input_barrier_instance_finalize()
536 g_free(ib->saddr.u.inet.port); in input_barrier_instance_finalize()
543 return g_strdup(ib->name); in input_barrier_get_name()
551 if (ib->name) { in input_barrier_set_name()
555 ib->name = g_strdup(value); in input_barrier_set_name()
562 return g_strdup(ib->saddr.u.inet.host); in input_barrier_get_server()
570 g_free(ib->saddr.u.inet.host); in input_barrier_set_server()
571 ib->saddr.u.inet.host = g_strdup(value); in input_barrier_set_server()
578 return g_strdup(ib->saddr.u.inet.port); in input_barrier_get_port()
586 g_free(ib->saddr.u.inet.port); in input_barrier_set_port()
587 ib->saddr.u.inet.port = g_strdup(value); in input_barrier_set_port()
599 "x-origin property must be in the range [0..%d]", SHRT_MAX); in input_barrier_set_x_origin()
602 ib->x_origin = result; in input_barrier_set_x_origin()
609 return g_strdup_printf("%d", ib->x_origin); in input_barrier_get_x_origin()
621 "y-origin property must be in the range [0..%d]", SHRT_MAX); in input_barrier_set_y_origin()
624 ib->y_origin = result; in input_barrier_set_y_origin()
631 return g_strdup_printf("%d", ib->y_origin); in input_barrier_get_y_origin()
643 "width property must be in the range [0..%d]", SHRT_MAX); in input_barrier_set_width()
646 ib->width = result; in input_barrier_set_width()
653 return g_strdup_printf("%d", ib->width); in input_barrier_get_width()
668 ib->height = result; in input_barrier_set_height()
675 return g_strdup_printf("%d", ib->height); in input_barrier_get_height()
689 ib->saddr.type = SOCKET_ADDRESS_TYPE_INET; in input_barrier_instance_init()
690 ib->saddr.u.inet.host = g_strdup("localhost"); in input_barrier_instance_init()
691 ib->saddr.u.inet.port = g_strdup("24800"); in input_barrier_instance_init()
693 ib->x_origin = 0; in input_barrier_instance_init()
694 ib->y_origin = 0; in input_barrier_instance_init()
695 ib->width = 1920; in input_barrier_instance_init()
696 ib->height = 1080; in input_barrier_instance_init()
703 ucc->complete = input_barrier_complete; in input_barrier_class_init()
714 object_class_property_add_str(oc, "x-origin", in input_barrier_class_init()
717 object_class_property_add_str(oc, "y-origin", in input_barrier_class_init()
720 object_class_property_add_str(oc, "width", in input_barrier_class_init()