view src/main/java/com/glavsoft/rfb/encoding/decoder/ZRLEESender.java @ 28:18fad65bc447

Create MyRfbProto.java MyRfbProto.java is a summary of the intersection of MyRfbClient and MyRfbProxy.
author one
date Sat, 01 Sep 2012 19:24:07 +0900
parents 73b13bc335c2
children 57eb5575e6c4
line wrap: on
line source

package com.glavsoft.rfb.encoding.decoder;

import jp.ac.u_ryukyu.treevnc.server.MyRfbProtoProxy;
import jp.ac.u_ryukyu.treevnc.client.MyRfbProtoClient;

import com.glavsoft.drawing.Renderer;
import com.glavsoft.exceptions.TransportException;
import com.glavsoft.rfb.encoding.EncodingType;
import com.glavsoft.transport.Reader;

public class ZRLEESender extends Decoder {
	
	private MyRfbProtoProxy rfb;

	public ZRLEESender(MyRfbProtoProxy rfb) {
		this.rfb = rfb;
	}
	
	public ZRLEESender(MyRfbProtoClient rfb) {
	}
	
	@Override
	public void decode(Reader reader, Renderer renderer,
			FramebufferUpdateRectangle rect) throws TransportException {
		int dataLen = getZrleLength(rect,reader);
		reader.reset();
		rfb.readSendData(dataLen, reader);
	}

	private int getZrleLength(FramebufferUpdateRectangle rect,Reader reader)
			throws TransportException {
		int zrleLength = 0;
		if (rect.getEncodingType() == EncodingType.ZRLE
				|| rect.getEncodingType() == EncodingType.ZRLEE
				|| rect.getEncodingType() == EncodingType.ZLIB) {
			zrleLength = reader.readInt32();
		}
		return zrleLength + 20;
	}


}