public PeerListViewItem(BT.Peer peer) { this.peer = peer; this.Text = peer.ToString(); this.SubItems.Add("Leech"); this.SubItems.Add("0"); this.SubItems.Add("0"); this.SubItems.Add("Y"); this.SubItems.Add("N"); this.SubItems.Add("Y"); this.SubItems.Add("N"); this.SubItems.Add("0"); this.SubItems.Add(peer.Information.ClientType.ToString()); this.SubItems.Add(peer.Information.ID.ToString()); peer.BitfieldChange += new BitTorrent.PeerBitfieldChangeCallback(peer_BitfieldChange); peer.HeIsChokingChange += new BitTorrent.PeerStatusChangeCallback(peer_HeIsChokingChange); peer.HeIsInterestedChange += new BitTorrent.PeerStatusChangeCallback(peer_HeIsInterestedChange); peer.IAmChokingChange += new BitTorrent.PeerStatusChangeCallback(peer_IAmChokingChange); peer.IAmInterestedChange += new BitTorrent.PeerStatusChangeCallback(peer_IAmInterestedChange); peer.DownThrottle.RateChange += new BitTorrent.RateChangeCallback(peer_DownloadRateChange); peer.UpThrottle.RateChange +=new BitTorrent.RateChangeCallback(peer_UploadRateChange); }
public TorrentListViewItem(BT.Torrent torrent) { this.torrent = torrent; this.Text = torrent.ToString(); this.SubItems.Add(torrent.Status.ToString()); this.SubItems.Add(""); this.SubItems.Add(""); torrent.StatusChanged += new BT.TorrentStatusChangedCallback(OnTorrentChangeStatus); torrent.PercentChanged += new BT.PercentChangedCallback( torrent_PercentChanged ); torrent.TrackerError += new BT.TorrentTrackerErrorCallback(torrent_TrackerError); }
private void peer_IAmChokingChange(BitTorrent.Peer peer, bool newStatus) { SetSubItemTextAsync( 4, newStatus ? "Y" : "N" ); }
private void peer_HeIsInterestedChange(BitTorrent.Peer peer, bool newStatus) { SetSubItemTextAsync( 7, newStatus ? "Y" : "N" ); }
private void peer_BitfieldChange(BitTorrent.Peer peer, int pieceId) { SetSubItemTextAsync( 1, peer.IsSeed ? "Seed" : "Leech" ); SetSubItemTextAsync( 8, peer.BitField.PercentageTrue.ToString( "0.0" ) ); }
private void OnPeerConnected(BT.Torrent torrent, BT.Peer peer, bool connected) { if (connected) { this.peerListView.Invoke( new AddNewPeerDelegate( this.peerListView.Items.Add ), new object[] { new PeerListViewItem( peer ) } ); // this.peerListView.Items.Add(new PeerListViewItem(peer)); } else { LogDebugMessage( "Peer disconnected from mainform.cs: " + peer.ToString() ); this.peerListView.Invoke( new RemovePeerDelegate( RemovePeer ), peer ); } }
private void RemovePeer( BT.Peer peer ) { foreach ( PeerListViewItem item in this.peerListView.Items ) { if ( item.Peer.Equals( peer ) ) { item.UnhookPeerEvents(); this.peerListView.Items.Remove(item); this.peerListView.Refresh(); break; } } }
private void torrent_TrackerError(BT.Torrent torrent, string message) { this.ListView.BeginInvoke( new UpdateSubItemTextDelegate( UpdateSubItemText ), new object[] { 3, message } ); }
private void torrent_PercentChanged(BitTorrent.DownloadFile file, float percent) { this.ListView.BeginInvoke( new UpdateSubItemTextDelegate( UpdateSubItemText ), new object[] { 2, percent.ToString( "0.0" ) } ); }
private void OnTorrentChangeStatus(BT.Torrent torrent, BT.TorrentStatus status) { this.ListView.BeginInvoke( new UpdateSubItemTextDelegate( UpdateSubItemText ), new object[] { 1, status.ToString() } ); }