From 806693281fb78df9b8ed6ac7f0ba5073d98abc30 Mon Sep 17 00:00:00 2001 From: Mitchell Livingston Date: Tue, 9 Jan 2007 03:25:13 +0000 Subject: [PATCH] separate queue for seeding torrents --- macosx/Controller.m | 53 +++++++++++------- macosx/Defaults.plist | 4 ++ .../English.lproj/PrefsWindow.nib/classes.nib | 4 +- macosx/English.lproj/PrefsWindow.nib/info.nib | 6 +- .../PrefsWindow.nib/keyedobjects.nib | Bin 44986 -> 46794 bytes macosx/PrefsController.h | 3 +- macosx/PrefsController.m | 17 ++++-- macosx/Torrent.m | 1 + 8 files changed, 57 insertions(+), 31 deletions(-) diff --git a/macosx/Controller.m b/macosx/Controller.m index 1230d3b34..3675236bd 100644 --- a/macosx/Controller.m +++ b/macosx/Controller.m @@ -795,7 +795,7 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy NSEnumerator * enumerator = [fTorrents objectEnumerator]; Torrent * torrent; while ((torrent = [enumerator nextObject])) - if ([torrent waitingToStart]) + if (![torrent isActive] && [torrent waitingToStart]) [torrents addObject: torrent]; [self resumeTorrentsNoWait: torrents]; @@ -1576,14 +1576,12 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy notificationName: GROWL_SEEDING_COMPLETE iconData: nil priority: 0 isSticky: NO clickContext: nil]; } -- (void) attemptToStartAuto: (Torrent *) torrent -{ - [self updateTorrentsInQueue]; -} - - (void) updateTorrentsInQueue { - if (![fDefaults boolForKey: @"Queue"]) + BOOL download = [fDefaults boolForKey: @"Queue"], + seed = [fDefaults boolForKey: @"QueueSeed"]; + + if (!download && !seed) { NSEnumerator * enumerator = [fTorrents objectEnumerator]; Torrent * torrent; @@ -1599,21 +1597,26 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy } //determine the number of downloads needed to start - int desiredDownloadActive = [fDefaults integerForKey: @"QueueDownloadNumber"]; + int desiredDownloadActive = download ? [fDefaults integerForKey: @"QueueDownloadNumber"] : 0, + desiredSeedActive = seed ? [fDefaults integerForKey: @"QueueSeedNumber"] : 0; NSEnumerator * enumerator = [fTorrents objectEnumerator]; Torrent * torrent; while ((torrent = [enumerator nextObject])) - if ([torrent isActive] && ![torrent isSeeding] && ![torrent isError]) + if ([torrent isActive] && ![torrent isError]) { - desiredDownloadActive--; - if (desiredDownloadActive <= 0) + if (![torrent isSeeding]) + desiredDownloadActive--; + else + desiredSeedActive--; + + if (desiredDownloadActive <= 0 && desiredSeedActive <= 0) break; } //sort torrents by order value NSArray * sortedTorrents; - if ([fTorrents count] > 1 && desiredDownloadActive > 0) + if ([fTorrents count] > 1 && (desiredDownloadActive > 0 || desiredSeedActive > 0)) { NSSortDescriptor * orderDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"orderValue" ascending: YES] autorelease]; @@ -1630,18 +1633,26 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy { if (![torrent isActive] && [torrent waitingToStart]) { - if ([torrent progress] >= 1.0) - [torrent startTransfer]; - else if (desiredDownloadActive > 0) + if ([torrent progress] < 1.0) { - [torrent startTransfer]; - if ([torrent isActive]) - desiredDownloadActive--; + if (!download || desiredDownloadActive > 0) + { + [torrent startTransfer]; + if ([torrent isActive]) + desiredDownloadActive--; + [torrent update]; + } } else - continue; - - [torrent update]; + { + if (!seed || desiredSeedActive > 0) + { + [torrent startTransfer]; + if ([torrent isActive]) + desiredSeedActive--; + [torrent update]; + } + } } } diff --git a/macosx/Defaults.plist b/macosx/Defaults.plist index a8d7df4ba..23773925a 100644 --- a/macosx/Defaults.plist +++ b/macosx/Defaults.plist @@ -68,6 +68,10 @@ QueueDownloadNumber 3 + QueueSeed + + QueueSeedNumber + 3 RatioCheck RatioLimit diff --git a/macosx/English.lproj/PrefsWindow.nib/classes.nib b/macosx/English.lproj/PrefsWindow.nib/classes.nib index 40dbbb619..0d74dcaf3 100644 --- a/macosx/English.lproj/PrefsWindow.nib/classes.nib +++ b/macosx/English.lproj/PrefsWindow.nib/classes.nib @@ -18,6 +18,7 @@ setGlobalLimit = id; setNat = id; setPort = id; + setQueue = id; setQueueNumber = id; setRatioStop = id; setSound = id; @@ -42,7 +43,8 @@ fPortStatusField = NSTextField; fPortStatusImage = NSImageView; fPortStatusProgress = NSProgressIndicator; - fQueueField = NSTextField; + fQueueDownloadField = NSTextField; + fQueueSeedField = NSTextField; fRatioStopField = NSTextField; fSeedingSoundPopUp = NSPopUpButton; fSpeedLimitDownloadField = NSTextField; diff --git a/macosx/English.lproj/PrefsWindow.nib/info.nib b/macosx/English.lproj/PrefsWindow.nib/info.nib index d3690e31a..2f1848ad3 100644 --- a/macosx/English.lproj/PrefsWindow.nib/info.nib +++ b/macosx/English.lproj/PrefsWindow.nib/info.nib @@ -7,11 +7,11 @@ IBEditorPositions 153 - 57 332 563 268 0 0 1152 842 + 294 445 563 268 0 0 1152 842 28 156 256 571 290 0 0 1152 842 41 - 89 307 563 305 0 0 1152 842 + 206 430 563 305 0 0 1152 842 66 294 507 563 144 0 0 1152 842 @@ -23,7 +23,7 @@ IBOpenObjects - 66 + 41 IBSystem Version 8L127 diff --git a/macosx/English.lproj/PrefsWindow.nib/keyedobjects.nib b/macosx/English.lproj/PrefsWindow.nib/keyedobjects.nib index 199d8b51647d114986197621a9112094bd02d4e0..4d8c3809f441e5dd10ffedda1c3b28b25a1430c5 100644 GIT binary patch literal 46794 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 P&KEY~f4~3lb4c<(^OgG& literal 44986 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 J|5xAf{{z`GpI-m~ diff --git a/macosx/PrefsController.h b/macosx/PrefsController.h index 80baa06ac..c9fe035b7 100644 --- a/macosx/PrefsController.h +++ b/macosx/PrefsController.h @@ -39,7 +39,7 @@ IBOutlet NSPopUpButton * fFolderPopUp, * fIncompleteFolderPopUp, * fImportFolderPopUp, * fDownloadSoundPopUp, * fSeedingSoundPopUp; - IBOutlet NSTextField * fRatioStopField, * fQueueField; + IBOutlet NSTextField * fRatioStopField, * fQueueDownloadField, * fQueueSeedField; NSArray * fSounds; @@ -64,6 +64,7 @@ - (void) setSound: (id) sender; - (void) setUpdate: (id) sender; +- (void) setQueue: (id) sender; - (void) setQueueNumber: (id) sender; - (void) setDownloadLocation: (id) sender; diff --git a/macosx/PrefsController.m b/macosx/PrefsController.m index 948fd5d15..839308035 100644 --- a/macosx/PrefsController.m +++ b/macosx/PrefsController.m @@ -156,7 +156,8 @@ selector: @selector(updateNatStatus) userInfo: nil repeats: YES]; //set queue values - [fQueueField setIntValue: [fDefaults integerForKey: @"QueueDownloadNumber"]]; + [fQueueDownloadField setIntValue: [fDefaults integerForKey: @"QueueDownloadNumber"]]; + [fQueueSeedField setIntValue: [fDefaults integerForKey: @"QueueSeedNumber"]]; //set update check NSString * updateCheck = [fDefaults stringForKey: @"UpdateCheck"]; @@ -450,24 +451,30 @@ [fUpdater scheduleCheckWithInterval: seconds]; } +- (void) setQueue: (id) sender +{ + [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateQueue" object: self]; +} + - (void) setQueueNumber: (id) sender { + BOOL download = sender == fQueueDownloadField; + int limit = [sender intValue]; if (![[sender stringValue] isEqualToString: [NSString stringWithFormat: @"%d", limit]] || limit < 0) { NSBeep(); - [sender setIntValue: [fDefaults integerForKey: @"QueueDownloadNumber"]]; + [sender setIntValue: [fDefaults integerForKey: download ? @"QueueDownloadNumber" : @"QueueSeedNumber"]]; return; } - [fDefaults setInteger: limit forKey: @"QueueDownloadNumber"]; + [fDefaults setInteger: limit forKey: download ? @"QueueDownloadNumber" : @"QueueSeedNumber"]; - [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateQueue" object: self]; + [self setQueue: nil]; } - (void) setDownloadLocation: (id) sender { - //download folder switch ([fFolderPopUp indexOfSelectedItem]) { case DOWNLOAD_FOLDER: diff --git a/macosx/Torrent.m b/macosx/Torrent.m index 88f666313..5936998ab 100644 --- a/macosx/Torrent.m +++ b/macosx/Torrent.m @@ -292,6 +292,7 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 case TR_STATUS_PAUSE: if (fFinishedSeeding) tempString = NSLocalizedString(@"Seeding complete", "Torrent -> status string"); + #warning differentiate seed waiting else if (fWaitToStart) tempString = [NSLocalizedString(@"Waiting to start", "Torrent -> status string") stringByAppendingEllipsis]; else