summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/session-get.c15
-rw-r--r--src/session-get.h3
-rw-r--r--src/trg-status-bar.c34
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);