Exemple #1
0
        public void SendImageViewerStateRequest(ImageViewerStateRequest req)
        {
            if (peer == null || peer.PeerState != PeerStateValue.Connected)
            {
                return;
            }

            peer.OpCustom((byte)DiscussionOpCode.ImageViewerStateRequest,
                          req.ToDict(),
                          true);
        }
Exemple #2
0
        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;
            }
        }