1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2025-03-17 17:25:32 +00:00

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; NSArray * fTorrents;
NSMutableArray * fPeers, * fFiles; NSMutableArray * fPeers, * fFiles;
NSImage * fAppIcon, * fDotGreen, * fDotRed, * fCheckImage; NSImage * fAppIcon, * fDotGreen, * fDotRed;
IBOutlet NSTabView * fTabView; IBOutlet NSTabView * fTabView;

View file

@ -67,7 +67,6 @@
fAppIcon = [[NSApp applicationIconImage] copy]; fAppIcon = [[NSApp applicationIconImage] copy];
fDotGreen = [NSImage imageNamed: @"GreenDot.tiff"]; fDotGreen = [NSImage imageNamed: @"GreenDot.tiff"];
fDotRed = [NSImage imageNamed: @"RedDot.tiff"]; fDotRed = [NSImage imageNamed: @"RedDot.tiff"];
fCheckImage = [NSImage imageNamed: @"NSMenuCheckmark"];
} }
return self; return self;
} }
@ -540,9 +539,11 @@
else if ([ident isEqualToString: @"Progress"]) else if ([ident isEqualToString: @"Progress"])
return [peer objectForKey: @"Progress"]; return [peer objectForKey: @"Progress"];
else if ([ident isEqualToString: @"UL To"]) 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"]) 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 else
return [peer objectForKey: @"IP"]; 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); tr_peer_stat_t * peers = tr_torrentPeers(fHandle, & totalPeers);
NSMutableArray * peerDics = [NSMutableArray arrayWithCapacity: totalPeers]; NSMutableArray * peerDics = [NSMutableArray arrayWithCapacity: totalPeers];
tr_peer_stat_t peer; NSMutableDictionary * dic;
tr_peer_stat_t * peer;
NSString * client; NSString * client;
for (i = 0; i < totalPeers; i++) for (i = 0; i < totalPeers; i++)
{ {
peer = peers[i]; peer = &peers[i];
[peerDics addObject: [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool: peer.isConnected], @"Connected", dic = [NSMutableDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool: peer.isIncoming], @"Incoming", [NSNumber numberWithBool: peer->isConnected], @"Connected",
[NSString stringWithCString: (char *) peer.addr encoding: NSUTF8StringEncoding], @"IP", [NSNumber numberWithBool: peer->isIncoming], @"Incoming",
[NSString stringWithCString: (char *) peer.client encoding: NSUTF8StringEncoding], @"Client", [NSString stringWithCString: (char *) peer->addr encoding: NSUTF8StringEncoding], @"IP",
[NSNumber numberWithFloat: peer.progress], @"Progress", [NSString stringWithCString: (char *) peer->client encoding: NSUTF8StringEncoding], @"Client",
[NSNumber numberWithBool: peer.isDownloading], @"UL To", [NSNumber numberWithFloat: peer->progress], @"Progress",
[NSNumber numberWithBool: peer.isUploading], @"DL From", [NSNumber numberWithBool: peer->isDownloading], @"UL To",
[NSNumber numberWithInt: peer.port], @"Port", nil]]; [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); tr_torrentPeersFree(peers, totalPeers);