package org.bigbluebutton.app.screenshare.red5; import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.bigbluebutton.app.screenshare.IScreenShareApplication; import org.bigbluebutton.app.screenshare.events.IsScreenSharingResponse; import org.red5.logging.Red5LoggerFactory; import org.slf4j.Logger; import com.google.gson.Gson; public class Red5AppHandler { private static Logger log = Red5LoggerFactory.getLogger(Red5AppHandler.class, "screenshare"); private IScreenShareApplication app; private ConnectionInvokerService sender; private final Pattern STREAM_ID_PATTERN = Pattern.compile("(.*)-(.*)-(.*)$"); public void meetingHasEnded(String meetingId) { app.meetingHasEnded(meetingId); } public void meetingCreated(String meetingId, Boolean record) { app.meetingCreated(meetingId, record); } public void userConnected(String meetingId, String userId) { app.userConnected(meetingId, userId); } public void isScreenSharing(String meetingId, String userId) { app.isScreenSharing(meetingId, userId); } public void requestShareToken(String meetingId, String userId, Boolean record, Boolean tunnel) { app.requestShareToken(meetingId, userId, record, tunnel); } public void startShareRequest(String meetingId, String userId, String session) { app.startShareRequest(meetingId, userId, session); } public void restartShareRequest(String meetingId, String userId) { app.restartShareRequest(meetingId, userId); } public void pauseShareRequest(String meetingId, String userId, String streamId) { Matcher matcher = STREAM_ID_PATTERN.matcher(streamId); if (matcher.matches()) { app.pauseShareRequest(meetingId, userId, streamId); } } public void stopShareRequest(String meetingId, String streamId) { Matcher matcher = STREAM_ID_PATTERN.matcher(streamId); if (matcher.matches()) { app.stopShareRequest(meetingId, streamId); } } public void screenShareClientPongMessage(String meetingId, String userId, String streamId, Long timestamp) { app.screenShareClientPongMessage(meetingId, userId, streamId, timestamp); } public void setApplication(IScreenShareApplication app) { this.app = app; } public void setMessageSender(ConnectionInvokerService sender) { this.sender = sender; } }