diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/session-get.c | 15 | ||||
-rw-r--r-- | src/session-get.h | 3 | ||||
-rw-r--r-- | src/trg-status-bar.c | 34 |
3 files changed, 35 insertions, 17 deletions
diff --git a/src/session-get.c b/src/session-get.c index 5ae0db1..7cd84d8 100644 --- a/src/session-get.c +++ b/src/session-get.c @@ -181,6 +181,11 @@ gboolean session_get_trash_original_torrent_files(JsonObject * s) SGET_TRASH_ORIGINAL_TORRENT_FILES); } +gboolean session_get_speed_limit_alt_enabled(JsonObject * s) +{ + return json_object_get_boolean_member(s, SGET_ALT_SPEED_ENABLED); +} + gboolean session_get_speed_limit_up_enabled(JsonObject * s) { return json_object_get_boolean_member(s, SGET_SPEED_LIMIT_UP_ENABLED); @@ -196,6 +201,11 @@ gint64 session_get_peer_limit_global(JsonObject * s) return json_object_get_int_member(s, SGET_PEER_LIMIT_GLOBAL); } +gint64 session_get_alt_speed_limit_up(JsonObject * s) +{ + return json_object_get_int_member(s, SGET_ALT_SPEED_UP); +} + gint64 session_get_speed_limit_up(JsonObject * s) { return json_object_get_int_member(s, SGET_SPEED_LIMIT_UP); @@ -207,6 +217,11 @@ gboolean session_get_speed_limit_down_enabled(JsonObject * s) SGET_SPEED_LIMIT_DOWN_ENABLED); } +gint64 session_get_alt_speed_limit_down(JsonObject * s) +{ + return json_object_get_int_member(s, SGET_ALT_SPEED_DOWN); +} + gint64 session_get_speed_limit_down(JsonObject * s) { return json_object_get_int_member(s, SGET_SPEED_LIMIT_DOWN); diff --git a/src/session-get.h b/src/session-get.h index df154a1..47edb07 100644 --- a/src/session-get.h +++ b/src/session-get.h @@ -97,6 +97,7 @@ gdouble session_get_seed_ratio_limit(JsonObject * s); gboolean session_get_start_added_torrents(JsonObject * s); gboolean session_get_trash_original_torrent_files(JsonObject * s); gboolean session_get_speed_limit_up_enabled(JsonObject * s); +gboolean session_get_speed_limit_alt_enabled(JsonObject * s); gint64 session_get_speed_limit_up(JsonObject * s); gboolean session_get_speed_limit_down_enabled(JsonObject * s); gint64 session_get_speed_limit_down(JsonObject * s); @@ -108,5 +109,7 @@ gint64 session_get_rpc_version(JsonObject * s); gint64 session_get_download_dir_free_space(JsonObject * s); gboolean session_get_dht_enabled(JsonObject * s); gboolean session_get_alt_speed_enabled(JsonObject * s); +gint64 session_get_alt_speed_limit_up(JsonObject * s); +gint64 session_get_alt_speed_limit_down(JsonObject * s); #endif /* SESSION_GET_H_ */ diff --git a/src/trg-status-bar.c b/src/trg-status-bar.c index 91699cb..5fdee8c 100644 --- a/src/trg-status-bar.c +++ b/src/trg-status-bar.c @@ -158,28 +158,28 @@ void trg_status_bar_session_update(TrgStatusBar * sb, JsonObject * session) { void trg_status_bar_update(TrgStatusBar * sb, trg_torrent_model_update_stats * stats, TrgClient * client) { - TrgStatusBarPrivate *priv; - JsonObject *session; + TrgStatusBarPrivate *priv = TRG_STATUS_BAR_GET_PRIVATE(sb); + JsonObject *session = trg_client_get_session(client); + gboolean altLimits = session_get_speed_limit_alt_enabled(session); + gchar *speedText, *infoText; gint64 uplimitraw, downlimitraw; gchar downRateTotalString[32], upRateTotalString[32]; gchar uplimit[64], downlimit[64]; - priv = TRG_STATUS_BAR_GET_PRIVATE(sb); - session = trg_client_get_session(client); - - // The session should always exist otherwise this function wouldn't be called - downlimitraw = - json_object_get_boolean_member(session, - SGET_SPEED_LIMIT_DOWN_ENABLED) ? json_object_get_int_member( - session, SGET_SPEED_LIMIT_DOWN) : - -1; - - uplimitraw = - json_object_get_boolean_member(session, - SGET_SPEED_LIMIT_UP_ENABLED) ? json_object_get_int_member( - session, SGET_SPEED_LIMIT_UP) : - -1; + if (session_get_speed_limit_down_enabled(session)) + downlimitraw = session_get_speed_limit_down(session); + else if (altLimits) + downlimitraw = session_get_alt_speed_limit_down(session); + else + downlimitraw = -1; + + if (session_get_speed_limit_up_enabled(session)) + uplimitraw = session_get_speed_limit_up(session); + else if (altLimits) + uplimitraw = session_get_alt_speed_limit_up(session); + else + uplimitraw = -1; trg_strlspeed(downRateTotalString, stats->downRateTotal / disk_K); trg_strlspeed(upRateTotalString, stats->upRateTotal / disk_K); |