public void EndConnection() { //make sure we're not calling this multiple times if (this.CurrentState != SystemState.LoggedOut) { this.CurrentState = SystemState.LoggedOut; //reset UI after changing SystemState P2pWorker.ReportProgress(0, ThreadMessage.Create(UiMessage.ToggleUi, string.Empty)); //close and set classes to null if (p2p != null) { p2p.Close(); p2p = null; } if (videoHttpListener != null) { videoHttpListener.Stop(); videoHttpListener.Quit(); videoHttpListener = null; } if (P2pWorker != null) { P2pWorker.CancelAsync(); } } }
protected void P2PLib_ChatChanged(object sender, ChatChangedEventArgs e) { //Sends text to chat window P2pWorker.ReportProgress(100, ThreadMessage.Create(UiMessage.Log, e.Message)); if (e.Message.StartsWith("machine")) { return; //exit } ChatMessage msg = ChatMessage.P2PLibParse(e.Message); if (App.IsServerMode) { ProcessServerCommand(msg); } else { if (msg.CommandType == ChatCommand.ReturnList) { ChatMessage.P2PLibParse(e.Message); P2pWorker.ReportProgress(100, ThreadMessage.Create(UiMessage.ReceivedVideoList, msg.Message)); } } }
void P2PWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) { //update progress bar progressBar1.Value = e.ProgressPercentage; //Read messages from the Network Manager if (e.UserState != null) { ThreadMessage message = (ThreadMessage)(e.UserState); switch (message.MessageType) { case UiMessage.UpdateStatus: StatusValue.Content = message.Message; break; case UiMessage.Log: Messages.Items.Add(message.Message); break; case UiMessage.StreamVideo: PlayVideo(message.Message); break; case UiMessage.ReceivedVideoList: UpdateVideoList(message.Message); break; case UiMessage.ToggleUi: ToggleUi(); break; } } }
void P2PLib_StreamChanged(object sender, StreamedChangedEventArgs e) { //take packet from server & use videoHttpListener to write to localhost videoHttpListener.StreamedChanged(e); //set client to listen to stream if (e.StreamedPacket.packetNumber == 0) { string file = StreamingHttpListener.SafeHttpString(e.StreamedPacket.fileName); string url = String.Format(@"http://localhost:8088/{0}/video/{1}", userName, file); P2pWorker.ReportProgress(100, ThreadMessage.Create(UiMessage.StreamVideo, url)); } }
protected void P2PLib_StatusChanged(object sender, StatusChangedEventArgs e) { if (userName == e.Member) { if (e.NewNodeJoined) { this.CurrentState = SystemState.LoggedIn; P2pWorker.ReportProgress(100, ThreadMessage.Create(UiMessage.UpdateStatus, "Connected")); } if (e.NodeLeft) { P2pWorker.ReportProgress(0, ThreadMessage.Create(UiMessage.UpdateStatus, "Disconnected...")); this.CurrentState = SystemState.LoggedOut; } } }
private void P2pWorkerAsync(object sender, DoWorkEventArgs doWorkArgs) { //Send back a text that we're logging in P2pWorker.ReportProgress(0, ThreadMessage.Create(UiMessage.ToggleUi, string.Empty)); //Create new p2p p2p = new P2PLib(); //Connect to the PeerChannel bool start = p2p.PeerChannelWrapperStart(userName, networkName, password); //check for connection error if (!start) { EndConnection(); } SubscribeToPeerChannelEvents(); //PeerChannel connection may take a while so cycle the ProgressBar CycleProgressBarUntilConnected(); SitAndWait(); }
public void LogMessage(string msg) { P2pWorker.ReportProgress(100, ThreadMessage.Create(UiMessage.Log, msg)); }