view src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveUpdateRectangle.java @ 4:9a24e36d8ed7

use constructor for setting parms
author YU
date Sat, 13 Sep 2014 19:57:00 +0900
parents e046eb8a3ac1
children c05d3b89b446
line wrap: on
line source

package jp.ac.u_ryukyu.alicevnc;

import com.glavsoft.exceptions.TransportException;
import com.glavsoft.rfb.encoding.EncodingType;
import com.glavsoft.rfb.encoding.decoder.DecodeInfo;
import com.glavsoft.rfb.encoding.decoder.FramebufferUpdateRectangle;
import com.glavsoft.rfb.encoding.decoder.ZRLEDecoder;

import alice.codesegment.CodeSegment;
import alice.datasegment.CommandType;
import alice.datasegment.Receiver;

public class ReceiveUpdateRectangle extends CodeSegment{

    private Receiver info = ids.create(CommandType.PEEK);
    private Receiver info1 = ids.create(CommandType.TAKE);
    
    public ReceiveUpdateRectangle(){
        info.setKey("Holder");
        info1.setKey("decodeInfo");
    }
    
    public void run() {
        ZRLEDecoder decoder = new ZRLEDecoder();
        RenderAndControllerHolder holder = info.asClass(RenderAndControllerHolder.class);
        DecodeInfo decodeInfo = info1.asClass(DecodeInfo.class);
        
        try {
            decoder.decode(decodeInfo, holder.renderer);
            FramebufferUpdateRectangle rect = new FramebufferUpdateRectangle(
                    decodeInfo.x, decodeInfo.y, decodeInfo.width, decodeInfo.height);
            
            rect.encodingType = EncodingType.byId(decodeInfo.encodingTypeId);
            
            holder.repaintController.repaintBitmap(rect);
        } catch (TransportException e) {
            e.printStackTrace();
        }
        
        new ReceiveUpdateRectangle();
        
    }

}