Changeset 2444


Ignore:
Timestamp:
Jul 20, 2007, 8:33:59 AM (14 years ago)
Author:
charles
Message:

finish splitting the rate control from one state into two states as requested by BMW

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/cli/transmissioncli.c

    r2400 r2444  
    231231
    232232    tr_setBindPort( h, bindPort );
    233     tr_setGlobalUploadLimit( h, uploadLimit );
    234     tr_setGlobalDownloadLimit( h, downloadLimit );
     233 
     234    tr_setGlobalSpeedLimit   ( h, TR_UP,   uploadLimit );
     235    tr_setUseGlobalSpeedLimit( h, TR_UP,   uploadLimit > 0 );
     236    tr_setGlobalSpeedLimit   ( h, TR_DOWN, downloadLimit );
     237    tr_setUseGlobalSpeedLimit( h, TR_DOWN, downloadLimit > 0 );
    235238
    236239    tr_natTraversalEnable( h, natTraversal );
  • trunk/daemon/torrents.c

    r2413 r2444  
    424424    assert( !gl_exiting );
    425425    gl_uplimit = uplimit;
    426     tr_setGlobalUploadLimit( gl_handle, uplimit );
     426    tr_setGlobalSpeedLimit   ( gl_handle, TR_UP, uplimit );
     427    tr_setUseGlobalSpeedLimit( gl_handle, TR_UP, uplimit > 0 );
    427428    savestate();
    428429}
     
    440441    assert( !gl_exiting );
    441442    gl_downlimit = downlimit;
    442     tr_setGlobalDownloadLimit( gl_handle, downlimit );
     443    tr_setGlobalSpeedLimit   ( gl_handle, TR_DOWN, downlimit );
     444    tr_setUseGlobalSpeedLimit( gl_handle, TR_DOWN, downlimit > 0 );
    443445    savestate();
    444446}
     
    721723        gl_uplimit = num->val.i;
    722724    }
    723     tr_setGlobalUploadLimit( gl_handle, gl_uplimit );
     725    tr_setGlobalSpeedLimit( gl_handle, TR_UP, gl_uplimit );
     726    tr_setUseGlobalSpeedLimit( gl_handle, TR_UP, gl_uplimit > 0 );
    724727
    725728    num = tr_bencDictFind( &top, "download-limit" );
     
    728731        gl_downlimit = num->val.i;
    729732    }
    730     tr_setGlobalDownloadLimit( gl_handle, gl_downlimit );
     733    tr_setGlobalSpeedLimit( gl_handle, TR_DOWN, gl_downlimit );
     734    tr_setUseGlobalSpeedLimit( gl_handle, TR_DOWN, gl_downlimit > 0 );
    731735
    732736    str = tr_bencDictFind( &top, "default-directory" );
  • trunk/gtk/main.c

    r2422 r2444  
    755755    struct cbdata * cbdata;
    756756    tr_handle_t   * tr;
    757     int             num;
    758757    gboolean        boolval;
    759758
     
    768767
    769768        case PREF_ID_USEDOWNLIMIT:
     769            tr_setUseGlobalSpeedLimit( tr, TR_DOWN,
     770                tr_prefs_get_bool_with_default( PREF_ID_USEDOWNLIMIT ) );
     771            break;
     772
    770773        case PREF_ID_DOWNLIMIT:
    771             num = -1;
    772             if( tr_prefs_get_bool_with_default( PREF_ID_USEDOWNLIMIT ) )
    773             {
    774                 num = tr_prefs_get_int_with_default( PREF_ID_DOWNLIMIT );
    775             }
    776             tr_setGlobalDownloadLimit( tr, num );
     774            tr_setGlobalSpeedLimit( tr, TR_DOWN,
     775                tr_prefs_get_int_with_default( PREF_ID_DOWNLIMIT ) );
    777776            break;
    778777
    779778        case PREF_ID_USEUPLIMIT:
     779            tr_setUseGlobalSpeedLimit( tr, TR_UP,
     780                tr_prefs_get_bool_with_default( PREF_ID_USEUPLIMIT ) );
     781            break;
     782
    780783        case PREF_ID_UPLIMIT:
    781             num = -1;
    782             if( tr_prefs_get_bool_with_default( PREF_ID_USEUPLIMIT ) )
    783             {
    784                 num = tr_prefs_get_int_with_default( PREF_ID_UPLIMIT );
    785             }
    786             tr_setGlobalUploadLimit( tr, num );
     784            tr_setGlobalSpeedLimit( tr, TR_UP,
     785                tr_prefs_get_int_with_default( PREF_ID_UPLIMIT ) );
    787786            break;
    788787
  • trunk/libtransmission/internal.h

    r2441 r2444  
    231231    int                isPortSet;
    232232
     233    char               useUploadLimit;
    233234    tr_ratecontrol_t * upload;
     235    char               useDownloadLimit;
    234236    tr_ratecontrol_t * download;
    235237
  • trunk/libtransmission/peer.c

    r2441 r2444  
    380380            int canDL;
    381381            switch( tor->downloadLimitMode ) {
    382                 case TR_SPEEDLIMIT_GLOBAL: canDL = tr_rcCanTransfer( tor->handle->download ); break;
    383                 case TR_SPEEDLIMIT_SINGLE: canDL = tr_rcCanTransfer( tor->download ); break;
    384                 default: canDL = TRUE; /* unlimited */
     382                case TR_SPEEDLIMIT_GLOBAL:
     383                    canDL = !tor->handle->useDownloadLimit ||
     384                             tr_rcCanTransfer( tor->handle->download ); break;
     385                case TR_SPEEDLIMIT_SINGLE:
     386                    canDL = tr_rcCanTransfer( tor->download ); break;
     387                default: /* unlimited */
     388                    canDL = TRUE;
    385389            }
    386390            if( !canDL )
     
    587591        if( SWIFT_ENABLED && !isSeeding && (peer->credit<0) )
    588592            canUL = FALSE;
    589         else switch( tor->uploadLimitMode ) {
    590             case TR_SPEEDLIMIT_GLOBAL: canUL = tr_rcCanTransfer( tor->handle->upload ); break;
    591             case TR_SPEEDLIMIT_SINGLE: canUL = tr_rcCanTransfer( tor->upload ); break;
    592             default: canUL = TRUE; /* unlimited */
     593        else switch( tor->uploadLimitMode )
     594        {
     595            case TR_SPEEDLIMIT_GLOBAL:
     596                canUL = !tor->handle->useUploadLimit ||
     597                         tr_rcCanTransfer( tor->handle->upload ); break;
     598
     599            case TR_SPEEDLIMIT_SINGLE:
     600                canUL = tr_rcCanTransfer( tor->upload ); break;
     601
     602            default: /* unlimited */
     603                canUL = TRUE;
    593604        }
    594605        if( !canUL )
  • trunk/libtransmission/transmission.c

    r2378 r2444  
    137137}
    138138
    139 void tr_setGlobalUploadLimit( tr_handle_t * h, int limit )
    140 {
    141     tr_rcSetLimit( h->upload, limit );
    142     tr_sharedSetLimit( h->shared, limit );
    143 }
    144 
    145 void tr_setGlobalDownloadLimit( tr_handle_t * h, int limit )
    146 {
    147     tr_rcSetLimit( h->download, limit );
    148 }
     139/***
     140****
     141***/
     142
     143void
     144tr_setUseGlobalSpeedLimit( tr_handle_t  * h,
     145                           int            up_or_down,
     146                           int            use_flag )
     147{
     148    char * ch = up_or_down==TR_UP ? &h->useUploadLimit
     149                                  : &h->useDownloadLimit;
     150    *ch = use_flag;
     151}
     152
     153void
     154tr_setGlobalSpeedLimit( tr_handle_t  * h,
     155                        int            up_or_down,
     156                        int            KiB_sec )
     157{
     158    if( up_or_down == TR_DOWN )
     159        tr_rcSetLimit( h->download, KiB_sec );
     160    else {
     161        tr_rcSetLimit( h->upload, KiB_sec );
     162        tr_sharedSetLimit( h->shared, KiB_sec );
     163    }
     164}
     165
     166void
     167tr_getGlobalSpeedLimit( tr_handle_t  * h,
     168                        int            up_or_down,
     169                        int          * setme_enabled,
     170                        int          * setme_KiBsec )
     171{
     172    if( setme_enabled != NULL )
     173       *setme_enabled = up_or_down==TR_UP ? h->useUploadLimit
     174                                          : h->useDownloadLimit;
     175    if( setme_KiBsec != NULL )
     176       *setme_KiBsec = tr_rcGetLimit( up_or_down==TR_UP ? h->upload
     177                                                        : h->download );
     178}
     179
    149180
    150181void tr_torrentRates( tr_handle_t * h, float * dl, float * ul )
  • trunk/libtransmission/transmission.h

    r2441 r2444  
    166166tr_handle_status_t * tr_handleStatus( tr_handle_t * );
    167167
    168 /***********************************************************************
    169  * tr_setGlobalUploadLimit
    170  ***********************************************************************
    171  * Sets the total upload rate limit in KB/s
    172  **********************************************************************/
    173 void tr_setGlobalUploadLimit( tr_handle_t *, int );
    174 
    175 /***********************************************************************
    176  * tr_setGlobalDownloadLimit
    177  ***********************************************************************
    178  * Sets the total download rate limit in KB/s
    179  **********************************************************************/
    180 void tr_setGlobalDownloadLimit( tr_handle_t *, int );
    181168
    182169/***********************************************************************
     
    201188*** Speed Limits
    202189**/
     190
     191enum { TR_UP, TR_DOWN };
    203192
    204193typedef enum
     
    210199tr_speedlimit_t;
    211200
    212 enum { TR_UP, TR_DOWN };
    213 
    214201void tr_torrentSetSpeedMode( tr_torrent_t     * tor,
    215202                             int                up_or_down,
     
    225212int tr_torrentGetSpeedLimit( const tr_torrent_t  * tor,
    226213                             int                   up_or_down );
     214
     215void tr_setUseGlobalSpeedLimit( tr_handle_t * handle,
     216                                int           up_or_down,
     217                                int           use_flag );
     218
     219void tr_setGlobalSpeedLimit( tr_handle_t * handle,
     220                             int           up_or_down,
     221                             int           global_KiB_sec );
     222
     223void tr_getGlobalSpeedLimit( tr_handle_t * handle,
     224                             int           up_or_down,
     225                             int         * setme_is_enabled,
     226                             int         * setme_KiBsec );
    227227
    228228/***********************************************************************
Note: See TracChangeset for help on using the changeset viewer.