# HG changeset patch # User oc # Date 1421101761 -32400 # Node ID 6c6960291f81bb97be44d36b4c7ee9c46eaf3cca # Parent a310be14d7571884a617db68cc6a6453a692bc1d change the share-sound to share-screen-sound. diff -r a310be14d757 -r 6c6960291f81 src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java --- 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(); diff -r a310be14d757 -r 6c6960291f81 src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java --- 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 rectangles = new ArrayList(); - 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 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 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 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 rectangles = new ArrayList(); + 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