Mercurial > hg > Members > riono > TreeVNC_ja_comment
comparison src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java @ 242:a640cd7001e1
fix checkdelay, and fix serial number option
author | oc |
---|---|
date | Mon, 13 Oct 2014 17:23:57 +0900 |
parents | b21a7842a41d |
children | 0ed7719c1800 |
comparison
equal
deleted
inserted
replaced
241:b21a7842a41d | 242:a640cd7001e1 |
---|---|
433 public void sendDesktopSizeChange(short id) { | 433 public void sendDesktopSizeChange(short id) { |
434 LinkedList<ByteBuffer> desktopSize = new LinkedList<ByteBuffer>(); | 434 LinkedList<ByteBuffer> desktopSize = new LinkedList<ByteBuffer>(); |
435 int width = context.getFbWidth(); | 435 int width = context.getFbWidth(); |
436 int height = context.getFbHeight(); | 436 int height = context.getFbHeight(); |
437 desktopSize.add(new UpdateRectangleMessage(width, height, EncodingType.INIT_DATA, context.getInitData(),id).getMessage()); | 437 desktopSize.add(new UpdateRectangleMessage(width, height, EncodingType.INIT_DATA, context.getInitData(),id).getMessage()); |
438 if (addSerialNum) { | 438 addSerialNumber(desktopSize); |
439 addSerialNumber(desktopSize); | |
440 } | |
441 multicastqueue.put(desktopSize); | 439 multicastqueue.put(desktopSize); |
442 } | 440 } |
443 | 441 |
444 | 442 |
445 public void addSerialNumber(LinkedList<ByteBuffer> bufs) { | 443 public void addSerialNumber(LinkedList<ByteBuffer> bufs) { |
446 ByteBuffer serialNum = multicastqueue.allocate(8); | 444 ByteBuffer serialNum = multicastqueue.allocate(4+8); // addSerialNum flag + SerialNum |
445 serialNum.putInt(1); | |
447 serialNum.putLong(counter++); | 446 serialNum.putLong(counter++); |
448 serialNum.flip(); | 447 serialNum.flip(); |
449 bufs.addFirst(serialNum); | 448 bufs.addFirst(serialNum); |
450 } | 449 } |
451 | 450 |
563 */ | 562 */ |
564 public void readSendData(int dataLen, Reader reader, byte[] bytes) | 563 public void readSendData(int dataLen, Reader reader, byte[] bytes) |
565 throws TransportException, UnsupportedEncodingException { | 564 throws TransportException, UnsupportedEncodingException { |
566 LinkedList<ByteBuffer> bufs = new LinkedList<ByteBuffer>(); | 565 LinkedList<ByteBuffer> bufs = new LinkedList<ByteBuffer>(); |
567 ByteBuffer header = multicastqueue.allocate(16); | 566 ByteBuffer header = multicastqueue.allocate(16); |
568 ByteBuffer serial = multicastqueue.allocate(8); | 567 ByteBuffer serial = multicastqueue.allocate(4+8); |
569 if (!isTreeManager()) { | 568 if (!isTreeManager()) { |
570 reader.readBytes(serial.array(),0,8); | 569 reader.readBytes(serial.array(),0,4+8); |
571 serial.limit(8); | 570 serial.limit(4+8); |
572 } | 571 } |
573 reader.mark(dataLen); | 572 reader.mark(dataLen); |
574 reader.readBytes(header.array(), 0, 16); | 573 reader.readBytes(header.array(), 0, 16); |
575 header.limit(16); | 574 header.limit(16); |
576 if (header.get(0) == FramebufferUpdate) { | 575 if (header.get(0) == FramebufferUpdate) { |
603 ByteBuffer blen = multicastqueue.allocate(4); | 602 ByteBuffer blen = multicastqueue.allocate(4); |
604 blen.putInt(len2); | 603 blen.putInt(len2); |
605 blen.flip(); | 604 blen.flip(); |
606 bufs.addFirst(blen); | 605 bufs.addFirst(blen); |
607 bufs.addFirst(header); | 606 bufs.addFirst(header); |
608 if (addSerialNum) { | 607 addSerialNumber(bufs); |
609 addSerialNumber(bufs); | |
610 } | |
611 multicastqueue.put(bufs); | 608 multicastqueue.put(bufs); |
612 } catch (DataFormatException e) { | 609 } catch (DataFormatException e) { |
613 throw new TransportException(e); | 610 throw new TransportException(e); |
614 } catch (IOException e) { | 611 } catch (IOException e) { |
615 throw new TransportException(e); | 612 throw new TransportException(e); |
623 ByteBuffer b = multicastqueue.allocate(dataLen - 16); | 620 ByteBuffer b = multicastqueue.allocate(dataLen - 16); |
624 reader.readBytes(b.array(), 0, dataLen - 16); | 621 reader.readBytes(b.array(), 0, dataLen - 16); |
625 b.limit(dataLen - 16); | 622 b.limit(dataLen - 16); |
626 bufs.add(b); | 623 bufs.add(b); |
627 } | 624 } |
628 if (addSerialNum) { | 625 this.addSerialNumber(bufs); |
629 this.addSerialNumber(bufs); | |
630 } | |
631 multicastqueue.put(bufs); | 626 multicastqueue.put(bufs); |
632 | 627 |
633 return; | 628 return; |
634 } | 629 } |
635 // It may be compressed. We can inflate here to avoid repeating clients | 630 // It may be compressed. We can inflate here to avoid repeating clients |