public void SendImageViewerStateRequest(ImageViewerStateRequest req) { if (peer == null || peer.PeerState != PeerStateValue.Connected) { return; } peer.OpCustom((byte)DiscussionOpCode.ImageViewerStateRequest, req.ToDict(), true); }
public void HandleImageViewerStateRequest(LitePeer peer, ImageViewerStateRequest req, OperationRequest operationRequest, SendParameters sendParameters) { var state = _doc.GetImageViewer(req.ImageAttachmentId); if (state != null) { _room.PublishEventToSingle(peer, state.ToDict(), sendParameters, (byte)DiscussionEventCode.ImageViewerManipulatedEvent); } }
protected override void ExecuteOperation(LitePeer peer, OperationRequest operationRequest, SendParameters sendParameters) { switch (operationRequest.OperationCode) { case (byte)DiscussionOpCode.NotifyStructureChanged: HandleNotifyStructureChanged(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.NotifyArgPointChanged: HandleNotifyArgPointChanged(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.NotifyUserAccPlusMinus: HandleUserAccPlusMinus(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.StatsEvent: HandleStatsEvent(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.NotifyNameChanged: HandleNameChanged(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.CursorRequest: var topicId = Serializers.ReadChangedTopicId(operationRequest.Parameters); VectEditor(topicId).HandleCursorRequest(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.CreateShapeRequest: topicId = Serializers.ReadChangedTopicId(operationRequest.Parameters); VectEditor(topicId).HandleCreateShape(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.DeleteShapesRequest: topicId = Serializers.ReadChangedTopicId(operationRequest.Parameters); VectEditor(topicId).HandleDeleteShapes(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.UnselectAllRequest: topicId = Serializers.ReadChangedTopicId(operationRequest.Parameters); VectEditor(topicId).HandleUnselectAll(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.DeleteSingleShapeRequest: topicId = Serializers.ReadChangedTopicId(operationRequest.Parameters); VectEditor(topicId).HandleDeleteSingleShape(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.StateSyncRequest: topicId = Serializers.ReadChangedTopicId(operationRequest.Parameters); VectEditor(topicId).HandleStateSync(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.InitialSceneLoadRequest: topicId = Serializers.ReadChangedTopicId(operationRequest.Parameters); VectEditor(topicId).HandleInitialSceneLoad(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.LinkCreateRequest: topicId = Serializers.ReadChangedTopicId(operationRequest.Parameters); VectEditor(topicId).HandleLinkCreateRequest(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.UnclusterBadgeRequest: topicId = Serializers.ReadChangedTopicId(operationRequest.Parameters); VectEditor(topicId).HandleUnclusterBadgeRequest(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.ClusterBadgeRequest: topicId = Serializers.ReadChangedTopicId(operationRequest.Parameters); VectEditor(topicId).HandleClusterBadgeRequest(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.InkRequest: topicId = Serializers.ReadChangedTopicId(operationRequest.Parameters); VectEditor(topicId).HandleInkRequest(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.DEditorReport: topicId = Serializers.ReadChangedTopicId(operationRequest.Parameters); VectEditor(topicId).HandleDEditorStatsRequest(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.ClusterStatsRequest: topicId = Serializers.ReadChangedTopicId(operationRequest.Parameters); VectEditor(topicId).HandleClusterStatsRequest(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.LinkReportRequest: topicId = Serializers.ReadChangedTopicId(operationRequest.Parameters); VectEditor(topicId).HandleLinkReportRequest(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.BadgeViewRequest: HandleBadgeView(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.ExplanationModeSyncViewRequest: HandleSourceView(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.CommentReadRequest: HandleCommentRead(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.AttachLaserPointerRequest: var ptr = LaserPointer.Read(operationRequest.Parameters); VectEditor(ptr.TopicId).HandleAttachLaserPointer(peer, ptr, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.DetachLaserPointerRequest: ptr = LaserPointer.Read(operationRequest.Parameters); VectEditor(ptr.TopicId).HandleDetachLaserPointer(peer, ptr, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.LaserPointerMovedRequest: var ptrLoc = LaserPointer.Read(operationRequest.Parameters); VectEditor(ptrLoc.TopicId).HandleLaserPointerMoved(peer, ptrLoc, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.DetachLaserPointerFromAnyTopicRequest: var userId = (int)operationRequest.Parameters[(byte)DiscussionParamKey.UserId]; DetachLaserPointerFormAnyTopic(peer, userId); break; case (byte)DiscussionOpCode.ImageViewerManipulateRequest: var mat = ImageViewerMatrix.Read(operationRequest.Parameters); VectEditor(mat.TopicId).HandleManipulateImageViewer(peer, mat, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.ImageViewerStateRequest: var sr = ImageViewerStateRequest.Read(operationRequest.Parameters); VectEditor(sr.TopicId).HandleImageViewerStateRequest(peer, sr, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.BrowserScrollChanged: var browserScroll = BrowserScrollPosition.Read(operationRequest.Parameters); VectEditor(browserScroll.topicId).HandleBrowserScrollSubmitted(peer, browserScroll, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.GetBrowserScrollPos: var browserScrollReq = BrowserScrollPositionRequest.Read(operationRequest.Parameters); VectEditor(browserScrollReq.topicId).HandleBrowserScrollRequested(peer, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.PdfScrollChanged: var pdfScroll = PdfScrollPosition.Read(operationRequest.Parameters); VectEditor(pdfScroll.topicId).HandlePdfScrollSubmitted(peer, pdfScroll, operationRequest, sendParameters); break; case (byte)DiscussionOpCode.GetPdfScrollPos: var pdfScrollReq = PdfScrollPositionRequest.Read(operationRequest.Parameters); VectEditor(pdfScrollReq.topicId).HandlePdfScrollRequested(peer, operationRequest, sendParameters); break; default: base.ExecuteOperation(peer, operationRequest, sendParameters); break; } }