Пример #1
0
	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);
	}
Пример #2
0
	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);
	}
Пример #3
0
	private void peer_IAmChokingChange(BitTorrent.Peer peer, bool newStatus)
	{
		SetSubItemTextAsync( 4, newStatus ? "Y" : "N" );
	}
Пример #4
0
	private void peer_HeIsInterestedChange(BitTorrent.Peer peer, bool newStatus)
	{
		SetSubItemTextAsync( 7, newStatus ? "Y" : "N" );
	}
Пример #5
0
	private void peer_BitfieldChange(BitTorrent.Peer peer, int pieceId)
	{
		SetSubItemTextAsync( 1, peer.IsSeed ? "Seed" : "Leech" );
		SetSubItemTextAsync( 8, peer.BitField.PercentageTrue.ToString( "0.0" ) );
	}
Пример #6
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 );
		}
	}
Пример #7
0
	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;
			}
		}
	}
Пример #8
0
	private void torrent_TrackerError(BT.Torrent torrent, string message)
	{
		this.ListView.BeginInvoke( new UpdateSubItemTextDelegate( UpdateSubItemText ), new object[] { 3, message } );
	}
Пример #9
0
	private void torrent_PercentChanged(BitTorrent.DownloadFile file, float percent)
	{
		this.ListView.BeginInvoke( new UpdateSubItemTextDelegate( UpdateSubItemText ), new object[] { 2, percent.ToString( "0.0" ) } );
	}
Пример #10
0
	private void OnTorrentChangeStatus(BT.Torrent torrent, BT.TorrentStatus status)
	{
		this.ListView.BeginInvoke( new UpdateSubItemTextDelegate( UpdateSubItemText ), new object[] { 1, status.ToString() } );
	}