changeset 56:913d0f663e74

12/9
author one
date Mon, 09 Dec 2013 16:09:06 +0900
parents 9fdb8ff88497
children 433c79184c05
files src/main/java/com/glavsoft/rfb/client/FramebufferUpdateRequestMessage.java src/main/java/com/glavsoft/rfb/protocol/Protocol.java src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java src/main/java/jp/ac/u_ryukyu/treevnc/client/EchoClient.java src/main/java/jp/ac/u_ryukyu/treevnc/client/WaitReply.java src/main/java/jp/ac/u_ryukyu/treevnc/server/AcceptClient.java src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java src/viewer_swing/java/com/glavsoft/viewer/swing/Surface.java
diffstat 8 files changed, 58 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/com/glavsoft/rfb/client/FramebufferUpdateRequestMessage.java	Mon Dec 02 14:20:37 2013 +0900
+++ b/src/main/java/com/glavsoft/rfb/client/FramebufferUpdateRequestMessage.java	Mon Dec 09 16:09:06 2013 +0900
@@ -39,7 +39,7 @@
 	private final int x;
 	
 	private boolean sendFullScreenFlag;
-
+	
 	public FramebufferUpdateRequestMessage(int x, int y, int width,
 			int height, boolean incremental) {
 		this.x = x;
@@ -47,7 +47,7 @@
 		this.width = width;
 		this.height = height;
 		this.incremental = incremental;
-		sendFullScreenRequest();
+//		sendFullScreenRequest();
 	}
 
 	@Override
--- a/src/main/java/com/glavsoft/rfb/protocol/Protocol.java	Mon Dec 02 14:20:37 2013 +0900
+++ b/src/main/java/com/glavsoft/rfb/protocol/Protocol.java	Mon Dec 09 16:09:06 2013 +0900
@@ -201,7 +201,6 @@
 		sendSupportedEncodingsMessage(settings);
 		settings.addListener(this); // to support pixel format (color depth), and encodings changes
 		settings.addListener(repaintController);
-
 		sendRefreshMessage();
 		senderTask = new SenderTask(messageQueue, writer, this);
 		senderThread = new Thread(senderTask);
@@ -313,7 +312,6 @@
 		sendSupportedEncodingsMessage(settings);
 		settings.addListener(this); // to support pixel format (color depth), and encodings changes
 		settings.addListener(surface);
-
 		sendRefreshMessage();
 		senderTask = new SenderTask(messageQueue, writer, this);
 		senderThread = new Thread(senderTask);
--- a/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Mon Dec 02 14:20:37 2013 +0900
+++ b/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Mon Dec 09 16:09:06 2013 +0900
@@ -72,6 +72,9 @@
             MyRfbProto _rfb) {
 		this(reader,repaintController,clipboardController,decoders,context);
 		rfb = _rfb;
+		if(!(rfb instanceof MyRfbProtoClient)) {
+			fullscreenFbUpdateIncrementalRequest.sendFullScreenRequest();
+		}
 	}
 	
 	
@@ -84,9 +87,9 @@
 		this.context = context;
 		this.decoders = decoders;
 		renderer = repaintController.createRenderer(reader, context.getFbWidth(), context.getFbHeight(),
-				context.getPixelFormat());
-		fullscreenFbUpdateIncrementalRequest =
-				new FramebufferUpdateRequestMessage(0, 0, context.getFbWidth(), context.getFbHeight(), true);
+		context.getPixelFormat());
+			fullscreenFbUpdateIncrementalRequest =
+					new FramebufferUpdateRequestMessage(0, 0, context.getFbWidth(), context.getFbHeight(), true);
 	}
 	
 	@Override
@@ -202,7 +205,7 @@
 					new FramebufferUpdateRequestMessage(0, 0, rect.width, rect.height, true);
 				synchronized (renderer) {
 					renderer = repaintController.createRenderer(reader, rect.width, rect.height,
-							context.getPixelFormat());
+					context.getPixelFormat());
 				}
 				context.sendMessage(new FramebufferUpdateRequestMessage(0, 0, rect.width, rect.height, false));
 //				repaintController.repaintCursor();
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/client/EchoClient.java	Mon Dec 02 14:20:37 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/client/EchoClient.java	Mon Dec 09 16:09:06 2013 +0900
@@ -260,9 +260,9 @@
 		BufferedReader is = new BufferedReader(new InputStreamReader(
 				soc.getInputStream()));
 		parentAddress = is.readLine();
+		String port = is.readLine();
 		// It is called when the screen changes.
 		if ("reconnection".equals(parentAddress)) {
-			String port = is.readLine();
 			while (true) {
 				try {
 					client.setOpenPort(Integer.parseInt(port));
@@ -285,7 +285,7 @@
 				return null;
 			is.readLine();// parentNum
 		}
-		socket = new Socket(parentAddress,5999);
+		socket = new Socket(parentAddress,Integer.parseInt(port));
 		socket.setReuseAddress(true);
 		return socket;
 	}
@@ -293,4 +293,9 @@
 	public String getParentsAddress() {
 		return parentAddress;
 	}
+	
+	public void reportConnectionFinished(Socket soc) throws IOException {
+		DataOutputStream os = new DataOutputStream(soc.getOutputStream());
+		os.writeBytes("finished");
+	}
 }
\ No newline at end of file
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/client/WaitReply.java	Mon Dec 02 14:20:37 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/client/WaitReply.java	Mon Dec 09 16:09:06 2013 +0900
@@ -23,11 +23,6 @@
 		return passflag;
 	}
 	
-	private void reportConnectionFinished(Socket soc) throws IOException {
-		DataOutputStream os = new DataOutputStream(soc.getOutputStream());
-		os.writeBytes("finished");
-	}
-	
 	public void run() {
 		Socket clientSocket = null;
 		ServerSocket echoServer = null;
@@ -44,6 +39,7 @@
 					echo.client.run();
 					echoServer.close();
 					//report finished connection to server.
+					echo.reportConnectionFinished(clientSocket);
 					clientSocket.close();
 
 				}
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/server/AcceptClient.java	Mon Dec 02 14:20:37 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/server/AcceptClient.java	Mon Dec 09 16:09:06 2013 +0900
@@ -17,6 +17,7 @@
 	private String newparent, request, myAddress;
 	private String leaderflag = "0", sendleaderflag = "0";
 	private final int intv_time = 100;
+	private String port = "5999";
 
 	public AcceptClient() {
 		// this.name = name;
@@ -244,6 +245,7 @@
 			BufferedReader is = new BufferedReader(new InputStreamReader(
 					echoSocket.getInputStream()));
 			os.writeBytes(newparent + "\n");
+			os.writeBytes(this.port+"\n");
 			os.writeBytes(newpnum + "\n");
 			// os.writeBytes(newtreenum + "\n");
 			// os.writeBytes(newleaderflag + "\n");
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java	Mon Dec 02 14:20:37 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java	Mon Dec 09 16:09:06 2013 +0900
@@ -163,8 +163,8 @@
 						new PasswordChooser(passwordFromParams,
 								connectionParams, containerFrame, this),
 						settings);
-				if(fbWidth!=0)
-					workingProtocol.setScreenSizeRetina(fbWidth, fbHeight);
+//				if(fbWidth!=0)
+				workingProtocol.setScreenSizeRetina(1080, 1080);
 				workingProtocol.handshake();
 				rfb.setProtocolContext(workingProtocol);
 				// input into change parents
--- a/src/viewer_swing/java/com/glavsoft/viewer/swing/Surface.java	Mon Dec 02 14:20:37 2013 +0900
+++ b/src/viewer_swing/java/com/glavsoft/viewer/swing/Surface.java	Mon Dec 09 16:09:06 2013 +0900
@@ -39,7 +39,8 @@
 import java.awt.*;
 
 @SuppressWarnings("serial")
-public class Surface extends JPanel implements IRepaintController, IChangeSettingsListener {
+public class Surface extends JPanel implements IRepaintController,
+		IChangeSettingsListener {
 
 	private int width;
 	private int height;
@@ -67,18 +68,20 @@
 		this.scaleFactor = scaleFactor;
 		init(context.getFbWidth(), context.getFbHeight());
 
-		if ( ! context.getSettings().isViewOnly()) {
+		if (!context.getSettings().isViewOnly()) {
 			setUserInputEnabled(true, context.getSettings().isConvertToAscii());
 		}
 		showCursor = context.getSettings().isShowRemoteCursor();
 	}
 
 	private void setUserInputEnabled(boolean enable, boolean convertToAscii) {
-		if (enable == isUserInputEnabled) return;
+		if (enable == isUserInputEnabled)
+			return;
 		isUserInputEnabled = enable;
 		if (enable) {
 			if (null == mouseEventListener) {
-				mouseEventListener = new MouseEventListener(this, context, scaleFactor);
+				mouseEventListener = new MouseEventListener(this, context,
+						scaleFactor);
 			}
 			addMouseListener(mouseEventListener);
 			addMouseMotionListener(mouseEventListener);
@@ -88,7 +91,8 @@
 			if (null == keyEventListener) {
 				keyEventListener = new KeyEventListener(context);
 				if (modifierButtonListener != null) {
-					keyEventListener.addModifierListener(modifierButtonListener);
+					keyEventListener
+							.addModifierListener(modifierButtonListener);
 				}
 			}
 			keyEventListener.setConvertToAscii(convertToAscii);
@@ -103,7 +107,8 @@
 	}
 
 	@Override
-	public Renderer createRenderer(Reader reader, int width, int height, PixelFormat pixelFormat) {
+	public Renderer createRenderer(Reader reader, int width, int height,
+			PixelFormat pixelFormat) {
 		renderer = new RendererImpl(reader, width, height, pixelFormat);
 		synchronized (renderer) {
 			cursor = renderer.getCursor();
@@ -125,11 +130,12 @@
 		requestFocus();
 	}
 
-	
 	@Override
 	public void paintComponent(Graphics g) {
-		((Graphics2D)g).scale(scaleFactor, scaleFactor);
-		((Graphics2D) g).setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
+		if(renderer != null  && cursor != null){
+		((Graphics2D) g).scale(scaleFactor, scaleFactor);
+		((Graphics2D) g).setRenderingHint(RenderingHints.KEY_RENDERING,
+				RenderingHints.VALUE_RENDER_QUALITY);
 		synchronized (renderer) {
 			Image offscreenImage = renderer.getOffscreenImage();
 			if (offscreenImage != null) {
@@ -138,18 +144,20 @@
 		}
 		synchronized (cursor) {
 			Image cursorImage = cursor.getImage();
-			if (showCursor && cursorImage != null &&
-					(scaleFactor != 1 ||
-							g.getClipBounds().intersects(cursor.rX, cursor.rY, cursor.width, cursor.height))) {
+			if (showCursor
+					&& cursorImage != null
+					&& (scaleFactor != 1 || g.getClipBounds().intersects(
+							cursor.rX, cursor.rY, cursor.width, cursor.height))) {
 				g.drawImage(cursorImage, cursor.rX, cursor.rY, null);
 			}
 		}
+		}
 	}
 
-
 	@Override
 	public Dimension getPreferredSize() {
-		return new Dimension((int)(this.width * scaleFactor), (int)(this.height * scaleFactor));
+		return new Dimension((int) (this.width * scaleFactor),
+				(int) (this.height * scaleFactor));
 	}
 
 	@Override
@@ -175,17 +183,22 @@
 
 	@Override
 	public void repaintBitmap(int x, int y, int width, int height) {
-		repaint((int)(x * scaleFactor), (int)(y * scaleFactor),
-                (int)Math.ceil(width * scaleFactor), (int)Math.ceil(height * scaleFactor));
+		repaint((int) (x * scaleFactor), (int) (y * scaleFactor),
+				(int) Math.ceil(width * scaleFactor),
+				(int) Math.ceil(height * scaleFactor));
 	}
 
 	@Override
 	public void repaintCursor() {
 		synchronized (cursor) {
-			repaint((int)(cursor.oldRX * scaleFactor), (int)(cursor.oldRY * scaleFactor),
-					(int)Math.ceil(cursor.oldWidth * scaleFactor) + 1, (int)Math.ceil(cursor.oldHeight * scaleFactor) + 1);
-			repaint((int)(cursor.rX * scaleFactor), (int)(cursor.rY * scaleFactor),
-					(int)Math.ceil(cursor.width * scaleFactor) + 1, (int)Math.ceil(cursor.height * scaleFactor) + 1);
+			repaint((int) (cursor.oldRX * scaleFactor),
+					(int) (cursor.oldRY * scaleFactor),
+					(int) Math.ceil(cursor.oldWidth * scaleFactor) + 1,
+					(int) Math.ceil(cursor.oldHeight * scaleFactor) + 1);
+			repaint((int) (cursor.rX * scaleFactor),
+					(int) (cursor.rY * scaleFactor),
+					(int) Math.ceil(cursor.width * scaleFactor) + 1,
+					(int) Math.ceil(cursor.height * scaleFactor) + 1);
 		}
 	}
 
@@ -203,7 +216,8 @@
 		}
 	}
 
-	public void addModifierListener(ModifierButtonEventListener modifierButtonListener) {
+	public void addModifierListener(
+			ModifierButtonEventListener modifierButtonListener) {
 		this.modifierButtonListener = modifierButtonListener;
 		if (keyEventListener != null) {
 			keyEventListener.addModifierListener(modifierButtonListener);
@@ -214,7 +228,8 @@
 	public void settingsChanged(SettingsChangedEvent e) {
 		if (ProtocolSettings.isRfbSettingsChangedFired(e)) {
 			ProtocolSettings settings = (ProtocolSettings) e.getSource();
-			setUserInputEnabled( ! settings.isViewOnly(), settings.isConvertToAscii());
+			setUserInputEnabled(!settings.isViewOnly(),
+					settings.isConvertToAscii());
 			showCursor(settings.isShowRemoteCursor());
 		} else if (UiSettings.isUiSettingsChangedFired(e)) {
 			UiSettings settings = (UiSettings) e.getSource();