Changeset 1327


Ignore:
Timestamp:
Jan 9, 2007, 3:25:13 AM (16 years ago)
Author:
livings124
Message:

separate queue for seeding torrents

Location:
trunk/macosx
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/macosx/Controller.m

    r1326 r1327  
    796796    Torrent * torrent;
    797797    while ((torrent = [enumerator nextObject]))
    798         if ([torrent waitingToStart])
     798        if (![torrent isActive] && [torrent waitingToStart])
    799799            [torrents addObject: torrent];
    800800   
     
    15771577}
    15781578
    1579 - (void) attemptToStartAuto: (Torrent *) torrent
    1580 {
    1581     [self updateTorrentsInQueue];
    1582 }
    1583 
    15841579- (void) updateTorrentsInQueue
    15851580{
    1586     if (![fDefaults boolForKey: @"Queue"])
     1581    BOOL download = [fDefaults boolForKey: @"Queue"],
     1582        seed = [fDefaults boolForKey: @"QueueSeed"];
     1583   
     1584    if (!download && !seed)
    15871585    {
    15881586        NSEnumerator * enumerator = [fTorrents objectEnumerator];
     
    16001598   
    16011599    //determine the number of downloads needed to start
    1602     int desiredDownloadActive = [fDefaults integerForKey: @"QueueDownloadNumber"];
     1600    int desiredDownloadActive = download ? [fDefaults integerForKey: @"QueueDownloadNumber"] : 0,
     1601        desiredSeedActive = seed ? [fDefaults integerForKey: @"QueueSeedNumber"] : 0;
    16031602           
    16041603    NSEnumerator * enumerator = [fTorrents objectEnumerator];
    16051604    Torrent * torrent;
    16061605    while ((torrent = [enumerator nextObject]))
    1607         if ([torrent isActive] && ![torrent isSeeding] && ![torrent isError])
    1608         {
    1609             desiredDownloadActive--;
    1610             if (desiredDownloadActive <= 0)
     1606        if ([torrent isActive] && ![torrent isError])
     1607        {
     1608            if (![torrent isSeeding])
     1609                desiredDownloadActive--;
     1610            else
     1611                desiredSeedActive--;
     1612           
     1613            if (desiredDownloadActive <= 0 && desiredSeedActive <= 0)
    16111614                break;
    16121615        }
     
    16141617    //sort torrents by order value
    16151618    NSArray * sortedTorrents;
    1616     if ([fTorrents count] > 1 && desiredDownloadActive > 0)
     1619    if ([fTorrents count] > 1 && (desiredDownloadActive > 0 || desiredSeedActive > 0))
    16171620    {
    16181621        NSSortDescriptor * orderDescriptor = [[[NSSortDescriptor alloc] initWithKey:
     
    16311634        if (![torrent isActive] && [torrent waitingToStart])
    16321635        {
    1633             if ([torrent progress] >= 1.0)
    1634                 [torrent startTransfer];
    1635             else if (desiredDownloadActive > 0)
     1636            if ([torrent progress] < 1.0)
    16361637            {
    1637                 [torrent startTransfer];
    1638                 if ([torrent isActive])
    1639                     desiredDownloadActive--;
     1638                if (!download || desiredDownloadActive > 0)
     1639                {
     1640                    [torrent startTransfer];
     1641                    if ([torrent isActive])
     1642                        desiredDownloadActive--;
     1643                    [torrent update];
     1644                }
    16401645            }
    16411646            else
    1642                 continue;
    1643            
    1644             [torrent update];
     1647            {
     1648                if (!seed || desiredSeedActive > 0)
     1649                {
     1650                    [torrent startTransfer];
     1651                    if ([torrent isActive])
     1652                        desiredSeedActive--;
     1653                    [torrent update];
     1654                }
     1655            }
    16451656        }
    16461657    }
  • trunk/macosx/Defaults.plist

    r1317 r1327  
    6969        <key>QueueDownloadNumber</key>
    7070        <integer>3</integer>
     71    <key>QueueSeed</key>
     72        <false/>
     73    <key>QueueSeedNumber</key>
     74        <integer>3</integer>
    7175        <key>RatioCheck</key>
    7276        <false/>
  • trunk/macosx/English.lproj/PrefsWindow.nib/classes.nib

    r1317 r1327  
    1919                setNat = id;
    2020                setPort = id;
     21                setQueue = id;
    2122                setQueueNumber = id;
    2223                setRatioStop = id;
     
    4344                fPortStatusImage = NSImageView;
    4445                fPortStatusProgress = NSProgressIndicator;
    45                 fQueueField = NSTextField;
     46                fQueueDownloadField = NSTextField;
     47                fQueueSeedField = NSTextField;
    4648                fRatioStopField = NSTextField;
    4749                fSeedingSoundPopUp = NSPopUpButton;
  • trunk/macosx/English.lproj/PrefsWindow.nib/info.nib

    r1317 r1327  
    88        <dict>
    99                <key>153</key>
    10                 <string>57 332 563 268 0 0 1152 842 </string>
     10                <string>294 445 563 268 0 0 1152 842 </string>
    1111                <key>28</key>
    1212                <string>156 256 571 290 0 0 1152 842 </string>
    1313                <key>41</key>
    14                 <string>89 307 563 305 0 0 1152 842 </string>
     14                <string>206 430 563 305 0 0 1152 842 </string>
    1515                <key>66</key>
    1616                <string>294 507 563 144 0 0 1152 842 </string>
     
    2424        <key>IBOpenObjects</key>
    2525        <array>
    26                 <integer>66</integer>
     26                <integer>41</integer>
    2727        </array>
    2828        <key>IBSystem Version</key>
  • trunk/macosx/PrefsController.h

    r1317 r1327  
    4040    IBOutlet NSPopUpButton  * fFolderPopUp, * fIncompleteFolderPopUp, * fImportFolderPopUp,
    4141                            * fDownloadSoundPopUp, * fSeedingSoundPopUp;
    42     IBOutlet NSTextField    * fRatioStopField, * fQueueField;
     42    IBOutlet NSTextField    * fRatioStopField, * fQueueDownloadField, * fQueueSeedField;
    4343   
    4444    NSArray                 * fSounds;
     
    6565- (void) setUpdate:         (id) sender;
    6666
     67- (void) setQueue:          (id) sender;
    6768- (void) setQueueNumber:    (id) sender;
    6869
  • trunk/macosx/PrefsController.m

    r1323 r1327  
    157157   
    158158    //set queue values
    159     [fQueueField setIntValue: [fDefaults integerForKey: @"QueueDownloadNumber"]];
     159    [fQueueDownloadField setIntValue: [fDefaults integerForKey: @"QueueDownloadNumber"]];
     160    [fQueueSeedField setIntValue: [fDefaults integerForKey: @"QueueSeedNumber"]];
    160161   
    161162    //set update check
     
    451452}
    452453
     454- (void) setQueue: (id) sender
     455{
     456    [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateQueue" object: self];
     457}
     458
    453459- (void) setQueueNumber: (id) sender
    454460{
     461    BOOL download = sender == fQueueDownloadField;
     462   
    455463    int limit = [sender intValue];
    456464    if (![[sender stringValue] isEqualToString: [NSString stringWithFormat: @"%d", limit]] || limit < 0)
    457465    {
    458466        NSBeep();
    459         [sender setIntValue: [fDefaults integerForKey: @"QueueDownloadNumber"]];
    460         return;
    461     }
    462    
    463     [fDefaults setInteger: limit forKey: @"QueueDownloadNumber"];
    464    
    465     [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateQueue" object: self];
     467        [sender setIntValue: [fDefaults integerForKey: download ? @"QueueDownloadNumber" : @"QueueSeedNumber"]];
     468        return;
     469    }
     470   
     471    [fDefaults setInteger: limit forKey: download ? @"QueueDownloadNumber" : @"QueueSeedNumber"];
     472   
     473    [self setQueue: nil];
    466474}
    467475
    468476- (void) setDownloadLocation: (id) sender
    469477{
    470     //download folder
    471478    switch ([fFolderPopUp indexOfSelectedItem])
    472479    {
  • trunk/macosx/Torrent.m

    r1323 r1327  
    293293            if (fFinishedSeeding)
    294294                tempString = NSLocalizedString(@"Seeding complete", "Torrent -> status string");
     295            #warning differentiate seed waiting
    295296            else if (fWaitToStart)
    296297                tempString = [NSLocalizedString(@"Waiting to start", "Torrent -> status string") stringByAppendingEllipsis];
Note: See TracChangeset for help on using the changeset viewer.