Lines Matching refs:baum

237 static int baum_deferred_init(BaumChardev *baum)  in baum_deferred_init()  argument
242 if (baum->deferred_init) { in baum_deferred_init()
246 if (brlapi__getDisplaySize(baum->brlapi, &baum->x, &baum->y) == -1) { in baum_deferred_init()
250 if (baum->y > Y_MAX) { in baum_deferred_init()
251 baum->y = Y_MAX; in baum_deferred_init()
253 if (baum->x > X_MAX) { in baum_deferred_init()
254 baum->x = X_MAX; in baum_deferred_init()
264 if (brlapi__enterTtyMode(baum->brlapi, tty, NULL) == -1) { in baum_deferred_init()
268 baum->deferred_init = 1; in baum_deferred_init()
275 BaumChardev *baum = BAUM_CHARDEV(chr); in baum_chr_accept_input() local
278 if (!baum->out_buf_used) in baum_chr_accept_input()
283 if (room > baum->out_buf_used) in baum_chr_accept_input()
284 room = baum->out_buf_used; in baum_chr_accept_input()
286 first = BUF_SIZE - baum->out_buf_ptr; in baum_chr_accept_input()
288 qemu_chr_be_write(chr, baum->out_buf + baum->out_buf_ptr, first); in baum_chr_accept_input()
289 baum->out_buf_ptr = 0; in baum_chr_accept_input()
290 baum->out_buf_used -= first; in baum_chr_accept_input()
293 qemu_chr_be_write(chr, baum->out_buf + baum->out_buf_ptr, room); in baum_chr_accept_input()
294 baum->out_buf_ptr += room; in baum_chr_accept_input()
295 baum->out_buf_used -= room; in baum_chr_accept_input()
299 static void baum_write_packet(BaumChardev *baum, const uint8_t *buf, int len) in baum_write_packet() argument
301 Chardev *chr = CHARDEV(baum); in baum_write_packet()
321 if (len > BUF_SIZE - baum->out_buf_used) { in baum_write_packet()
324 baum->out_buf_used = 0; in baum_write_packet()
325 baum->out_buf_ptr = 0; in baum_write_packet()
327 out = baum->out_buf_ptr; in baum_write_packet()
328 baum->out_buf_used += len; in baum_write_packet()
329 first = BUF_SIZE - baum->out_buf_ptr; in baum_write_packet()
331 memcpy(baum->out_buf + out, cur, first); in baum_write_packet()
336 memcpy(baum->out_buf + out, cur, len); in baum_write_packet()
343 BaumChardev *baum = BAUM_CHARDEV(opaque); in baum_cellCount_timer_cb() local
344 uint8_t cell_count[] = { BAUM_RSP_CellCount, baum->x * baum->y }; in baum_cellCount_timer_cb()
346 baum_write_packet(baum, cell_count, sizeof(cell_count)); in baum_cellCount_timer_cb()
350 static int baum_eat_packet(BaumChardev *baum, const uint8_t *buf, int len) in baum_eat_packet() argument
374 if (timer_pending(baum->cellCount_timer)) { \ in baum_eat_packet()
375 timer_del(baum->cellCount_timer); \ in baum_eat_packet()
376 baum_cellCount_timer_cb(baum); \ in baum_eat_packet()
394 timer_mod(baum->cellCount_timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + in baum_eat_packet()
396 for (i = 0; i < baum->x * baum->y ; i++) { in baum_eat_packet()
410 timer_del(baum->cellCount_timer); in baum_eat_packet()
412 memset(zero, 0, baum->x * baum->y); in baum_eat_packet()
417 .regionSize = baum->x * baum->y, in baum_eat_packet()
419 .textSize = baum->x * baum->y, in baum_eat_packet()
426 if (brlapi__write(baum->brlapi, &wa) == -1) in baum_eat_packet()
452 identity[11] = '0' + baum->x / 10; in baum_eat_packet()
453 identity[12] = '0' + baum->x % 10; in baum_eat_packet()
454 baum_write_packet(baum, identity, sizeof(identity)); in baum_eat_packet()
461 baum_write_packet(baum, version, sizeof(version)); in baum_eat_packet()
469 baum_write_packet(baum, serial, sizeof(serial)); in baum_eat_packet()
493 BaumChardev *baum = BAUM_CHARDEV(chr); in baum_chr_write() local
498 if (!baum->brlapi) in baum_chr_write()
500 if (!baum_deferred_init(baum)) in baum_chr_write()
506 if (tocopy > BUF_SIZE - baum->in_buf_used) in baum_chr_write()
507 tocopy = BUF_SIZE - baum->in_buf_used; in baum_chr_write()
509 memcpy(baum->in_buf + baum->in_buf_used, buf, tocopy); in baum_chr_write()
510 baum->in_buf_used += tocopy; in baum_chr_write()
516 while (cur < baum->in_buf_used && in baum_chr_write()
517 (eaten = baum_eat_packet(baum, baum->in_buf + cur, baum->in_buf_used - cur))) in baum_chr_write()
522 memmove(baum->in_buf, baum->in_buf + cur, baum->in_buf_used - cur); in baum_chr_write()
523 baum->in_buf_used -= cur; in baum_chr_write()
532 static void baum_send_key(BaumChardev *baum, uint8_t type, uint8_t value) in baum_send_key() argument
536 baum_write_packet(baum, packet, sizeof(packet)); in baum_send_key()
539 static void baum_send_key2(BaumChardev *baum, uint8_t type, uint8_t value, in baum_send_key2() argument
544 baum_write_packet(baum, packet, sizeof(packet)); in baum_send_key2()
550 BaumChardev *baum = BAUM_CHARDEV(opaque); in baum_chr_read() local
553 if (!baum->brlapi) in baum_chr_read()
555 if (!baum_deferred_init(baum)) in baum_chr_read()
557 while ((ret = brlapi__readKey(baum->brlapi, 0, &code)) == 1) { in baum_chr_read()
564 baum_send_key(baum, BAUM_RSP_RoutingKey, (code & BRLAPI_KEY_CMD_ARG_MASK)+1); in baum_chr_read()
565 baum_send_key(baum, BAUM_RSP_RoutingKey, 0); in baum_chr_read()
570 baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TL2); in baum_chr_read()
571 baum_send_key(baum, BAUM_RSP_TopKeys, 0); in baum_chr_read()
574 baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TR2); in baum_chr_read()
575 baum_send_key(baum, BAUM_RSP_TopKeys, 0); in baum_chr_read()
578 baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TR1); in baum_chr_read()
579 baum_send_key(baum, BAUM_RSP_TopKeys, 0); in baum_chr_read()
582 baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TR3); in baum_chr_read()
583 baum_send_key(baum, BAUM_RSP_TopKeys, 0); in baum_chr_read()
586 baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TL1|BAUM_TR1); in baum_chr_read()
587 baum_send_key(baum, BAUM_RSP_TopKeys, 0); in baum_chr_read()
590 baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TL3|BAUM_TR3); in baum_chr_read()
591 baum_send_key(baum, BAUM_RSP_TopKeys, 0); in baum_chr_read()
594 baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TL2|BAUM_TR1); in baum_chr_read()
595 baum_send_key(baum, BAUM_RSP_TopKeys, 0); in baum_chr_read()
598 baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TL2|BAUM_TR3); in baum_chr_read()
599 baum_send_key(baum, BAUM_RSP_TopKeys, 0); in baum_chr_read()
602 baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TL2|BAUM_TR1|BAUM_TR3); in baum_chr_read()
603 baum_send_key(baum, BAUM_RSP_TopKeys, 0); in baum_chr_read()
606 baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TL1|BAUM_TL3|BAUM_TR1); in baum_chr_read()
607 baum_send_key(baum, BAUM_RSP_TopKeys, 0); in baum_chr_read()
618 baum_send_key2(baum, BAUM_RSP_EntryKeys, 0, dots); in baum_chr_read()
619 baum_send_key2(baum, BAUM_RSP_EntryKeys, 0, 0); in baum_chr_read()
628 brlapi__closeConnection(baum->brlapi); in baum_chr_read()
629 g_free(baum->brlapi); in baum_chr_read()
630 baum->brlapi = NULL; in baum_chr_read()
636 BaumChardev *baum = BAUM_CHARDEV(obj); in char_braille_finalize() local
638 timer_free(baum->cellCount_timer); in char_braille_finalize()
639 if (baum->brlapi) { in char_braille_finalize()
640 brlapi__closeConnection(baum->brlapi); in char_braille_finalize()
641 g_free(baum->brlapi); in char_braille_finalize()
650 BaumChardev *baum = BAUM_CHARDEV(chr); in baum_chr_open() local
654 baum->brlapi = handle; in baum_chr_open()
656 baum->brlapi_fd = brlapi__openConnection(handle, NULL, NULL); in baum_chr_open()
657 if (baum->brlapi_fd == -1) { in baum_chr_open()
661 baum->brlapi = NULL; in baum_chr_open()
664 baum->deferred_init = 0; in baum_chr_open()
666 baum->cellCount_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, baum_cellCount_timer_cb, baum); in baum_chr_open()
668 qemu_set_fd_handler(baum->brlapi_fd, baum_chr_read, NULL, baum); in baum_chr_open()