changeset 292:6c6960291f81

change the share-sound to share-screen-sound.
author oc
date Tue, 13 Jan 2015 07:29:21 +0900
parents a310be14d757
children d1ceb4b7097a
files src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java
diffstat 2 files changed, 72 insertions(+), 50 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java	Tue Jan 13 06:43:15 2015 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java	Tue Jan 13 07:29:21 2015 +0900
@@ -757,7 +757,9 @@
         if(rfb.isTreeManager()) {
             sendSound = new SendSound(rfb);
         } else {
-            sendSound = new SendSound(rfb, "133.13.57.59", "60004");
+            String ip = "133.13.57.59";
+            String port = "60004";
+            sendSound = new SendSound(rfb, ip, port);
         }
         Thread sendSoundThread = new Thread(sendSound, "send-sound");
         sendSoundThread.start();
--- a/src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java	Tue Jan 13 06:43:15 2015 +0900
+++ b/src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java	Tue Jan 13 07:29:21 2015 +0900
@@ -845,44 +845,58 @@
         JButton screenButton = buttonsBar.createButton("share", "Share my screen", new ActionListener() {
         	@Override
         	public void actionPerformed(ActionEvent e) {
-        	    // before change server, data from previous server
-        	    // should be stopped.
-        	    viewer.setCuiVersion(false);
-
-                // Host have screens in rectangles.
-                // Each screen number in order from left.
-                ArrayList<Rectangle> rectangles = new ArrayList<Rectangle>();
-                GraphicsConfiguration[] gc = null;
-                GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
-                GraphicsDevice[] gs = ge.getScreenDevices();
-                for (int j = 0; j < gs.length; j++) {
-                    GraphicsDevice gd = gs[j];
-                    gc = gd.getConfigurations();
-                    for (int i=0; i < gc.length; i++) {
-                        rectangles.add(gc[i].getBounds());
-                    }
-                }
 
                 Dimension size = frame.getSize();
                 viewer.setFrameSize(size.width, size.height);
+
+                ArrayList<Rectangle> rectangles = getScreenRectangles();
                 int leftScreenNumber = 0;
                 int rightScreenNumber = 1;
                 viewer.getRfb().singleWidth = (int) rectangles.get(leftScreenNumber).getWidth();
 
-              if (viewer.getRfb().isTreeManager()) {
-        	        try {
-        	            viewer.getRfb().changeVNCServer(viewer, "127.0.0.1", (int) rectangles.get(leftScreenNumber).getWidth(), (int) rectangles.get(leftScreenNumber).getHeight(), viewer.getRfb().getId());
-        	        } catch (Exception e1) {
-        	            System.out.println("can't change server :" + e1.getMessage());
-        	        }
-        	        return;
-        	    }
+                if (viewer.getRfb().isTreeManager()) {
+                    changeVncServer(viewer, (int) rectangles.get(leftScreenNumber).getWidth(), (int) rectangles.get(leftScreenNumber).getHeight(), viewer.getRfb().getId());
+                    return;
+                }
                 String adr = viewer.getRfb().getMyAddress();
                 context.sendMessage(new ScreenChangeRequest(adr, viewer.getRfb().getId(), (int) rectangles.get(leftScreenNumber).getWidth(), (int) rectangles.get(leftScreenNumber).getHeight()));
             }
         });
         kbdButtons.add(screenButton);
 
+        final JButton soundButton = buttonsBar.createButton("share-screen-sound", "Share Screen and Sound", new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+
+                Dimension size = frame.getSize();
+                viewer.setFrameSize(size.width, size.height);
+
+                ArrayList<Rectangle> rectangles = getScreenRectangles();
+                int leftScreenNumber = 0;
+                int rightScreenNumber = 1;
+                viewer.getRfb().singleWidth = (int) rectangles.get(leftScreenNumber).getWidth();
+
+                // send用thread立ち上げのメソッドに飛ぶ
+                try {
+                    if (viewer.getRfb().isTreeManager()) {
+                        changeVncServer(viewer, (int) rectangles.get(leftScreenNumber).getWidth(), (int) rectangles.get(leftScreenNumber).getHeight(), viewer.getRfb().getId());
+                        viewer.getRfb().createShareSoundThread(viewer.getRfb());
+                        return;
+                    }
+                    String adr = viewer.getRfb().getMyAddress();
+                    context.sendMessage(new ScreenChangeRequest(adr, viewer.getRfb().getId(), (int) rectangles.get(leftScreenNumber).getWidth(), (int) rectangles.get(leftScreenNumber).getHeight()));
+                    // rootにMsgを送信する
+                    context.sendMessage(new ReadyShareSound());
+                    // 送信用threadを立ち上げるメソッドに飛ぶ
+                    viewer.getRfb().createShareSoundThread(viewer.getRfb());
+                } catch (SocketException e1) {
+                    e1.printStackTrace();
+                } catch (UnknownHostException e1) {
+                    e1.printStackTrace();
+                }
+            }
+        });
+        kbdButtons.add(soundButton);
 
         final JButton adjustHdSizeButton = buttonsBar.createButton("adjust-hd", "Adjust Hd Size", new ActionListener() {
             @Override
@@ -900,29 +914,6 @@
         });
         kbdButtons.add(adjustHdSizeButton);
 
-        final JButton soundButton = buttonsBar.createButton("share-sound", "Share Sound", new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                // send用thread立ち上げのメソッドに飛ぶ
-                try {
-                    if (viewer.getRfb().isTreeManager()) {
-                        viewer.getRfb().createShareSoundThread(viewer.getRfb());
-                        return;
-                    }
-                    // rootにMsgを送信する
-                    context.sendMessage(new ReadyShareSound());
-                    // 送信用threadを立ち上げるメソッドに飛ぶ
-                    viewer.getRfb().createShareSoundThread(viewer.getRfb());
-                } catch (SocketException e1) {
-                    e1.printStackTrace();
-                } catch (UnknownHostException e1) {
-                    e1.printStackTrace();
-                }
-            }
-        });
-        kbdButtons.add(adjustHdSizeButton);
-
-
         ModifierButtonEventListener modifierButtonListener = new ModifierButtonEventListener();
         modifierButtonListener.addButton(KeyEvent.VK_CONTROL, ctrlButton);
         modifierButtonListener.addButton(KeyEvent.VK_ALT, altButton);
@@ -1020,5 +1011,34 @@
 	public void setVisible(boolean b) {
 		frame.setVisible(b);
 	}
-        
+
+    private ArrayList<Rectangle> getScreenRectangles() {
+        // before change server, data from previous server
+        // should be stopped.
+        viewer.setCuiVersion(false);
+        // Host have screens in rectangles.
+        // Each screen number in order from left.
+        ArrayList<Rectangle> rectangles = new ArrayList<Rectangle>();
+        GraphicsConfiguration[] gc = null;
+        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
+        GraphicsDevice[] gs = ge.getScreenDevices();
+        for (int j = 0; j < gs.length; j++) {
+            GraphicsDevice gd = gs[j];
+            gc = gd.getConfigurations();
+            for (int i=0; i < gc.length; i++) {
+                rectangles.add(gc[i].getBounds());
+            }
+        }
+        return rectangles;
+    }
+
+    private void changeVncServer(ViewerInterface viewer, int width, int height, short id) {
+        String localhost = "127.0.0.1";
+        try {
+            viewer.getRfb().changeVNCServer(viewer, localhost, width, height, id);
+        } catch (Exception e1) {
+            System.out.println("can't change server :" + e1.getMessage());
+        }
+    }
+
 }
\ No newline at end of file