public void broadcastBeginAcked(POIUser u) { if (CheckEveryoneAckedBroadcastBegin()) { SocketAsyncEventArgs sendArgs = new SocketAsyncEventArgs(); sendArgs.RemoteEndPoint = new IPEndPoint(broadCastAddr, broadCastPort); sendArgs.SetBuffer(curBroadcastFrame[0], 0, curBroadcastFrame[0].Length); sendArgs.Completed += new EventHandler<SocketAsyncEventArgs>(broadcastContentPacketCompleted); sendArgs.UserToken = new Tuple<int, int>(0, 0); broadCastChannel.SendToAsync(sendArgs); myBroadcastState = BroadcastState.Broadcasting; } }
public void broadcastEndAcked(POIUser u) { if (CheckEveryoneAckedBroadcastEnd()) { myBroadcastState = BroadcastState.Idle; } }
private void ParsingData(byte[] data, POIUser user) { //Start parsing data DataType myType = (DataType)data[0]; byte[] packet = data.Skip(1).ToArray(); //DataParsers myParser = user.myParser; POIRealtimeMsgCB dataHandler = user.RealtimeCtrlHandler; switch (myType) { case DataType.GESTURE: GestureDataParser(packet, dataHandler); break; case DataType.MOTION: //myParser.MotionDataParser(packet); break; case DataType.TOUCH: TouchDataParser(packet, dataHandler); break; case DataType.KEYBOARD: //myParser.KeyboardParser(packet); break; } }
public POIInputEventArgs(char curKey, POIUser curUser) { myChar = curKey; myUser = curUser; }
public POIRotateEventArgs(double degree, double velocity, POIUser curUser) { myDegree = degree; myVelocity = velocity; myUser = curUser; }
public POIUserEventArgs(POIUser user, Point myOffset) { myUser = user; myX = myOffset.X; myY = myOffset.Y; }
public POIZoomEventArgs(double scale, double velocity, POIUser curUser) { scaleFactor = scale; myVelocity = velocity; myUser = curUser; }
public POITouchMoveEventArgs(POIUser curUser) { myUser = curUser; }
public POITapEventArgs(POIUser curUser) { myUser = curUser; }
public POISwipeEventArgs(int curDirection, POIUser curUser) { myDirection = (SwipeDirection)curDirection; myUser = curUser; }
public POIScrollEventArgs(POIUser curUser) { myUser = curUser; }
//Initialize the client public void helloMsgReceived(POIHelloMsg par, POITCPConnection connection) { //Notify data handler that authentication has been done //Proper CB functions are set here int userType = (int)par.UserType; int conType = (int)par.ConnType; string userName = par.UserName; //Handle the authentication POIWelcomeMsg.WelcomeStatus status = POIWelcomeMsg.WelcomeStatus.Failed; if (conType == POIMsgDefinition.POI_CONTROL_CHANNEL) { //Check if user already exists, create if not exists POIUser user; if (POIGlobalVar.UserProfiles.ContainsKey(userName)) { user = POIGlobalVar.UserProfiles[userName]; } else { user = new POIUser(); POIGlobalVar.UserProfiles[userName] = user; } //Initialize the user parameters user.UserID = userName; user.UserPrivilege = (POIUser.Privilege)userType; user.CtrlChannel = connection; if (user.Status == POIUser.ConnectionStatus.Disconnected) { user.Status = POIUser.ConnectionStatus.Connected; } connection.Type = POIMsgParser.ParserType.Control; connection.Delegates = user; connection.AssociatedUser = user; try { POIGlobalVar.SystemKernel.HandleUserJoin(user); } catch (Exception e) { Console.WriteLine(e.Message); } status = POIWelcomeMsg.WelcomeStatus.CtrlChannelAuthenticated; } else if (conType == POIMsgDefinition.POI_DATA_CHANNEL) { if (POIGlobalVar.UserProfiles.ContainsKey(userName)) { POIUser user = POIGlobalVar.UserProfiles[userName]; if (user.Status == POIUser.ConnectionStatus.Connected) { user.DataChannel = connection; connection.InitPayloadBufferForDataChannel(); connection.Type = POIMsgParser.ParserType.Data; connection.Delegates = user; connection.AssociatedUser = user; status = POIWelcomeMsg.WelcomeStatus.DataChannelAuthenticated; } } } //Send back the welcome message POIWelcomeMsg welcomeMsg = new POIWelcomeMsg(status); connection.SendData(welcomeMsg.getPacket()); }