Пример #1
0
        private void tox_OnFileControl(object sender, ToxEventArgs.FileControlEventArgs e)
        {
            switch (e.Control)
            {
            case ToxFileControl.Kill:
            {
                _thread.Abort();
                _thread.Join();

                _stream.Dispose();
                break;
            }

            case ToxFileControl.Accept:
            {
                _stream = new FileStream("file.data", FileMode.Open);

                _thread = new Thread(Loop);
                _thread.Start(new FileTransfer()
                    {
                        FriendNumber = e.FriendNumber, FileNumber = e.FileNumber
                    });
                break;
            }
            }
        }
Пример #2
0
        private void FileControlReceivedHandler(object sender, ToxEventArgs.FileControlEventArgs e)
        {
            Debug.WriteLine("File control received \t friend number: {0}, \t file number: {1}, \t control: {2}",
                            e.FriendNumber, e.FileNumber, e.Control);

            var transferId = new TransferId(e.FriendNumber, e.FileNumber);

            if (_transfers.ContainsKey(transferId))
            {
                HandleFileControl(e.Control, transferId);
            }
        }
Пример #3
0
 private void tox_OnFileControl(object sender, ToxEventArgs.FileControlEventArgs e)
 {
     switch (e.Control)
     {
     case ToxFileControl.Kill:
     case ToxFileControl.Finished:
     {
         _stream.Dispose();
         break;
     }
     }
 }
Пример #4
0
        private void Tox_OnFileControlReceived(object sender, ToxEventArgs.FileControlEventArgs e)
        {
            var transfer = FindTransfer(e.FriendNumber, e.FileNumber);

            if (transfer != null)
            {
                switch (e.Control)
                {
                case ToxFileControl.Cancel:
                {
                    RemoveTransfer(transfer, true);
                    break;
                }

                case ToxFileControl.Resume:
                {
                    if (!transfer.IsPaused)
                    {
                        transfer.Start();
                    }
                    else
                    {
                        transfer.Resume();
                    }

                    break;
                }

                case ToxFileControl.Pause:
                {
                    if (!transfer.IsPaused)
                    {
                        transfer.Pause(false);
                    }
                    else
                    {
                        Debugging.Write("Friend tried to pause a transfer that was paused already!");
                    }

                    break;
                }
                }
            }

            Debugging.Write(string.Format("Received control: {0} for transfer: {1}. Transfer known?: {2}", e.Control, e.FileNumber, transfer != null));
        }
Пример #5
0
        private void FileControlReceivedHandler(object sender, ToxEventArgs.FileControlEventArgs e)
        {
            if (IsPlaceholder || !IsThisTransfer(e))
            {
                return;
            }

            switch (e.Control)
            {
            case ToxFileControl.Cancel:
                _fileTransferResumer.RemoveTransfer(_friendNumber, _fileNumber);
                State = FileTransferState.Cancelled;
                return;

            case ToxFileControl.Pause:
                TryPauseTransfer();
                return;

            case ToxFileControl.Resume:
                TryResumeTransfer();
                return;
            }
        }
Пример #6
0
        private void Tox_OnFileControlReceived(object sender, ToxEventArgs.FileControlEventArgs e)
        {
            if (e.FileNumber != ViewModel.ID)
            {
                return;
            }

            switch (e.Control)
            {
            case ToxFileControl.Cancel:
                ViewModel.Status = TransferStatus.Cancelled;
                Dispose();
                break;

            case ToxFileControl.Pause:
                ViewModel.Status = TransferStatus.Paused;
                break;

            case ToxFileControl.Resume:
                ViewModel.Status = TransferStatus.InProgress;
                break;
            }
        }
Пример #7
0
 private void FileControlReceivedHandler(object sender, ToxEventArgs.FileControlEventArgs e)
 {
     FileControlReceived?.Invoke(this, e);
 }
Пример #8
0
 private void OnToxFileControlReceived(object sender, ToxEventArgs.FileControlEventArgs e)
 {
     this.Tox.FileControl(e.FriendNumber, e.FileNumber, ToxFileControl.Cancel);
     Logger.Log(LogLevel.Warning, "ToxFileControlReceived not supported, command canceled");
 }