Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPSScreenShare.java URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPSScreenShare.java?rev=1362554&r1=1362553&r2=1362554&view=diff ============================================================================== --- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPSScreenShare.java (original) +++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPSScreenShare.java Tue Jul 17 16:12:39 2012 @@ -22,7 +22,6 @@ import org.apache.commons.codec.DecoderE import org.apache.commons.codec.binary.Hex; import org.red5.client.net.rtmp.ClientExceptionHandler; import org.red5.client.net.rtmps.RTMPSClient; -import org.red5.server.api.service.IPendingServiceCall; import org.red5.server.api.service.IPendingServiceCallback; import org.red5.server.net.rtmp.Channel; import org.red5.server.net.rtmp.RTMPConnection; @@ -39,18 +38,17 @@ public class RTMPSScreenShare extends RT private CoreScreenShare core = null; - private RTMPSScreenShare() { - core = new CoreScreenShare(this); + private RTMPSScreenShare(String[] args) { + core = new CoreScreenShare(this, args); }; public static void main(String[] args) throws DecoderException { - RTMPSScreenShare client = new RTMPSScreenShare(); + RTMPSScreenShare client = new RTMPSScreenShare(args); if (args.length < 11) { System.exit(0); } client.setKeystoreBytes(Hex.decodeHex(args[9].toCharArray())); client.setKeyStorePassword(args[10]); - client.core.main(args); } @Override @@ -79,6 +77,7 @@ public class RTMPSScreenShare extends RT public void connectionClosed(RTMPConnection conn, RTMP state) { logger.debug("connection closed"); super.connectionClosed(conn, state); + core.stopStream(); } @Override @@ -94,12 +93,4 @@ public class RTMPSScreenShare extends RT logger.error("{}", new Object[] { throwable.getCause() }); System.out.println(throwable.getCause()); } - - public void onStreamEvent(Notify notify) { - core.onStreamEvent(notify); - } - - public void resultReceived(IPendingServiceCall call) { - core.resultReceived(call); - } }
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPScreenShare.java URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPScreenShare.java?rev=1362554&r1=1362553&r2=1362554&view=diff ============================================================================== --- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPScreenShare.java (original) +++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPScreenShare.java Tue Jul 17 16:12:39 2012 @@ -20,7 +20,6 @@ package org.openmeetings.screen.webstart import org.red5.client.net.rtmp.ClientExceptionHandler; import org.red5.client.net.rtmp.RTMPClient; -import org.red5.server.api.service.IPendingServiceCall; import org.red5.server.net.rtmp.Channel; import org.red5.server.net.rtmp.RTMPConnection; import org.red5.server.net.rtmp.codec.RTMP; @@ -36,12 +35,12 @@ public class RTMPScreenShare extends RTM private CoreScreenShare core = null; - private RTMPScreenShare() { - core = new CoreScreenShare(this); + private RTMPScreenShare(String[] args) { + core = new CoreScreenShare(this, args); }; public static void main(String[] args) { - new RTMPScreenShare().core.main(args); + new RTMPScreenShare(args); } // ------------------------------------------------------------------------ @@ -60,6 +59,7 @@ public class RTMPScreenShare extends RTM public void connectionClosed(RTMPConnection conn, RTMP state) { logger.debug("connection closed"); super.connectionClosed(conn, state); + core.stopStream(); } @Override @@ -75,12 +75,4 @@ public class RTMPScreenShare extends RTM logger.error("{}", new Object[] { throwable.getCause() }); System.out.println(throwable.getCause()); } - - public void onStreamEvent(Notify notify) { - core.onStreamEvent(notify); - } - - public void resultReceived(IPendingServiceCall call) { - core.resultReceived(call); - } } Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPTScreenShare.java URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPTScreenShare.java?rev=1362554&r1=1362553&r2=1362554&view=diff ============================================================================== --- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPTScreenShare.java (original) +++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/RTMPTScreenShare.java Tue Jul 17 16:12:39 2012 @@ -20,7 +20,6 @@ package org.openmeetings.screen.webstart import org.red5.client.net.rtmp.ClientExceptionHandler; import org.red5.client.net.rtmpt.RTMPTClient; -import org.red5.server.api.service.IPendingServiceCall; import org.red5.server.net.rtmp.Channel; import org.red5.server.net.rtmp.RTMPConnection; import org.red5.server.net.rtmp.codec.RTMP; @@ -30,18 +29,16 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class RTMPTScreenShare extends RTMPTClient implements ClientExceptionHandler, IScreenShare { - - private static final Logger logger = LoggerFactory - .getLogger(RTMPTScreenShare.class); + private static final Logger logger = LoggerFactory.getLogger(RTMPTScreenShare.class); private CoreScreenShare core = null; - private RTMPTScreenShare() { - core = new CoreScreenShare(this); + private RTMPTScreenShare(String[] args) { + core = new CoreScreenShare(this, args); }; public static void main(String[] args) { - new RTMPTScreenShare().core.main(args); + new RTMPTScreenShare(args); } // ------------------------------------------------------------------------ @@ -60,6 +57,7 @@ public class RTMPTScreenShare extends RT public void connectionClosed(RTMPConnection conn, RTMP state) { logger.debug("connection closed"); super.connectionClosed(conn, state); + core.stopStream(); } @Override @@ -75,12 +73,4 @@ public class RTMPTScreenShare extends RT logger.error("{}", new Object[] { throwable.getCause() }); System.out.println(throwable.getCause()); } - - public void onStreamEvent(Notify notify) { - core.onStreamEvent(notify); - } - - public void resultReceived(IPendingServiceCall call) { - core.resultReceived(call); - } } Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/gui/ScreenSharerFrame.java URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/gui/ScreenSharerFrame.java?rev=1362554&r1=1362553&r2=1362554&view=diff ============================================================================== --- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/gui/ScreenSharerFrame.java (original) +++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/screen/webstart/gui/ScreenSharerFrame.java Tue Jul 17 16:12:39 2012 @@ -28,6 +28,8 @@ import java.awt.SystemColor; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; import java.io.IOException; import javax.swing.BorderFactory; @@ -203,6 +205,13 @@ public class ScreenSharerFrame extends J private String getTextLabel(String[] textLabels, int idx) { return textLabels != null && idx < textLabels.length ? textLabels[idx] : "#STAB#"; } + + private void stopSharingAndExit(CoreScreenShare core) { + core.stopStream(); + this.setVisible(false); + System.exit(0); + } + /** * Create the frame. * @throws AWTException @@ -212,7 +221,13 @@ public class ScreenSharerFrame extends J setTitle(getTextLabel(textLabels, 0)); //#id 730 setBackground(Color.WHITE); setResizable(false); - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent e) { + stopSharingAndExit(core); + } + }); setBounds(30, 30, 500, 505); contentPane = new JPanel(); contentPane.setBackground(Color.WHITE); @@ -238,7 +253,7 @@ public class ScreenSharerFrame extends J btnStartPauseSharing.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { if (sharingStarted) { - core.captureScreenStop(true, false); + core.sendCaptureScreenStop(true, false); } else { core.captureScreenStart(true, false); } @@ -250,8 +265,7 @@ public class ScreenSharerFrame extends J btnStopSharing.setIcon(new ImageIcon(ScreenSharerFrame.class.getResource("/org/openmeetings/screen/exit.png"))); btnStopSharing.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { - ScreenSharerFrame.this.setVisible(false); - System.exit(0); + stopSharingAndExit(core); } }); @@ -444,7 +458,7 @@ public class ScreenSharerFrame extends J btnStopRecording.setBounds(257, 82, 200, 32); btnStopRecording.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { - core.captureScreenStop(false, true); + core.sendCaptureScreenStop(false, true); } }); panelRecording.add(btnStopRecording); @@ -508,7 +522,7 @@ public class ScreenSharerFrame extends J btnStopPublish.setBounds(257, 86, 200, 32); btnStopPublish.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { - core.captureScreenStop(false, false, true); + core.sendStopPublishing(); } }); panelPublish.add(btnStopPublish); @@ -524,30 +538,28 @@ public class ScreenSharerFrame extends J BorderFactory.createEmptyBorder(0, 5, 0, 0))); panelStatus.add(lblStatus); - setPublishingTabEnabled(false); contentPane.setLayout(gl_contentPane); // Background Image //We have no logo, that is why we need no background, sebawagner 29.04.2012 } - public void setSharingStatus(boolean status) { - panelScreen.setEnabled(!status); + public void setSharingStatus(boolean status, boolean unlockScreen) { + panelScreen.setEnabled(unlockScreen); sharingStarted = status; btnStartPauseSharing.setIcon(status ? pauseIcon : startIcon); btnStartPauseSharing.setText(status ? pauseLabel : startLabel); btnStartPauseSharing.setToolTipText(status ? pauseLabel : startLabel); - setPublishingTabEnabled(status); } - public void setRecordingStatus(boolean status) { - panelScreen.setEnabled(!status); + public void setRecordingStatus(boolean status, boolean unlockScreen) { + panelScreen.setEnabled(unlockScreen); btnStartRecording.setEnabled(!status); btnStopRecording.setEnabled(status); } - public void setPublishingStatus(boolean status) { - panelScreen.setEnabled(!status); + public void setPublishingStatus(boolean status, boolean unlockScreen) { + panelScreen.setEnabled(unlockScreen); btnStartPublish.setEnabled(!status); btnStopPublish.setEnabled(status); } @@ -695,7 +707,7 @@ public class ScreenSharerFrame extends J * Needs to be always invoked after every re-scaling */ void calcRescaleFactors() { - logger.debug("calcRescaleFactors -- "); + logger.trace("calcRescaleFactors -- "); ScreenDimensions.resizeX = spinnerWidth.getValue(); ScreenDimensions.resizeY = spinnerHeight.getValue(); switch (ScreenDimensions.quality) { @@ -712,7 +724,7 @@ public class ScreenSharerFrame extends J default: break; } - logger.debug("resize: X:" + ScreenDimensions.resizeX + " Y: " + ScreenDimensions.resizeY); + logger.trace("resize: X:" + ScreenDimensions.resizeX + " Y: " + ScreenDimensions.resizeY); updateVScreenBounds(); } Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java?rev=1362554&r1=1362553&r2=1362554&view=diff ============================================================================== --- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java (original) +++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/ScreenRequestHandler.java Tue Jul 17 16:12:39 2012 @@ -36,7 +36,6 @@ import org.openmeetings.app.Openmeetings import org.openmeetings.app.data.basic.Configurationmanagement; import org.openmeetings.app.data.basic.Fieldmanagment; import org.openmeetings.app.data.basic.Sessionmanagement; -import org.openmeetings.app.persistence.beans.basic.Configuration; import org.openmeetings.app.remote.red5.ScopeApplicationAdapter; import org.openmeetings.utils.OmFileHelper; import org.red5.logging.Red5LoggerFactory; @@ -283,16 +282,9 @@ public class ScreenRequestHandler extend ctx.put("red5-app", OpenmeetingsVariables.webAppRootKey + "/" + room); - Configuration configuration = getCfgManagement().getConfKey(3L, - "default.quality.screensharing"); - String default_quality_screensharing = "1"; - if (configuration != null) { - default_quality_screensharing = configuration - .getConf_value(); - } - ctx.put("default_quality_screensharing", - default_quality_screensharing); + getCfgManagement().getConfValue( + "default.quality.screensharing", String.class, "1")); //invited guest does not have valid user_id (have user_id == -1) ctx.put("user_id", users_id);
