2022-01-20 18:27:56 +00:00
|
|
|
// This file Copyright © 2008-2022 Transmission authors and contributors.
|
|
|
|
// It may be used under the MIT (SPDX: MIT) license.
|
|
|
|
// License text can be found in the licenses/ folder.
|
2008-07-01 01:28:19 +00:00
|
|
|
|
2018-09-30 10:37:30 +00:00
|
|
|
#include <libtransmission/transmission.h>
|
|
|
|
#include <libtransmission/utils.h> // tr_getRatio()
|
|
|
|
|
2008-07-01 01:28:19 +00:00
|
|
|
#import "TorrentGroup.h"
|
2012-01-07 15:46:42 +00:00
|
|
|
#import "GroupsController.h"
|
2008-10-16 03:44:54 +00:00
|
|
|
#import "Torrent.h"
|
2010-04-23 16:59:14 +00:00
|
|
|
|
2008-07-01 01:28:19 +00:00
|
|
|
@implementation TorrentGroup
|
|
|
|
|
2021-08-15 09:41:48 +00:00
|
|
|
- (instancetype)initWithGroup:(NSInteger)group
|
2008-07-01 01:28:19 +00:00
|
|
|
{
|
2008-07-01 15:11:58 +00:00
|
|
|
if ((self = [super init]))
|
|
|
|
{
|
2022-02-22 16:04:20 +00:00
|
|
|
_groupIndex = group;
|
|
|
|
_torrents = [[NSMutableArray alloc] init];
|
2008-07-01 15:11:58 +00:00
|
|
|
}
|
|
|
|
return self;
|
2008-07-01 01:28:19 +00:00
|
|
|
}
|
|
|
|
|
2021-08-15 09:41:48 +00:00
|
|
|
- (NSString*)description
|
2012-01-07 15:46:42 +00:00
|
|
|
{
|
2022-02-22 16:04:20 +00:00
|
|
|
return [NSString stringWithFormat:@"Torrent Group %ld: %@", self.groupIndex, self.torrents];
|
2008-07-01 01:28:19 +00:00
|
|
|
}
|
|
|
|
|
2021-08-15 09:41:48 +00:00
|
|
|
- (NSInteger)groupOrderValue
|
2012-01-07 15:46:42 +00:00
|
|
|
{
|
2022-02-22 16:04:20 +00:00
|
|
|
return [GroupsController.groups rowValueForIndex:self.groupIndex];
|
2008-07-01 01:28:19 +00:00
|
|
|
}
|
|
|
|
|
2021-08-15 09:41:48 +00:00
|
|
|
- (CGFloat)ratio
|
2008-10-16 03:44:54 +00:00
|
|
|
{
|
2022-03-17 18:41:48 +00:00
|
|
|
uint64_t uploaded = 0, total_size = 0;
|
2022-02-22 16:04:20 +00:00
|
|
|
for (Torrent* torrent in self.torrents)
|
2008-10-16 03:44:54 +00:00
|
|
|
{
|
2021-08-07 07:27:56 +00:00
|
|
|
uploaded += torrent.uploadedTotal;
|
2022-03-17 18:41:48 +00:00
|
|
|
total_size += torrent.totalSizeSelected;
|
2008-10-16 03:44:54 +00:00
|
|
|
}
|
2017-01-24 17:53:16 +00:00
|
|
|
|
2022-03-17 18:41:48 +00:00
|
|
|
return tr_getRatio(uploaded, total_size);
|
2008-10-16 03:44:54 +00:00
|
|
|
}
|
|
|
|
|
2021-08-15 09:41:48 +00:00
|
|
|
- (CGFloat)uploadRate
|
2008-10-16 03:44:54 +00:00
|
|
|
{
|
2009-11-25 04:11:52 +00:00
|
|
|
CGFloat rate = 0.0;
|
2022-02-22 16:04:20 +00:00
|
|
|
for (Torrent* torrent in self.torrents)
|
2021-08-15 09:41:48 +00:00
|
|
|
{
|
2021-08-07 07:27:56 +00:00
|
|
|
rate += torrent.uploadRate;
|
2021-08-15 09:41:48 +00:00
|
|
|
}
|
2017-01-24 17:53:16 +00:00
|
|
|
|
2008-10-16 03:44:54 +00:00
|
|
|
return rate;
|
|
|
|
}
|
|
|
|
|
2021-08-15 09:41:48 +00:00
|
|
|
- (CGFloat)downloadRate
|
2008-10-16 03:44:54 +00:00
|
|
|
{
|
2009-11-25 04:11:52 +00:00
|
|
|
CGFloat rate = 0.0;
|
2022-02-22 16:04:20 +00:00
|
|
|
for (Torrent* torrent in self.torrents)
|
2021-08-15 09:41:48 +00:00
|
|
|
{
|
2021-08-07 07:27:56 +00:00
|
|
|
rate += torrent.downloadRate;
|
2021-08-15 09:41:48 +00:00
|
|
|
}
|
2017-01-24 17:53:16 +00:00
|
|
|
|
2008-10-16 03:44:54 +00:00
|
|
|
return rate;
|
|
|
|
}
|
|
|
|
|
2008-07-01 01:28:19 +00:00
|
|
|
@end
|