display actual upload/download rate in inspector for individual peers

This commit is contained in:
Mitchell Livingston 2006-12-18 06:25:40 +00:00
parent 01ebeae829
commit d7c9da2c8f
4 changed files with 26 additions and 15 deletions

View File

@ -31,7 +31,7 @@
{
NSArray * fTorrents;
NSMutableArray * fPeers, * fFiles;
NSImage * fAppIcon, * fDotGreen, * fDotRed, * fCheckImage;
NSImage * fAppIcon, * fDotGreen, * fDotRed;
IBOutlet NSTabView * fTabView;

View File

@ -67,7 +67,6 @@
fAppIcon = [[NSApp applicationIconImage] copy];
fDotGreen = [NSImage imageNamed: @"GreenDot.tiff"];
fDotRed = [NSImage imageNamed: @"RedDot.tiff"];
fCheckImage = [NSImage imageNamed: @"NSMenuCheckmark"];
}
return self;
}
@ -540,9 +539,11 @@
else if ([ident isEqualToString: @"Progress"])
return [peer objectForKey: @"Progress"];
else if ([ident isEqualToString: @"UL To"])
return [[peer objectForKey: @"UL To"] boolValue] ? fCheckImage : nil;
return [[peer objectForKey: @"UL To"] boolValue]
? [NSString stringForSpeedAbbrev: [[peer objectForKey: @"UL To Rate"] floatValue]] : @"";
else if ([ident isEqualToString: @"DL From"])
return [[peer objectForKey: @"DL From"] boolValue] ? fCheckImage : nil;
return [[peer objectForKey: @"DL From"] boolValue]
? [NSString stringForSpeedAbbrev: [[peer objectForKey: @"DL From Rate"] floatValue]] : @"";
else
return [peer objectForKey: @"IP"];
}

View File

@ -839,20 +839,30 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80
tr_peer_stat_t * peers = tr_torrentPeers(fHandle, & totalPeers);
NSMutableArray * peerDics = [NSMutableArray arrayWithCapacity: totalPeers];
tr_peer_stat_t peer;
NSMutableDictionary * dic;
tr_peer_stat_t * peer;
NSString * client;
for (i = 0; i < totalPeers; i++)
{
peer = peers[i];
[peerDics addObject: [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool: peer.isConnected], @"Connected",
[NSNumber numberWithBool: peer.isIncoming], @"Incoming",
[NSString stringWithCString: (char *) peer.addr encoding: NSUTF8StringEncoding], @"IP",
[NSString stringWithCString: (char *) peer.client encoding: NSUTF8StringEncoding], @"Client",
[NSNumber numberWithFloat: peer.progress], @"Progress",
[NSNumber numberWithBool: peer.isDownloading], @"UL To",
[NSNumber numberWithBool: peer.isUploading], @"DL From",
[NSNumber numberWithInt: peer.port], @"Port", nil]];
peer = &peers[i];
dic = [NSMutableDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool: peer->isConnected], @"Connected",
[NSNumber numberWithBool: peer->isIncoming], @"Incoming",
[NSString stringWithCString: (char *) peer->addr encoding: NSUTF8StringEncoding], @"IP",
[NSString stringWithCString: (char *) peer->client encoding: NSUTF8StringEncoding], @"Client",
[NSNumber numberWithFloat: peer->progress], @"Progress",
[NSNumber numberWithBool: peer->isDownloading], @"UL To",
[NSNumber numberWithBool: peer->isUploading], @"DL From",
[NSNumber numberWithInt: peer->port], @"Port", nil];
if (peer->isDownloading)
[dic setObject: [NSNumber numberWithFloat: peer->uploadToRate] forKey: @"UL To Rate"];
if (peer->isUploading)
[dic setObject: [NSNumber numberWithFloat: peer->downloadFromRate] forKey: @"DL From Rate"];
[peerDics addObject: dic];
}
tr_torrentPeersFree(peers, totalPeers);