mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-10-22 18:56:08 +03:00
Add send_buffer_watermark send_buffer_low_watermark
send_buffer_watermark_factor knobs
This commit is contained in:
parent
08a0fef18a
commit
1ac4cdcf4d
4 changed files with 84 additions and 1 deletions
|
@ -265,6 +265,9 @@ Session::Session(QObject *parent)
|
||||||
, m_useOSCache(BITTORRENT_SESSION_KEY("UseOSCache"), true)
|
, m_useOSCache(BITTORRENT_SESSION_KEY("UseOSCache"), true)
|
||||||
, m_guidedReadCacheEnabled(BITTORRENT_SESSION_KEY("GuidedReadCache"), true)
|
, m_guidedReadCacheEnabled(BITTORRENT_SESSION_KEY("GuidedReadCache"), true)
|
||||||
, m_isSuggestMode(BITTORRENT_SESSION_KEY("SuggestMode"), false)
|
, m_isSuggestMode(BITTORRENT_SESSION_KEY("SuggestMode"), false)
|
||||||
|
, m_sendBufferWatermark(BITTORRENT_SESSION_KEY("SendBufferWatermark"), 500)
|
||||||
|
, m_sendBufferLowWatermark(BITTORRENT_SESSION_KEY("SendBufferLowWatermark"), 10)
|
||||||
|
, m_sendBufferWatermarkFactor(BITTORRENT_SESSION_KEY("SendBufferWatermarkFactor"), 50)
|
||||||
, m_isAnonymousModeEnabled(BITTORRENT_SESSION_KEY("AnonymousModeEnabled"), false)
|
, m_isAnonymousModeEnabled(BITTORRENT_SESSION_KEY("AnonymousModeEnabled"), false)
|
||||||
, m_isQueueingEnabled(BITTORRENT_SESSION_KEY("QueueingSystemEnabled"), true)
|
, m_isQueueingEnabled(BITTORRENT_SESSION_KEY("QueueingSystemEnabled"), true)
|
||||||
, m_maxActiveDownloads(BITTORRENT_SESSION_KEY("MaxActiveDownloads"), 3, lowerLimited(-1))
|
, m_maxActiveDownloads(BITTORRENT_SESSION_KEY("MaxActiveDownloads"), 3, lowerLimited(-1))
|
||||||
|
@ -1279,6 +1282,10 @@ void Session::configure(libtorrent::settings_pack &settingsPack)
|
||||||
settingsPack.set_bool(libt::settings_pack::guided_read_cache, isGuidedReadCacheEnabled());
|
settingsPack.set_bool(libt::settings_pack::guided_read_cache, isGuidedReadCacheEnabled());
|
||||||
settingsPack.set_bool(libt::settings_pack::suggest_mode, isSuggestModeEnabled());
|
settingsPack.set_bool(libt::settings_pack::suggest_mode, isSuggestModeEnabled());
|
||||||
|
|
||||||
|
settingsPack.set_int(libt::settings_pack::send_buffer_watermark, sendBufferWatermark() * 1024);
|
||||||
|
settingsPack.set_int(libt::settings_pack::send_buffer_low_watermark, sendBufferLowWatermark() * 1024);
|
||||||
|
settingsPack.set_int(libt::settings_pack::send_buffer_watermark_factor, sendBufferWatermarkFactor());
|
||||||
|
|
||||||
settingsPack.set_bool(libt::settings_pack::anonymous_mode, isAnonymousModeEnabled());
|
settingsPack.set_bool(libt::settings_pack::anonymous_mode, isAnonymousModeEnabled());
|
||||||
|
|
||||||
// Queueing System
|
// Queueing System
|
||||||
|
@ -1521,6 +1528,10 @@ void Session::configure(libtorrent::session_settings &sessionSettings)
|
||||||
sessionSettings.guided_read_cache = isGuidedReadCacheEnabled();
|
sessionSettings.guided_read_cache = isGuidedReadCacheEnabled();
|
||||||
sessionSettings.suggest_mode = isSuggestModeEnabled();
|
sessionSettings.suggest_mode = isSuggestModeEnabled();
|
||||||
|
|
||||||
|
sessionSettings.send_buffer_watermark = sendBufferWatermark() * 1024;
|
||||||
|
sessionSettings.send_buffer_low_watermark = sendBufferLowWatermark() * 1024;
|
||||||
|
sessionSettings.send_buffer_watermark_factor = sendBufferWatermarkFactor();
|
||||||
|
|
||||||
sessionSettings.anonymous_mode = isAnonymousModeEnabled();
|
sessionSettings.anonymous_mode = isAnonymousModeEnabled();
|
||||||
|
|
||||||
// Queueing System
|
// Queueing System
|
||||||
|
@ -2949,6 +2960,45 @@ void Session::setSuggestMode(bool mode)
|
||||||
configureDeferred();
|
configureDeferred();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Session::sendBufferWatermark() const
|
||||||
|
{
|
||||||
|
return m_sendBufferWatermark;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Session::setSendBufferWatermark(int value)
|
||||||
|
{
|
||||||
|
if (value == m_sendBufferWatermark) return;
|
||||||
|
|
||||||
|
m_sendBufferWatermark = value;
|
||||||
|
configureDeferred();
|
||||||
|
}
|
||||||
|
|
||||||
|
int Session::sendBufferLowWatermark() const
|
||||||
|
{
|
||||||
|
return m_sendBufferLowWatermark;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Session::setSendBufferLowWatermark(int value)
|
||||||
|
{
|
||||||
|
if (value == m_sendBufferLowWatermark) return;
|
||||||
|
|
||||||
|
m_sendBufferLowWatermark = value;
|
||||||
|
configureDeferred();
|
||||||
|
}
|
||||||
|
|
||||||
|
int Session::sendBufferWatermarkFactor() const
|
||||||
|
{
|
||||||
|
return m_sendBufferWatermarkFactor;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Session::setSendBufferWatermarkFactor(int value)
|
||||||
|
{
|
||||||
|
if (value == m_sendBufferWatermarkFactor) return;
|
||||||
|
|
||||||
|
m_sendBufferWatermarkFactor = value;
|
||||||
|
configureDeferred();
|
||||||
|
}
|
||||||
|
|
||||||
bool Session::isAnonymousModeEnabled() const
|
bool Session::isAnonymousModeEnabled() const
|
||||||
{
|
{
|
||||||
return m_isAnonymousModeEnabled;
|
return m_isAnonymousModeEnabled;
|
||||||
|
|
|
@ -341,6 +341,12 @@ namespace BitTorrent
|
||||||
void setGuidedReadCacheEnabled(bool enabled);
|
void setGuidedReadCacheEnabled(bool enabled);
|
||||||
bool isSuggestModeEnabled() const;
|
bool isSuggestModeEnabled() const;
|
||||||
void setSuggestMode(bool mode);
|
void setSuggestMode(bool mode);
|
||||||
|
int sendBufferWatermark() const;
|
||||||
|
void setSendBufferWatermark(int value);
|
||||||
|
int sendBufferLowWatermark() const;
|
||||||
|
void setSendBufferLowWatermark(int value);
|
||||||
|
int sendBufferWatermarkFactor() const;
|
||||||
|
void setSendBufferWatermarkFactor(int value);
|
||||||
bool isAnonymousModeEnabled() const;
|
bool isAnonymousModeEnabled() const;
|
||||||
void setAnonymousModeEnabled(bool enabled);
|
void setAnonymousModeEnabled(bool enabled);
|
||||||
bool isQueueingSystemEnabled() const;
|
bool isQueueingSystemEnabled() const;
|
||||||
|
@ -590,6 +596,9 @@ namespace BitTorrent
|
||||||
CachedSettingValue<bool> m_useOSCache;
|
CachedSettingValue<bool> m_useOSCache;
|
||||||
CachedSettingValue<bool> m_guidedReadCacheEnabled;
|
CachedSettingValue<bool> m_guidedReadCacheEnabled;
|
||||||
CachedSettingValue<bool> m_isSuggestMode;
|
CachedSettingValue<bool> m_isSuggestMode;
|
||||||
|
CachedSettingValue<int> m_sendBufferWatermark;
|
||||||
|
CachedSettingValue<int> m_sendBufferLowWatermark;
|
||||||
|
CachedSettingValue<int> m_sendBufferWatermarkFactor;
|
||||||
CachedSettingValue<bool> m_isAnonymousModeEnabled;
|
CachedSettingValue<bool> m_isAnonymousModeEnabled;
|
||||||
CachedSettingValue<bool> m_isQueueingEnabled;
|
CachedSettingValue<bool> m_isQueueingEnabled;
|
||||||
CachedSettingValue<int> m_maxActiveDownloads;
|
CachedSettingValue<int> m_maxActiveDownloads;
|
||||||
|
|
|
@ -80,6 +80,9 @@ enum AdvSettingsRows
|
||||||
OS_CACHE,
|
OS_CACHE,
|
||||||
GUIDED_READ_CACHE,
|
GUIDED_READ_CACHE,
|
||||||
SUGGEST_MODE,
|
SUGGEST_MODE,
|
||||||
|
SEND_BUF_WATERMARK,
|
||||||
|
SEND_BUF_LOW_WATERMARK,
|
||||||
|
SEND_BUF_WATERMARK_FACTOR,
|
||||||
// ports
|
// ports
|
||||||
MAX_HALF_OPEN,
|
MAX_HALF_OPEN,
|
||||||
OUTGOING_PORT_MIN,
|
OUTGOING_PORT_MIN,
|
||||||
|
@ -137,6 +140,10 @@ void AdvancedSettings::saveAdvancedSettings()
|
||||||
session->setGuidedReadCacheEnabled(cbGuidedReadCache.isChecked());
|
session->setGuidedReadCacheEnabled(cbGuidedReadCache.isChecked());
|
||||||
// Suggest mode
|
// Suggest mode
|
||||||
session->setSuggestMode(cbSuggestMode.isChecked());
|
session->setSuggestMode(cbSuggestMode.isChecked());
|
||||||
|
// Send buffer watermark
|
||||||
|
session->setSendBufferWatermark(spinSendBufferWatermark.value());
|
||||||
|
session->setSendBufferLowWatermark(spinSendBufferLowWatermark.value());
|
||||||
|
session->setSendBufferWatermarkFactor(spinSendBufferWatermarkFactor.value());
|
||||||
// Save resume data interval
|
// Save resume data interval
|
||||||
session->setSaveResumeDataInterval(spin_save_resume_data_interval.value());
|
session->setSaveResumeDataInterval(spin_save_resume_data_interval.value());
|
||||||
// Outgoing ports
|
// Outgoing ports
|
||||||
|
@ -303,6 +310,22 @@ void AdvancedSettings::loadAdvancedSettings()
|
||||||
// Suggest mode
|
// Suggest mode
|
||||||
cbSuggestMode.setChecked(session->isSuggestModeEnabled());
|
cbSuggestMode.setChecked(session->isSuggestModeEnabled());
|
||||||
addRow(SUGGEST_MODE, tr("Send upload piece suggestions"), &cbSuggestMode);
|
addRow(SUGGEST_MODE, tr("Send upload piece suggestions"), &cbSuggestMode);
|
||||||
|
// Send buffer watermark
|
||||||
|
spinSendBufferWatermark.setMinimum(1);
|
||||||
|
spinSendBufferWatermark.setMaximum(INT_MAX);
|
||||||
|
spinSendBufferWatermark.setSuffix(tr(" KiB"));
|
||||||
|
spinSendBufferWatermark.setValue(session->sendBufferWatermark());
|
||||||
|
addRow(SEND_BUF_WATERMARK, tr("Send buffer watermark"), &spinSendBufferWatermark);
|
||||||
|
spinSendBufferLowWatermark.setMinimum(1);
|
||||||
|
spinSendBufferLowWatermark.setMaximum(INT_MAX);
|
||||||
|
spinSendBufferLowWatermark.setSuffix(tr(" KiB"));
|
||||||
|
spinSendBufferLowWatermark.setValue(session->sendBufferLowWatermark());
|
||||||
|
addRow(SEND_BUF_LOW_WATERMARK, tr("Send buffer low watermark"), &spinSendBufferLowWatermark);
|
||||||
|
spinSendBufferWatermarkFactor.setMinimum(1);
|
||||||
|
spinSendBufferWatermarkFactor.setMaximum(INT_MAX);
|
||||||
|
spinSendBufferWatermarkFactor.setSuffix(" %");
|
||||||
|
spinSendBufferWatermarkFactor.setValue(session->sendBufferWatermarkFactor());
|
||||||
|
addRow(SEND_BUF_WATERMARK_FACTOR, tr("Send buffer watermark factor"), &spinSendBufferWatermarkFactor);
|
||||||
// Save resume data interval
|
// Save resume data interval
|
||||||
spin_save_resume_data_interval.setMinimum(1);
|
spin_save_resume_data_interval.setMinimum(1);
|
||||||
spin_save_resume_data_interval.setMaximum(1440);
|
spin_save_resume_data_interval.setMaximum(1440);
|
||||||
|
|
|
@ -75,7 +75,8 @@ private:
|
||||||
template <typename T> void addRow(int row, const QString &rowText, T* widget);
|
template <typename T> void addRow(int row, const QString &rowText, T* widget);
|
||||||
|
|
||||||
QLabel labelQbtLink, labelLibtorrentLink;
|
QLabel labelQbtLink, labelLibtorrentLink;
|
||||||
QSpinBox spin_cache, spin_save_resume_data_interval, outgoing_ports_min, outgoing_ports_max, spin_list_refresh, spin_maxhalfopen, spin_tracker_port, spin_cache_ttl;
|
QSpinBox spin_cache, spin_save_resume_data_interval, outgoing_ports_min, outgoing_ports_max, spin_list_refresh, spin_maxhalfopen, spin_tracker_port, spin_cache_ttl,
|
||||||
|
spinSendBufferWatermark, spinSendBufferLowWatermark, spinSendBufferWatermarkFactor;
|
||||||
QCheckBox cb_os_cache, cb_recheck_completed, cb_resolve_countries, cb_resolve_hosts, cb_super_seeding,
|
QCheckBox cb_os_cache, cb_recheck_completed, cb_resolve_countries, cb_resolve_hosts, cb_super_seeding,
|
||||||
cb_program_notifications, cb_torrent_added_notifications, cb_tracker_favicon, cb_tracker_status,
|
cb_program_notifications, cb_torrent_added_notifications, cb_tracker_favicon, cb_tracker_status,
|
||||||
cb_confirm_torrent_recheck, cb_confirm_remove_all_tags, cb_listen_ipv6, cb_announce_all_trackers, cbGuidedReadCache, cbMultiConnectionsPerIp,
|
cb_confirm_torrent_recheck, cb_confirm_remove_all_tags, cb_listen_ipv6, cb_announce_all_trackers, cbGuidedReadCache, cbMultiConnectionsPerIp,
|
||||||
|
|
Loading…
Reference in a new issue