diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/events/RequestToPauseSharing.as b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/events/RequestToPauseSharing.as new file mode 100755 index 0000000000000000000000000000000000000000..0383624e611fe827694b9654fd1720b6fcce506d --- /dev/null +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/events/RequestToPauseSharing.as @@ -0,0 +1,17 @@ +package org.bigbluebutton.modules.screenshare.events +{ + import flash.events.Event; + + public class RequestToPauseSharing extends Event + { + + public static const REQUEST_SHARE_PAUSE:String = "screenshare request to pause sharing event"; + + public function RequestToPauseSharing() + { + super(REQUEST_SHARE_PAUSE, true, false); + } + + } + +} \ No newline at end of file diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/ScreenshareManager.as b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/ScreenshareManager.as index 45a876e560679dfedcbff9acd503aefa004a2863..02ebfd6a3a1e82ecc2265cde1fcc284f64ac5fce 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/ScreenshareManager.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/ScreenshareManager.as @@ -147,6 +147,10 @@ package org.bigbluebutton.modules.screenshare.managers { service.requestStartSharing(); } + public function handleRequestPauseSharingEvent():void { + service.requestPauseSharing(ScreenshareModel.getInstance().streamId); + } + public function handleRequestStopSharingEvent():void { service.requestStopSharing(ScreenshareModel.getInstance().streamId); } diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/maps/ScreenshareEventMap.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/maps/ScreenshareEventMap.mxml index 18c42c875a842072d5ec31def8cacddeb85890a2..c2d2436a379dac30ff8e3de7908f676d4617fb69 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/maps/ScreenshareEventMap.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/maps/ScreenshareEventMap.mxml @@ -33,6 +33,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. import org.bigbluebutton.modules.screenshare.events.ModuleEvent; import org.bigbluebutton.modules.screenshare.events.RequestToStartSharing; import org.bigbluebutton.modules.screenshare.events.RequestToStopSharing; + import org.bigbluebutton.modules.screenshare.events.RequestToPauseSharing; import org.bigbluebutton.modules.screenshare.events.ShareEvent; import org.bigbluebutton.modules.screenshare.events.ShareStartRequestResponseEvent; import org.bigbluebutton.modules.screenshare.events.ShareWindowEvent; @@ -63,6 +64,10 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. <EventHandlers type="{RequestToStartSharing.REQUEST_SHARE_START}"> <MethodInvoker generator="{ScreenshareManager}" method="handleRequestStartSharingEvent"/> </EventHandlers> + + <EventHandlers type="{RequestToPauseSharing.REQUEST_SHARE_PAUSE}"> + <MethodInvoker generator="{ScreenshareManager}" method="handleRequestPauseSharingEvent"/> + </EventHandlers> <EventHandlers type="{RequestToStopSharing.REQUEST_SHARE_STOP}"> <MethodInvoker generator="{ScreenshareManager}" method="handleRequestStopSharingEvent"/> diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/MessageSender.as b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/MessageSender.as index a76fe86ec31ee290a93950d54c3f4516ecef6564..6371d8c6c72f76bf7a87ff511637c266c5667f48 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/MessageSender.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/MessageSender.as @@ -41,6 +41,10 @@ package org.bigbluebutton.modules.screenshare.services public function stopShareRequest(meetingId: String, streamId: String):void { conn.stopShareRequest(meetingId, streamId); } + + public function pauseShareRequest(meetingId: String, userId: String, streamId: String):void { + conn.pauseShareRequest(meetingId, userId, streamId); + } } diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/ScreenshareService.as b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/ScreenshareService.as index d031dfa8701207cf29adf53da4aacac7b20d1769..0ec4ef9a494ba25f71f4fed3b9b0ce93970869cf 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/ScreenshareService.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/ScreenshareService.as @@ -88,6 +88,10 @@ package org.bigbluebutton.modules.screenshare.services { sender.stopShareRequest(UsersUtil.getInternalMeetingID(), streamId); } + public function requestPauseSharing(streamId:String):void { + sender.pauseShareRequest(UsersUtil.getInternalMeetingID(), UsersUtil.getMyUserID(), streamId); + } + } } \ No newline at end of file diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/red5/Connection.as b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/red5/Connection.as index 4c5719434c08e553ae07de95d92dbab4523497cb..c6237d94915d8a55c9ee8eb74d9e311b72c36055 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/red5/Connection.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/services/red5/Connection.as @@ -179,6 +179,19 @@ package org.bigbluebutton.modules.screenshare.services.red5 { } } + public function pauseShareRequest(meetingId:String, userId:String, streamId:String):void { + var message:Object = new Object(); + message["meetingId"] = meetingId; + message["userId"] = userId; + message["streamId"] = streamId; + + sendMessage("screenshare.pauseShareRequest", function(result:String):void { // On successful result + LOGGER.debug(result); + }, function(status:String):void { // status - On error occurred + LOGGER.error(status); + }, message); + } + public function startShareRequest(meetingId:String, userId:String, record:Boolean):void { var message:Object = new Object(); message["meetingId"] = meetingId; diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/view/components/ScreensharePublishWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/view/components/ScreensharePublishWindow.mxml index ded8180164f93ca9b808a924691a4e2371272a61..aa8bee602eb037a58e16d649f9f5b5cf45bce483 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/view/components/ScreensharePublishWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/view/components/ScreensharePublishWindow.mxml @@ -55,6 +55,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. import org.bigbluebutton.main.events.ShortcutEvent; import org.bigbluebutton.main.views.MainCanvas; import org.bigbluebutton.modules.screenshare.events.RequestToStopSharing; + import org.bigbluebutton.modules.screenshare.events.RequestToPauseSharing; import org.bigbluebutton.modules.screenshare.events.ShareWindowEvent; import org.bigbluebutton.modules.screenshare.events.StartShareRequestSuccessEvent; import org.bigbluebutton.modules.screenshare.events.StopSharingButtonEvent; @@ -199,6 +200,17 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. closeWindow(); } + public function pauseSharing():void { + LOGGER.debug("Calling pauseSharing"); + if (streaming) { + stopStream(); + var streamEvent:RequestToPauseSharing = new RequestToPauseSharing(); + dispatchEvent(streamEvent); + } + sharingFullScreen = false; + streaming = false; + } + public function stopSharingEvent(evt:StopSharingButtonEvent):void{ if (streaming) { stopStream(); @@ -329,7 +341,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. override public function close(event:MouseEvent = null):void { stopSharing(); closeWindow(); - } + } override protected function resourcesChanged():void{ super.resourcesChanged(); @@ -407,7 +419,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. label="{ResourceUtil.getInstance().getString('bbb.screensharePublish.stop.label')}" visible="true" enabled="false" - click="stopSharing()" + click="pauseSharing()" tabIndex="{baseIndex+5}"/> <mx:Spacer width="100%"/> <mx:Button id="btnRegionPublish"