view src/main/java/jp/ac/u_ryukyu/treevnc/UpdateRectangleMessage.java @ 176:fa6cfb85444e

on going ...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 22 Jun 2014 15:08:45 +0900
parents 8ab1f6905db4
children b7247e31b5ba
line wrap: on
line source

package jp.ac.u_ryukyu.treevnc;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;

import com.glavsoft.rfb.encoding.EncodingType;

public class UpdateRectangleMessage {

	private ByteBuffer msg;

	public UpdateRectangleMessage(int i, int j, int width, int height,
			EncodingType desktopSize) {
		msg = ByteBuffer.allocate(16).order(ByteOrder.BIG_ENDIAN);
		msg.put((byte) 0); // FrameBufferUpdate
		msg.put((byte) 0); // padding
		msg.putShort((short) 1); // number of rectangle
		msg.putShort((short) i);
		msg.putShort((short) j);
		msg.putShort((short) width);
		msg.putShort((short) height);
		msg.putInt(desktopSize.getId());
		
		msg.flip();

	}
	
	public UpdateRectangleMessage(int width, int height,
			EncodingType desktopSize, byte[] initData, short id) {
		msg = ByteBuffer.allocate(16+4+initData.length).order(ByteOrder.BIG_ENDIAN);
		msg.put((byte) 0); // FrameBufferUpdate
		msg.put((byte) 0); // padding
		msg.putShort((short) 1); // number of rectangle
		msg.putShort((short) id);
		msg.putShort((short) 0);
		msg.putShort((short) width);
		msg.putShort((short) height);
		msg.putInt(desktopSize.getId());
		msg.putInt(initData.length);
		msg.put(initData);
		
		msg.flip();

	}
	
	public ByteBuffer getMessage(){
		return msg;
	}

	
}