Exemplo n.º 1
0
 /// <summary>
 /// スタートボタン
 /// </summary>
 private void startButton_Click(object sender, EventArgs e)
 {
     if (PhotoChat.ContainsInvalidChars(userNameComboBox.Text))
     {
         MessageBox.Show(PhotoChat.InvalidCharsMessage);
     }
     else
     {
         this.DialogResult = DialogResult.OK;
     }
 }
Exemplo n.º 2
0
 /// <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());
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// 書き込み再生を終了しスライダーをリセットする。
 /// </summary>
 public void QuitReplay()
 {
     try
     {
         form.ResetSliderValue();
     }
     catch (Exception e)
     {
         PhotoChat.WriteErrorLog(e.ToString());
     }
 }
Exemplo n.º 4
0
 /// <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());
     }
 }
Exemplo n.º 5
0
 /// <summary>
 /// 名前のリストをコンボボックスに追加する。
 /// </summary>
 /// <param name="nameList">名前のリスト</param>
 public void AddNameList(string[] nameList)
 {
     try
     {
         userNameComboBox.Items.AddRange(nameList);
     }
     catch (Exception e)
     {
         PhotoChat.WriteErrorLog(e.ToString());
     }
 }
Exemplo n.º 6
0
 /// <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());
     }
 }
Exemplo n.º 7
0
 /// <summary>
 /// ライブモードに設定する。
 /// </summary>
 public void SetLiveMode()
 {
     try
     {
         reviewMode      = ReviewModes.Live;
         imageBox.Cursor = liveCursor;
     }
     catch (Exception e)
     {
         PhotoChat.WriteErrorLog(e.ToString());
     }
 }
Exemplo n.º 8
0
 /// <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());
     }
 }
Exemplo n.º 9
0
 /// <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);
     }
 }
Exemplo n.º 10
0
 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());
     }
 }
Exemplo n.º 11
0
        /// <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());
                    }
                }
            }
        }
Exemplo n.º 12
0
 /// <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());
     }
 }
Exemplo n.º 13
0
 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());
     }
 }
Exemplo n.º 14
0
 /// <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());
     }
 }
Exemplo n.º 15
0
 /// <summary>
 /// カメラ画像のキャプチャを停止する。
 /// </summary>
 public void StopCapture()
 {
     try
     {
         cameraPipeline.setCapturing(false);
         isCapturing = false;
     }
     catch (Exception e)
     {
         PhotoChat.WriteErrorLog(e.ToString());
     }
 }
Exemplo n.º 16
0
 /// <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);
     }
 }
Exemplo n.º 17
0
 /// <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());
     }
 }
Exemplo n.º 18
0
        /// <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);
        }
Exemplo n.º 19
0
 /// <summary>
 /// 書き込み数を1減らす。
 /// </summary>
 public void DecrementNoteCount()
 {
     try
     {
         noteCount--;
         Interlocked.Increment(ref needDataSave);
         Interlocked.Increment(ref needImageUpdate);
     }
     catch (Exception e)
     {
         PhotoChat.WriteErrorLog(e.ToString());
     }
 }
Exemplo n.º 20
0
 /// <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);
     }
 }
Exemplo n.º 21
0
 /// <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());
     }
 }
Exemplo n.º 22
0
 /// <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());
     }
 }
Exemplo n.º 23
0
 /// <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);
     }
 }
Exemplo n.º 24
0
 /// <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());
     }
 }
Exemplo n.º 25
0
 /// <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());
     }
 }
Exemplo n.º 26
0
 /// <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);
     }
 }
Exemplo n.º 27
0
 /// <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);
     }
 }
Exemplo n.º 28
0
 /// <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());
     }
 }
Exemplo n.º 29
0
 /// <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);
     }
 }
Exemplo n.º 30
0
 /// <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;
     }
 }