/// <summary> /// スタートボタン /// </summary> private void startButton_Click(object sender, EventArgs e) { if (PhotoChat.ContainsInvalidChars(userNameComboBox.Text)) { MessageBox.Show(PhotoChat.InvalidCharsMessage); } else { this.DialogResult = DialogResult.OK; } }
/// <summary> /// 端末間時間差の取得のため時刻を送信する。 /// UDPなので成功するとは限らない。 /// </summary> /// <param name="remoteIP">送信先のIPアドレス</param> private void CheckTimeDifference(object remoteIP) { try { IPEndPoint endPoint = new IPEndPoint((IPAddress)remoteIP, PhotoChat.UdpPort); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// 書き込み再生を終了しスライダーをリセットする。 /// </summary> public void QuitReplay() { try { form.ResetSliderValue(); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// テキストを描画する。 /// </summary> /// <param name="g">グラフィックコンテキスト</param> public override void Paint(Graphics g) { try { g.DrawString(bodyText, font, brush, range.X, range.Y); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// 名前のリストをコンボボックスに追加する。 /// </summary> /// <param name="nameList">名前のリスト</param> public void AddNameList(string[] nameList) { try { userNameComboBox.Items.AddRange(nameList); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// タグラベルのリンクをクリックしたときの処理。 /// </summary> private void LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { try { string tag = e.Link.LinkData as string; form.ShowPhotoListWindow(tag); } catch (Exception ex) { PhotoChat.WriteErrorLog(ex.ToString()); } }
/// <summary> /// ライブモードに設定する。 /// </summary> public void SetLiveMode() { try { reviewMode = ReviewModes.Live; imageBox.Cursor = liveCursor; } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// 音声リンクの音声を再生する。 /// </summary> /// <param name="sound">音声リンク</param> private void SoundPlay(Sound sound) { try { PhotoChat.AudioPlay( Path.Combine(PhotoChat.SoundNoteDirectory, sound.SoundFileName)); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// 画像ファイルのパスを返す /// </summary> /// <param name="photoName">写真名</param> /// <returns>画像ファイルのパス</returns> public static string GetImageFilePath(string photoName) { try { return(Path.Combine(PhotoChat.PhotoDirectory, photoName + ".jpg")); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); return(string.Empty); } }
private void LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { try { string tag = e.Link.LinkData as string; SetPhotoList(tag, photoListBox.ColumnWidth, photoListBox.ItemHeight); } catch (Exception ex) { PhotoChat.WriteErrorLog(ex.ToString()); } }
/// <summary> /// データ受信スレッド本体 /// </summary> private void Receive() { if (networkStream == null) { networkStream = new NetworkStream(socket); } if (reader == null) { reader = new BinaryReader(networkStream); } int type, length; byte[] data; ISendable instance; length = 0; while (isConnecting) { try { // タイプの読み取り type = reader.ReadInt32(); // バイト列の読み取り length = reader.ReadInt32(); data = reader.ReadBytes(length); // 受信データをインスタンス化してConnectionManagerの受信キューへ入れる instance = CreateInstance(type, data); if (instance != null) { manager.PutReceiveQueue(instance); } } catch (SocketException) { Close(); } catch (IOException) { Close(); } catch (Exception e) { if (isConnecting) { PhotoChat.WriteErrorLog("outof" + length.ToString() + "\n" + e.ToString()); } } } }
/// <summary> /// サムネイルに注目マークを付けるかどうか設定する。 /// </summary> /// <param name="attentionFlag">注目マークを付けるならtrue。</param> public void SetAttention(bool attentionFlag) { try { this.attentionFlag = attentionFlag; Interlocked.Increment(ref needDataSave); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
private void setTimeDiff(string message) { try { string[] values = message.Split(PhotoChat.Delimiter); PhotoChatClient.Instance.ConnectionManager.SetTimeDifference(values[1], -long.Parse(values[2])); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// 書き込みに関する情報文字列を描画する。 /// </summary> /// <param name="g">グラフィックコンテキスト</param> public void PaintInfoText(Graphics g) { try { g.DrawString(infoText, PhotoChat.RegularFont, infoBrush, range.X, range.Y + range.Height + PhotoChat.InfoFontSize); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// カメラ画像のキャプチャを停止する。 /// </summary> public void StopCapture() { try { cameraPipeline.setCapturing(false); isCapturing = false; } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// 接続通知コマンドを作成する。 /// </summary> /// <param name="id">端末ID</param> /// <param name="userName">ユーザ名</param> /// <returns>接続通知コマンド</returns> public static Command CreateConnectCommand(string id, string userName) { try { return(new Command(TypeConnect, 0, DateTime.Now, id, id, userName, "null")); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); return(null); } }
/// <summary> /// サムネイルに目印を付けるかどうか設定する。 /// </summary> /// <param name="marked">目印を付けるならtrue。</param> public void SetMarker(bool marked) { try { this.marked = marked; Interlocked.Increment(ref needDataSave); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// TCP接続を開始する。 /// すでに接続中であればfalseを返して何もしない。 /// </summary> /// <param name="ipAddress">接続先のIPAddress</param> /// <returns>接続に成功したときのみtrue</returns> public bool Connect() { // 既に接続中であればfalse if (isConnecting) { return(false); } isConnecting = true; try { // 接続処理 IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(ip), PhotoChat.TcpPort); this.socket = new Socket( endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp); this.socket.Connect(endPoint); byte[] sendMessage = PhotoChat.DefaultEncoding.GetBytes( PhotoChatClient.Instance.ID + PhotoChat.Delimiter + PhotoChatClient.Instance.CurrentSessionID); byte[] sendLen = BitConverter.GetBytes(sendMessage.Length); byte[] recvMessage = BitConverter.GetBytes(1); socket.Send(sendLen, sendLen.Length, SocketFlags.None); socket.Send(sendMessage, sendMessage.Length, SocketFlags.None); socket.Receive(recvMessage, recvMessage.Length, SocketFlags.None); int flag = BitConverter.ToInt32(recvMessage, 0); // 接続失敗 if (flag == 0) { isConnecting = false; socket.Close(); return(false); } // 接続成功 StartConnection(); return(true); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } // 接続失敗 isConnecting = false; return(false); }
/// <summary> /// 書き込み数を1減らす。 /// </summary> public void DecrementNoteCount() { try { noteCount--; Interlocked.Increment(ref needDataSave); Interlocked.Increment(ref needImageUpdate); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// データのバイト列から書き込みデータのインスタンスを作成する。 /// データが不適切なものであったときはnullを返す。 /// </summary> /// <param name="type">書き込みのタイプ</param> /// <param name="dataBytes">データのバイト列</param> /// <returns>作成したインスタンス。作成できなかったときはnullを返す。</returns> public static PhotoChatNote CreateInstance(int type, byte[] dataBytes) { try { string dataString = PhotoChat.DefaultEncoding.GetString(dataBytes); return(CreateInstance(type, dataString)); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); return(null); } }
/// <summary> /// 受信したUDP信号を処理する。 /// </summary> /// <param name="message">受信メッセージ</param> /// <param name="remoteIP">送信元のIPアドレス</param> public void ReceiveSignal(string message, IPAddress remoteIP) { try { string[] temp = message.Split(PhotoChat.Delimiter); // セッション追加処理 setSession(temp[1], temp[2]); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// データ送信要求コマンドを処理する。 /// </summary> /// <param name="command">データ送信要求コマンド</param> private void ProcessRequestCommand(Command command) { try { // 要求されたデータを送り返す ISendable data = client.Request(command.AuthorID, command.SerialNumber); SendTo(command.SourceID, data); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// 新着データ通知コマンドをコマンドを作成する。 /// </summary> /// <param name="note">新着書き込みデータ</param> /// <param name="sourceID">コマンド発信元のID</param> /// <returns>新着データ通知コマンド</returns> public static Command CreateInformCommand(PhotoChatNote note, string sourceID) { try { return(new Command(TypeInform, note.SerialNumber, DateTime.Now, note.ID, sourceID, note.Author, note.PhotoName)); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); return(null); } }
/// <summary> /// アップロードボタン /// </summary> private void uploadButton_Click(object sender, EventArgs e) { try { uploadButton.Enabled = false; ServerUpload(); uploadButton.Enabled = true; } catch (Exception ex) { PhotoChat.WriteErrorLog(ex.ToString()); } }
/// <summary> /// セッションボタン /// </summary> private void SessionButton_Click(object sender, EventArgs e) { try { SessionButton sessionButton = (SessionButton)sender; sessionName = sessionButton.SessionName; sessionID = sessionButton.SessionID; } catch (Exception ex) { PhotoChat.WriteErrorLog(ex.ToString()); } }
/// <summary> /// ログインコマンドを作成する。 /// </summary> /// <param name="id">端末ID</param> /// <param name="mailAddress">メールアドレス</param> /// <param name="password">パスワード</param> /// <param name="userName">ユーザ名</param> /// <returns>ログインコマンド</returns> public static Command CreateLoginCommand( string id, string mailAddress, string password, string userName) { try { return(new Command(TypeLogin, 0, DateTime.Now, id, password, userName, mailAddress)); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); return(null); } }
/// <summary> /// 切断通知コマンドを作成する。 /// </summary> /// <param name="authorID">切断した端末ID</param> /// <param name="sourceID">コマンド発信元の端末ID</param> /// <returns>切断通知コマンド</returns> public static Command CreateDisconnectCommand(string authorID, string sourceID) { try { return(new Command(TypeDisconnect, 0, DateTime.Now, authorID, sourceID, "null", "Disconnect")); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); return(null); } }
/// <summary> /// ストロークを伸ばす。 /// </summary> /// <param name="point">ストロークに追加する点</param> private void ExtendStroke(Point point) { try { currentStroke.AddPoint(point); imageBox.Invalidate(currentStroke.Range); Update(); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// 新着データ通知コマンドをコマンドを作成する。 /// </summary> /// <param name="sharedFile">新着共有ファイル</param> /// <param name="sourceID">コマンド発信元のID</param> /// <returns>新着データ通知コマンド</returns> public static Command CreateInformCommand(SharedFile sharedFile, string sourceID) { try { return(new Command(TypeInform, sharedFile.SerialNumber, DateTime.Now, sharedFile.ID, sourceID, "null", "null")); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); return(null); } }
/// <summary> /// 決定ボタン /// </summary> private void inputButton_Click(object sender, EventArgs e) { if (PhotoChat.ContainsInvalidChars(inputTextBox.Text)) { MessageBox.Show(PhotoChat.InvalidCharsMessage); } else { tagString = inputTextBox.Text; client.UpdateInputTags(tagString); this.DialogResult = DialogResult.OK; } }