static char* getStatusString( const tr_stat * torStat ) { const int isActive = torStat->activity != TR_STATUS_STOPPED; const int isChecking = torStat->activity == TR_STATUS_CHECK || torStat->activity == TR_STATUS_CHECK_WAIT; GString * gstr = g_string_new( NULL ); if( torStat->error ) { g_string_assign( gstr, torStat->errorString ); } else switch( torStat->activity ) { case TR_STATUS_STOPPED: case TR_STATUS_CHECK_WAIT: case TR_STATUS_CHECK: { char * pch = getShortStatusString( torStat ); g_string_assign( gstr, pch ); g_free( pch ); break; } case TR_STATUS_DOWNLOAD: g_string_append_printf( gstr, ngettext( "Downloading from %1$'d of %2$'d connected peer", "Downloading from %1$'d of %2$'d connected peers", torStat->peersConnected ), torStat->peersSendingToUs + torStat->webseedsSendingToUs, torStat->peersConnected + torStat->webseedsSendingToUs ); break; case TR_STATUS_SEED: g_string_append_printf( gstr, ngettext( "Seeding to %1$'d of %2$'d connected peer", "Seeding to %1$'d of %2$'d connected peers", torStat->peersConnected ), torStat->peersGettingFromUs, torStat->peersConnected ); break; } if( isActive && !isChecking ) { char buf[256]; getShortTransferString( torStat, buf, sizeof( buf ) ); g_string_append_printf( gstr, " - %s", buf ); } return g_string_free( gstr, FALSE ); }
static char* getShortStatusString( const tr_torrent * tor, const tr_stat * st, double uploadSpeed_KBps, double downloadSpeed_KBps ) { GString * gstr = g_string_new( NULL ); switch( st->activity ) { case TR_STATUS_STOPPED: if( st->finished ) g_string_assign( gstr, _( "Finished" ) ); else g_string_assign( gstr, _( "Paused" ) ); break; case TR_STATUS_CHECK_WAIT: g_string_assign( gstr, _( "Waiting to verify local data" ) ); break; case TR_STATUS_CHECK: g_string_append_printf( gstr, _( "Verifying local data (%.1f%% tested)" ), tr_truncd( st->recheckProgress * 100.0, 1 ) ); break; case TR_STATUS_DOWNLOAD: case TR_STATUS_SEED: { char buf[512]; if( st->activity != TR_STATUS_DOWNLOAD ) { tr_strlratio( buf, st->ratio, sizeof( buf ) ); g_string_append_printf( gstr, _( "Ratio %s" ), buf ); g_string_append( gstr, ", " ); } getShortTransferString( tor, st, uploadSpeed_KBps, downloadSpeed_KBps, buf, sizeof( buf ) ); g_string_append( gstr, buf ); break; } default: break; } return g_string_free( gstr, FALSE ); }
static void getShortStatusString( GString * gstr, const tr_torrent * tor, const tr_stat * st, double uploadSpeed_KBps, double downloadSpeed_KBps ) { switch( st->activity ) { case TR_STATUS_STOPPED: g_string_append( gstr, st->finished ? _( "Finished" ) : _( "Paused" ) ); break; case TR_STATUS_CHECK_WAIT: g_string_append( gstr, _( "Queued for verification" ) ); break; case TR_STATUS_DOWNLOAD_WAIT: g_string_append( gstr, _( "Queued for download" ) ); break; case TR_STATUS_SEED_WAIT: g_string_append( gstr, _( "Queued for seeding" ) ); break; case TR_STATUS_CHECK: g_string_append_printf( gstr, _( "Verifying local data (%.1f%% tested)" ), tr_truncd( st->recheckProgress * 100.0, 1 ) ); break; case TR_STATUS_DOWNLOAD: case TR_STATUS_SEED: { char buf[512]; if( st->activity != TR_STATUS_DOWNLOAD ) { tr_strlratio( buf, st->ratio, sizeof( buf ) ); g_string_append_printf( gstr, _( "Ratio %s" ), buf ); g_string_append( gstr, ", " ); } getShortTransferString( tor, st, uploadSpeed_KBps, downloadSpeed_KBps, buf, sizeof( buf ) ); g_string_append( gstr, buf ); break; } default: break; } }
static void getShortStatusString (GString * gstr, const tr_torrent * tor, const tr_stat * st, double uploadSpeed_KBps, double downloadSpeed_KBps) { switch (st->activity) { case TR_STATUS_STOPPED: g_string_append (gstr, st->finished ? _("Finished") : _("Paused")); break; case TR_STATUS_CHECK_WAIT: g_string_append (gstr, _("Queued for verification")); break; case TR_STATUS_DOWNLOAD_WAIT: g_string_append (gstr, _("Queued for download")); break; case TR_STATUS_SEED_WAIT: g_string_append (gstr, _("Queued for seeding")); break; case TR_STATUS_CHECK: g_string_append_printf (gstr, _("Verifying local data (%.1f%% tested)"), tr_truncd (st->recheckProgress * 100.0, 1)); break; case TR_STATUS_DOWNLOAD: case TR_STATUS_SEED: { char speedStr[64]; char ratioStr[64]; tr_strlratio (ratioStr, st->ratio, sizeof (ratioStr)); getShortTransferString (tor, st, uploadSpeed_KBps, downloadSpeed_KBps, speedStr, sizeof (speedStr)); /* download/upload speed, ratio */ g_string_append_printf (gstr, "%1$s Ratio: %2$s", speedStr, ratioStr); break; } default: break; } }
static char* getShortStatusString( const tr_stat * torStat ) { GString * gstr = g_string_new( NULL ); switch( torStat->activity ) { case TR_STATUS_STOPPED: g_string_assign( gstr, _( "Paused" ) ); break; case TR_STATUS_CHECK_WAIT: g_string_assign( gstr, _( "Waiting to verify local data" ) ); break; case TR_STATUS_CHECK: g_string_append_printf( gstr, _( "Verifying local data (%.1f%% tested)" ), torStat->recheckProgress * 100.0 ); break; case TR_STATUS_DOWNLOAD: case TR_STATUS_SEED: { char buf[128]; if( torStat->activity != TR_STATUS_DOWNLOAD ) { tr_strlratio( buf, torStat->ratio, sizeof( buf ) ); g_string_append_printf( gstr, _( "Ratio: %s" ), buf ); g_string_append( gstr, ", " ); } getShortTransferString( torStat, buf, sizeof( buf ) ); g_string_append( gstr, buf ); break; } default: break; } return g_string_free( gstr, FALSE ); }
static void getStatusString( GString * gstr, const tr_torrent * tor, const tr_stat * st, const double uploadSpeed_KBps, const double downloadSpeed_KBps ) { if( st->error ) { const char * fmt[] = { NULL, N_( "Tracker gave a warning: \"%s\"" ), N_( "Tracker gave an error: \"%s\"" ), N_( "Error: %s" ) }; g_string_append_printf( gstr, _( fmt[st->error] ), st->errorString ); } else switch( st->activity ) { case TR_STATUS_STOPPED: case TR_STATUS_CHECK_WAIT: case TR_STATUS_CHECK: case TR_STATUS_DOWNLOAD_WAIT: case TR_STATUS_SEED_WAIT: { getShortStatusString( gstr, tor, st, uploadSpeed_KBps, downloadSpeed_KBps ); break; } case TR_STATUS_DOWNLOAD: { if( tr_torrentHasMetadata( tor ) ) { g_string_append_printf( gstr, ngettext( "Downloading from %1$'d of %2$'d connected peer", "Downloading from %1$'d of %2$'d connected peers", st->webseedsSendingToUs + st->peersSendingToUs ), st->webseedsSendingToUs + st->peersSendingToUs, st->webseedsSendingToUs + st->peersConnected ); } else { g_string_append_printf( gstr, ngettext( "Downloading metadata from %1$'d peer (%2$d%% done)", "Downloading metadata from %1$'d peers (%2$d%% done)", st->peersConnected + st->peersConnected ), st->peersConnected + st->webseedsSendingToUs, (int)(100.0*st->metadataPercentComplete) ); } break; } case TR_STATUS_SEED: g_string_append_printf( gstr, ngettext( "Seeding to %1$'d of %2$'d connected peer", "Seeding to %1$'d of %2$'d connected peers", st->peersConnected ), st->peersGettingFromUs, st->peersConnected ); break; } if( ( st->activity != TR_STATUS_CHECK_WAIT ) && ( st->activity != TR_STATUS_CHECK ) && ( st->activity != TR_STATUS_DOWNLOAD_WAIT ) && ( st->activity != TR_STATUS_SEED_WAIT ) && ( st->activity != TR_STATUS_STOPPED ) ) { char buf[256]; getShortTransferString( tor, st, uploadSpeed_KBps, downloadSpeed_KBps, buf, sizeof( buf ) ); if( *buf ) g_string_append_printf( gstr, " - %s", buf ); } }
static void getStatusString(GString* gstr, tr_torrent const* tor, tr_stat const* st, double const uploadSpeed_KBps, double const downloadSpeed_KBps) { if (st->error != 0) { char const* fmt[] = { NULL, N_("Tracker gave a warning: \"%s\""), N_("Tracker gave an error: \"%s\""), N_("Error: %s") }; g_string_append_printf(gstr, _(fmt[st->error]), st->errorString); } else { switch (st->activity) { case TR_STATUS_STOPPED: case TR_STATUS_CHECK_WAIT: case TR_STATUS_CHECK: case TR_STATUS_DOWNLOAD_WAIT: case TR_STATUS_SEED_WAIT: { getShortStatusString(gstr, tor, st, uploadSpeed_KBps, downloadSpeed_KBps); break; } case TR_STATUS_DOWNLOAD: { if (!tr_torrentHasMetadata(tor)) { /* Downloading metadata from 2 peer (s)(50% done) */ g_string_append_printf(gstr, _("Downloading metadata from %1$'d %2$s (%3$d%% done)"), st->peersConnected, ngettext("peer", "peers", st->peersConnected), (int)(100.0 * st->metadataPercentComplete)); } else if (st->peersSendingToUs != 0 && st->webseedsSendingToUs != 0) { /* Downloading from 2 of 3 peer (s) and 2 webseed (s) */ g_string_append_printf(gstr, _("Downloading from %1$'d of %2$'d %3$s and %4$'d %5$s"), st->peersSendingToUs, st->peersConnected, ngettext("peer", "peers", st->peersConnected), st->webseedsSendingToUs, ngettext("web seed", "web seeds", st->webseedsSendingToUs)); } else if (st->webseedsSendingToUs != 0) { /* Downloading from 3 web seed (s) */ g_string_append_printf(gstr, _("Downloading from %1$'d %2$s"), st->webseedsSendingToUs, ngettext("web seed", "web seeds", st->webseedsSendingToUs)); } else { /* Downloading from 2 of 3 peer (s) */ g_string_append_printf(gstr, _("Downloading from %1$'d of %2$'d %3$s"), st->peersSendingToUs, st->peersConnected, ngettext("peer", "peers", st->peersConnected)); } break; } case TR_STATUS_SEED: g_string_append_printf(gstr, ngettext("Seeding to %1$'d of %2$'d connected peer", "Seeding to %1$'d of %2$'d connected peers", st->peersConnected), st->peersGettingFromUs, st->peersConnected); break; } } if (st->activity != TR_STATUS_CHECK_WAIT && st->activity != TR_STATUS_CHECK && st->activity != TR_STATUS_DOWNLOAD_WAIT && st->activity != TR_STATUS_SEED_WAIT && st->activity != TR_STATUS_STOPPED) { char buf[256]; getShortTransferString(tor, st, uploadSpeed_KBps, downloadSpeed_KBps, buf, sizeof(buf)); if (*buf != '\0') { g_string_append_printf(gstr, " - %s", buf); } } }
static char* getStatusString( const tr_torrent * tor, const tr_stat * st, const double uploadSpeed_KBps, const double downloadSpeed_KBps ) { const int isActive = st->activity != TR_STATUS_STOPPED; const int isChecking = st->activity == TR_STATUS_CHECK || st->activity == TR_STATUS_CHECK_WAIT; GString * gstr = g_string_new( NULL ); if( st->error ) { const char * fmt[] = { NULL, N_( "Tracker gave a warning: \"%s\"" ), N_( "Tracker gave an error: \"%s\"" ), N_( "Error: %s" ) }; g_string_append_printf( gstr, _( fmt[st->error] ), st->errorString ); } else switch( st->activity ) { case TR_STATUS_STOPPED: case TR_STATUS_CHECK_WAIT: case TR_STATUS_CHECK: { char * pch = getShortStatusString( tor, st, uploadSpeed_KBps, downloadSpeed_KBps ); g_string_assign( gstr, pch ); g_free( pch ); break; } case TR_STATUS_DOWNLOAD: { if( tr_torrentHasMetadata( tor ) ) { g_string_append_printf( gstr, gtr_ngettext( "Downloading from %1$'d of %2$'d connected peer", "Downloading from %1$'d of %2$'d connected peers", st->webseedsSendingToUs + st->peersSendingToUs ), st->webseedsSendingToUs + st->peersSendingToUs, st->webseedsSendingToUs + st->peersConnected ); } else { g_string_append_printf( gstr, gtr_ngettext( "Downloading metadata from %1$'d peer (%2$d%% done)", "Downloading metadata from %1$'d peers (%2$d%% done)", st->peersConnected + st->peersConnected ), st->peersConnected + st->webseedsSendingToUs, (int)(100.0*st->metadataPercentComplete) ); } break; } case TR_STATUS_SEED: g_string_append_printf( gstr, gtr_ngettext( "Seeding to %1$'d of %2$'d connected peer", "Seeding to %1$'d of %2$'d connected peers", st->peersConnected ), st->peersGettingFromUs, st->peersConnected ); break; } if( isActive && !isChecking ) { char buf[256]; getShortTransferString( tor, st, uploadSpeed_KBps, downloadSpeed_KBps, buf, sizeof( buf ) ); if( *buf ) g_string_append_printf( gstr, " - %s", buf ); } return g_string_free( gstr, FALSE ); }