const int eta = torStat->eta;
GString * gstr = g_string_new( str );
g_string_append( gstr, " - " );
- if( eta < 0 )
+ if( eta == TR_ETA_NOT_AVAIL )
+ g_string_append( gstr, _( "Not available" ) );
+ else if( eta == TR_ETA_UNKNOWN )
g_string_append( gstr, _( "Stalled" ) );
else {
char timestr[128];
break;
case TR_STATUS_DOWNLOAD:
- if( eta < 0 )
- top = g_strdup_printf( _("Stalled (%.1f%%)"), prog );
+
+ if( eta == TR_ETA_NOT_AVAIL )
+ top = g_strdup_printf( _("Not available (%.1f%%)" ), prog );
+ else if( eta == TR_ETA_UNKNOWN )
+ top = g_strdup_printf( _( "Stalled (%.1f%%)" ), prog );
else {
char timestr[128];
tr_strltime( timestr, eta, sizeof( timestr ) );
s->startDate = tor->startDate;
s->activityDate = tor->activityDate;
- s->eta = s->rateDownload < 0.1
- ? -1.0f
- : (s->leftUntilDone / s->rateDownload / 1024.0);
-
s->corruptEver = tor->corruptCur + tor->corruptPrev;
s->downloadedEver = tor->downloadedCur + tor->downloadedPrev;
s->uploadedEver = tor->uploadedCur + tor->uploadedPrev;
tr_bitfieldFree( availablePieces );
}
+ if( s->desiredAvailable != s->leftUntilDone )
+ s->eta = TR_ETA_NOT_AVAIL;
+ else if( s->rateDownload < 0.1 )
+ s->eta = TR_ETA_UNKNOWN;
+ else
+ s->eta = s->leftUntilDone / (s->rateDownload / 1024.0);
+
s->ratio = tr_getRatio( s->uploadedEver,
s->downloadedEver ? s->downloadedEver : s->haveValid );
tr_errno error;
char errorString[128];
+ /* [0..1] */
float recheckProgress;
+
+ /* [0..1] */
float percentComplete;
+
+ /* [0..1] */
float percentDone;
+
+ /* KiB/s */
float rateDownload;
+
+ /* KiB/s */
float rateUpload;
- int eta;
+ #define TR_ETA_NOT_AVAIL -1
+ #define TR_ETA_UNKNOWN -2
+ /* seconds */
+ int eta;
+
int peersKnown;
int peersConnected;
int peersFrom[TR_PEER_FROM__MAX];