diff --git a/bbb-screenshare/app/jws/lib/javacv-screenshare-0.0.1.jar b/bbb-screenshare/app/jws/lib/javacv-screenshare-0.0.1.jar index 10d2dafbeeb1050569bf9d4b2a0824a9e85cc9a0..59d2e0f72febaeac73438b3481e12c8d2c98753f 100755 Binary files a/bbb-screenshare/app/jws/lib/javacv-screenshare-0.0.1.jar and b/bbb-screenshare/app/jws/lib/javacv-screenshare-0.0.1.jar differ diff --git a/bbb-screenshare/app/src/main/scala/org/bigbluebutton/app/screenshare/server/sessions/Screenshare.scala b/bbb-screenshare/app/src/main/scala/org/bigbluebutton/app/screenshare/server/sessions/Screenshare.scala index e6b7eef68b091844e2597a399a70d4a2eb0184b2..748a76613ede473786faedb846cfe5e89a26922d 100755 --- a/bbb-screenshare/app/src/main/scala/org/bigbluebutton/app/screenshare/server/sessions/Screenshare.scala +++ b/bbb-screenshare/app/src/main/scala/org/bigbluebutton/app/screenshare/server/sessions/Screenshare.scala @@ -202,12 +202,12 @@ class Screenshare(val sessionManager: ScreenshareManager, log.debug("Received SharingStoppedMessage for streamId=[" + msg.streamId + "]") } sessions.get(msg.streamId) match { - case Some(session) => { + case Some(session) => session.actorRef ! msg - } - case None => { + + case None => log.info("Sharing stopped on a non-existing session=[" + msg.streamId + "]") - } + } } diff --git a/bbb-screenshare/jws/webstart/src/main/java/org/bigbluebutton/screenshare/client/DeskshareClient.java b/bbb-screenshare/jws/webstart/src/main/java/org/bigbluebutton/screenshare/client/DeskshareClient.java index 828fa1fb2a967d4529386122fad03ed6a39bb43b..9f5be1c6d2d20a175abc2ccff49c3bacbfeb305d 100755 --- a/bbb-screenshare/jws/webstart/src/main/java/org/bigbluebutton/screenshare/client/DeskshareClient.java +++ b/bbb-screenshare/jws/webstart/src/main/java/org/bigbluebutton/screenshare/client/DeskshareClient.java @@ -43,15 +43,13 @@ public class DeskshareClient { } private void shareWithFrame() { - screenSharer = new ScreenRegionSharer(ssi); + screenSharer = new ScreenRegionSharer(ssi, false); screenSharer.addClientListener(listener); - screenSharer.start(false); } private void shareFullScreen() { - screenSharer = new ScreenRegionSharer(ssi); + screenSharer = new ScreenRegionSharer(ssi, true); screenSharer.addClientListener(listener); - screenSharer.start(true); } public void disconnected(){ diff --git a/bbb-screenshare/jws/webstart/src/main/java/org/bigbluebutton/screenshare/client/ScreenRegionSharer.java b/bbb-screenshare/jws/webstart/src/main/java/org/bigbluebutton/screenshare/client/ScreenRegionSharer.java index 80a669f560916e4e9982b1aae4a2c1643c5038b7..e6b4d530192c8d1c224902acb424f12cb8f87f15 100755 --- a/bbb-screenshare/jws/webstart/src/main/java/org/bigbluebutton/screenshare/client/ScreenRegionSharer.java +++ b/bbb-screenshare/jws/webstart/src/main/java/org/bigbluebutton/screenshare/client/ScreenRegionSharer.java @@ -45,16 +45,19 @@ public class ScreenRegionSharer implements ScreenSharer, NetworkConnectionListen // If sharing full screen, autoStart is true private volatile boolean fullScreen = false; - public ScreenRegionSharer(ScreenShareInfo ssi) { + public ScreenRegionSharer(ScreenShareInfo ssi, boolean autoStart) { + this.fullScreen = autoStart; + this.ssi = ssi; + streamId = ssi.streamId; + signalChannel = new NetworkStreamSender(ssi.host, ssi.meetingId, ssi.streamId); signalChannel.addNetworkConnectionListener(this); signalChannel.start(); - this.ssi = ssi; - streamId = ssi.streamId; + sharer = new ScreenSharerRunner(ssi); } - public void start(boolean autoStart) { + public void start() { if (!status.toUpperCase().equals(START)) { CaptureRegionListener crl = new CaptureRegionListenerImp(this); frame = new CaptureRegionFrame(crl, 5); @@ -63,9 +66,9 @@ public class ScreenRegionSharer implements ScreenSharer, NetworkConnectionListen frame.setLocation(ssi.x, ssi.y); System.out.println(NAME + "Launching Screen Capture Frame"); status = "START"; - this.fullScreen = autoStart; - System.out.println(NAME + "Starting Screen Capture Frame. StreamId=" + this.streamId + " autoStart=" + autoStart); - frame.start(autoStart); + + System.out.println(NAME + "Starting Screen Capture Frame. StreamId=" + this.streamId + " fullScreen=" + fullScreen); + frame.start(fullScreen); } } @@ -114,7 +117,7 @@ public class ScreenRegionSharer implements ScreenSharer, NetworkConnectionListen } else if (reason.getExitCode() == ExitCode.START.getExitCode()) { this.streamId = streamId; System.out.println(NAME + "starting. StreamId=" + this.streamId + " fullScreen=" + fullScreen); - start(fullScreen); + start(); } else { System.out.println(NAME + "Closing. Reason=" + reason.getExitCode()); listener.onClientStop(reason); diff --git a/bbb-screenshare/jws/webstart/src/main/java/org/bigbluebutton/screenshare/client/ScreenSharer.java b/bbb-screenshare/jws/webstart/src/main/java/org/bigbluebutton/screenshare/client/ScreenSharer.java index db54a52d7e8e04465498c964a158ce61cf4dc3c9..4446671b914040b2a5a0339b4243f0821ae7b81c 100755 --- a/bbb-screenshare/jws/webstart/src/main/java/org/bigbluebutton/screenshare/client/ScreenSharer.java +++ b/bbb-screenshare/jws/webstart/src/main/java/org/bigbluebutton/screenshare/client/ScreenSharer.java @@ -19,7 +19,7 @@ package org.bigbluebutton.screenshare.client; public interface ScreenSharer { - void start(boolean autoStart); + void start(); void disconnected(); void stop(); void addClientListener(ClientListener l);