From a4f8d18948ee30450cd972479e8b00c512262ea0 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Thu, 10 Sep 2015 19:10:40 -0700 Subject: [PATCH] UI: Move reconnect options to advanced settings This is mostly just to remove the unnecessary clutter from the output sections. The reconnect settings are generally rarely modified by users as it is. --- obs/forms/OBSBasicSettings.ui | 517 ++++++++++++------------------ obs/obs-app.cpp | 51 ++- obs/window-basic-main-outputs.cpp | 12 +- obs/window-basic-main.cpp | 13 +- obs/window-basic-settings.cpp | 46 +-- 5 files changed, 288 insertions(+), 351 deletions(-) diff --git a/obs/forms/OBSBasicSettings.ui b/obs/forms/OBSBasicSettings.ui index 779e78d05..4463506e4 100644 --- a/obs/forms/OBSBasicSettings.ui +++ b/obs/forms/OBSBasicSettings.ui @@ -430,6 +430,42 @@ + + + + Basic.Settings.Output.Format + + + + + + + + flv + + + + + mp4 + + + + + mov + + + + + mkv + + + + + ts + + + + @@ -520,47 +556,6 @@ - - - Basic.Settings.Output.Reconnect - - - true - - - - - - - Basic.Settings.Output.RetryDelay - - - - - - - 30 - - - - - - - Basic.Settings.Output.MaxRetries - - - - - - - 1 - - - 10000 - - - - Basic.Settings.Output.Advanced @@ -570,7 +565,7 @@ - + Basic.Settings.Output.UseCBR @@ -580,7 +575,7 @@ - + true @@ -590,7 +585,7 @@ - + @@ -634,7 +629,7 @@ - + @@ -650,7 +645,7 @@ - + false @@ -666,52 +661,16 @@ - + Basic.Settings.Output.CustomEncoderSettings - + - - - - Basic.Settings.Output.Format - - - - - - - - flv - - - - - mp4 - - - - - mov - - - - - mkv - - - - - ts - - - - @@ -792,18 +751,8 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - Basic.Settings.Output.Reconnect - - - true - - - - + 170 @@ -811,7 +760,7 @@ - Basic.Settings.Output.RetryDelay + Basic.Settings.Output.Adv.AudioTrack Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -819,73 +768,6 @@ - - - 30 - - - - - - - Basic.Settings.Output.MaxRetries - - - - - - - 1 - - - 10000 - - - - - - - Basic.Settings.Output.Encoder - - - - - - - - - - - 0 - 0 - - - - Qt::RightToLeft - - - Basic.Settings.Output.Adv.Rescale - - - - - - - false - - - true - - - - - - - Basic.Settings.Output.Adv.AudioTrack - - - - @@ -940,7 +822,17 @@ - + + + + Basic.Settings.Output.Encoder + + + + + + + Basic.Settings.Output.Adv.ApplyServiceSettings @@ -950,6 +842,32 @@ + + + + + 0 + 0 + + + + Qt::RightToLeft + + + Basic.Settings.Output.Adv.Rescale + + + + + + + false + + + true + + + @@ -2882,6 +2800,59 @@ + + + + Basic.Settings.Output.Reconnect + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + Basic.Settings.Output.RetryDelay + + + + + + + Enable + + + true + + + + + + + 30 + + + + + + + Basic.Settings.Output.MaxRetries + + + + + + + 1 + + + 10000 + + + + + + @@ -2982,40 +2953,8 @@ 38 - 401 - 79 - - - - - simpleOutReconnect - toggled(bool) - simpleOutRetryDelay - setEnabled(bool) - - - 875 - 254 - - - 875 - 291 - - - - - simpleOutReconnect - toggled(bool) - simpleOutMaxRetries - setEnabled(bool) - - - 875 - 254 - - - 875 - 328 + 250 + 39 @@ -3179,75 +3118,75 @@ - - advOutReconnect - toggled(bool) - label_27 - setEnabled(bool) - - - 864 - 141 - - - 427 - 178 - - - - - advOutReconnect - toggled(bool) - advOutRetryDelay - setEnabled(bool) - - - 864 - 141 - - - 864 - 178 - - - - - advOutReconnect - toggled(bool) - label_26 - setEnabled(bool) - - - 864 - 141 - - - 427 - 215 - - - - - advOutReconnect - toggled(bool) - advOutMaxRetries - setEnabled(bool) - - - 864 - 141 - - - 864 - 215 - - - advOutUseRescale toggled(bool) advOutRescale setEnabled(bool) + + + 864 + 141 + + + 427 + 178 + + + + + advOutRecUseRescale + toggled(bool) + advOutRecRescale + setEnabled(bool) + + + 864 + 141 + + + 864 + 178 + + + + + advOutFFType + currentIndexChanged(int) + stackedWidget_2 + setCurrentIndex(int) + + + 864 + 141 + + + 427 + 215 + + + + + streamDelayEnable + toggled(bool) + label_56 + setEnabled(bool) + + + 864 + 141 + + + 864 + 215 + + + + + streamDelayEnable + toggled(bool) + streamDelayPreserve + setEnabled(bool) 427 @@ -3260,9 +3199,9 @@ - advOutRecUseRescale + streamDelayEnable toggled(bool) - advOutRecRescale + widget_12 setEnabled(bool) @@ -3276,7 +3215,7 @@ - simpleOutReconnect + reconnectEnable toggled(bool) label_17 setEnabled(bool) @@ -3292,30 +3231,14 @@ - simpleOutReconnect + reconnectEnable toggled(bool) - label_22 + reconnectRetryDelay setEnabled(bool) - 875 - 254 - - - 466 - 328 - - - - - advOutFFType - currentIndexChanged(int) - stackedWidget_2 - setCurrentIndex(int) - - - 250 - 89 + 516 + 411 250 @@ -3324,9 +3247,9 @@ - streamDelayEnable + reconnectEnable toggled(bool) - label_56 + label_22 setEnabled(bool) @@ -3340,25 +3263,9 @@ - streamDelayEnable + reconnectEnable toggled(bool) - streamDelayPreserve - setEnabled(bool) - - - 578 - 275 - - - 593 - 339 - - - - - streamDelayEnable - toggled(bool) - widget_12 + reconnectMaxRetries setEnabled(bool) diff --git a/obs/obs-app.cpp b/obs/obs-app.cpp index f2f112aca..75b08b02a 100644 --- a/obs/obs-app.cpp +++ b/obs/obs-app.cpp @@ -1317,6 +1317,54 @@ static bool update_ffmpeg_output(ConfigFile &config) return true; } +static bool move_reconnect_settings(ConfigFile &config, const char *sec) +{ + bool changed = false; + + if (config_has_user_value(config, sec, "Reconnect")) { + bool reconnect = config_get_bool(config, sec, "Reconnect"); + config_set_bool(config, "Output", "Reconnect", reconnect); + changed = true; + } + if (config_has_user_value(config, sec, "RetryDelay")) { + int delay = (int)config_get_uint(config, sec, "RetryDelay"); + config_set_uint(config, "Output", "RetryDelay", delay); + changed = true; + } + if (config_has_user_value(config, sec, "MaxRetries")) { + int retries = (int)config_get_uint(config, sec, "MaxRetries"); + config_set_uint(config, "Output", "MaxRetries", retries); + changed = true; + } + + return changed; +} + +static bool update_reconnect(ConfigFile &config) +{ + if (!config_has_user_value(config, "Output", "Mode")) + return false; + + const char *mode = config_get_string(config, "Output", "Mode"); + if (!mode) + return false; + + const char *section = (strcmp(mode, "Advanced") == 0) ? + "AdvOut" : "SimpleOutput"; + + if (move_reconnect_settings(config, section)) { + config_remove_value(config, "SimpleOutput", "Reconnect"); + config_remove_value(config, "SimpleOutput", "RetryDelay"); + config_remove_value(config, "SimpleOutput", "MaxRetries"); + config_remove_value(config, "AdvOut", "Reconnect"); + config_remove_value(config, "AdvOut", "RetryDelay"); + config_remove_value(config, "AdvOut", "MaxRetries"); + return true; + } + + return false; +} + static void upgrade_settings(void) { char path[512]; @@ -1344,7 +1392,8 @@ static void upgrade_settings(void) ret = config.Open(path, CONFIG_OPEN_EXISTING); if (ret == CONFIG_SUCCESS) { - if (update_ffmpeg_output(config)) { + if (update_ffmpeg_output(config) || + update_reconnect(config)) { config_save_safe(config, "tmp", nullptr); } diff --git a/obs/window-basic-main-outputs.cpp b/obs/window-basic-main-outputs.cpp index 0f71fac1b..025029915 100644 --- a/obs/window-basic-main-outputs.cpp +++ b/obs/window-basic-main-outputs.cpp @@ -237,11 +237,11 @@ bool SimpleOutput::StartStreaming(obs_service_t *service) obs_output_set_audio_encoder(streamOutput, aac, 0); obs_output_set_service(streamOutput, service); - bool reconnect = config_get_bool(main->Config(), "SimpleOutput", + bool reconnect = config_get_bool(main->Config(), "Output", "Reconnect"); - int retryDelay = config_get_uint(main->Config(), "SimpleOutput", + int retryDelay = config_get_uint(main->Config(), "Output", "RetryDelay"); - int maxRetries = config_get_uint(main->Config(), "SimpleOutput", + int maxRetries = config_get_uint(main->Config(), "Output", "MaxRetries"); bool useDelay = config_get_bool(main->Config(), "Output", "DelayEnable"); @@ -735,9 +735,9 @@ bool AdvancedOutput::StartStreaming(obs_service_t *service) obs_output_set_service(streamOutput, service); - bool reconnect = config_get_bool(main->Config(), "AdvOut", "Reconnect"); - int retryDelay = config_get_int(main->Config(), "AdvOut", "RetryDelay"); - int maxRetries = config_get_int(main->Config(), "AdvOut", "MaxRetries"); + bool reconnect = config_get_bool(main->Config(), "Output", "Reconnect"); + int retryDelay = config_get_int(main->Config(), "Output", "RetryDelay"); + int maxRetries = config_get_int(main->Config(), "Output", "MaxRetries"); bool useDelay = config_get_bool(main->Config(), "Output", "DelayEnable"); int delaySec = config_get_int(main->Config(), "Output", diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp index d7bc3daea..f7cba708e 100644 --- a/obs/window-basic-main.cpp +++ b/obs/window-basic-main.cpp @@ -635,12 +635,6 @@ bool OBSBasic::InitBasicConfigDefaults() config_set_default_uint (basicConfig, "SimpleOutput", "VBitrate", 2500); config_set_default_uint (basicConfig, "SimpleOutput", "ABitrate", 160); - config_set_default_bool (basicConfig, "SimpleOutput", "Reconnect", - true); - config_set_default_uint (basicConfig, "SimpleOutput", "RetryDelay", - 10); - config_set_default_uint (basicConfig, "SimpleOutput", "MaxRetries", - 20); config_set_default_bool (basicConfig, "SimpleOutput", "UseAdvanced", false); config_set_default_bool (basicConfig, "SimpleOutput", "UseCBR", true); @@ -650,9 +644,6 @@ bool OBSBasic::InitBasicConfigDefaults() config_set_default_string(basicConfig, "SimpleOutput", "Preset", "veryfast"); - config_set_default_bool (basicConfig, "AdvOut", "Reconnect", true); - config_set_default_uint (basicConfig, "AdvOut", "RetryDelay", 10); - config_set_default_uint (basicConfig, "AdvOut", "MaxRetries", 20); config_set_default_bool (basicConfig, "AdvOut", "ApplyServiceSettings", true); config_set_default_bool (basicConfig, "AdvOut", "UseRescale", false); @@ -693,6 +684,10 @@ bool OBSBasic::InitBasicConfigDefaults() config_set_default_uint (basicConfig, "Output", "DelaySec", 20); config_set_default_bool (basicConfig, "Output", "DelayPreserve", true); + config_set_default_bool (basicConfig, "Output", "Reconnect", true); + config_set_default_uint (basicConfig, "Output", "RetryDelay", 10); + config_set_default_uint (basicConfig, "Output", "MaxRetries", 20); + int i = 0; uint32_t scale_cx = cx; uint32_t scale_cy = cy; diff --git a/obs/window-basic-settings.cpp b/obs/window-basic-settings.cpp index 7191dd2aa..1f8524ab6 100644 --- a/obs/window-basic-settings.cpp +++ b/obs/window-basic-settings.cpp @@ -269,9 +269,6 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) HookWidget(ui->simpleOutRecFormat, COMBO_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->simpleOutputVBitrate, SCROLL_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->simpleOutputABitrate, COMBO_CHANGED, OUTPUTS_CHANGED); - HookWidget(ui->simpleOutReconnect, CHECK_CHANGED, OUTPUTS_CHANGED); - HookWidget(ui->simpleOutRetryDelay, SCROLL_CHANGED, OUTPUTS_CHANGED); - HookWidget(ui->simpleOutMaxRetries, SCROLL_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->simpleOutAdvanced, CHECK_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->simpleOutUseCBR, CHECK_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->simpleOutPreset, COMBO_CHANGED, OUTPUTS_CHANGED); @@ -279,9 +276,6 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) HookWidget(ui->simpleOutPreset, COMBO_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->simpleOutVBufsize, SCROLL_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->simpleOutCustom, EDIT_CHANGED, OUTPUTS_CHANGED); - HookWidget(ui->advOutReconnect, CHECK_CHANGED, OUTPUTS_CHANGED); - HookWidget(ui->advOutRetryDelay, SCROLL_CHANGED, OUTPUTS_CHANGED); - HookWidget(ui->advOutMaxRetries, SCROLL_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->advOutEncoder, COMBO_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->advOutUseRescale, CHECK_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->advOutRescale, CBEDIT_CHANGED, OUTPUTS_CHANGED); @@ -349,6 +343,9 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) HookWidget(ui->streamDelayEnable, CHECK_CHANGED, ADV_CHANGED); HookWidget(ui->streamDelaySec, SCROLL_CHANGED, ADV_CHANGED); HookWidget(ui->streamDelayPreserve, CHECK_CHANGED, ADV_CHANGED); + HookWidget(ui->reconnectEnable, CHECK_CHANGED, ADV_CHANGED); + HookWidget(ui->reconnectRetryDelay, SCROLL_CHANGED, ADV_CHANGED); + HookWidget(ui->reconnectMaxRetries, SCROLL_CHANGED, ADV_CHANGED); #ifdef _WIN32 uint32_t winVer = GetWindowsVersion(); @@ -1008,12 +1005,6 @@ void OBSBasicSettings::LoadSimpleOutputSettings() "VBufsize"); int audioBitrate = config_get_uint(main->Config(), "SimpleOutput", "ABitrate"); - bool reconnect = config_get_bool(main->Config(), "SimpleOutput", - "Reconnect"); - int retryDelay = config_get_uint(main->Config(), "SimpleOutput", - "RetryDelay"); - int maxRetries = config_get_uint(main->Config(), "SimpleOutput", - "MaxRetries"); bool advanced = config_get_bool(main->Config(), "SimpleOutput", "UseAdvanced"); bool useCBR = config_get_bool(main->Config(), "SimpleOutput", @@ -1037,9 +1028,6 @@ void OBSBasicSettings::LoadSimpleOutputSettings() SetComboByName(ui->simpleOutputABitrate, std::to_string(audioBitrate).c_str()); - ui->simpleOutReconnect->setChecked(reconnect); - ui->simpleOutRetryDelay->setValue(retryDelay); - ui->simpleOutMaxRetries->setValue(maxRetries); ui->simpleOutAdvanced->setChecked(advanced); ui->simpleOutUseCBR->setChecked(useCBR); ui->simpleOutPreset->setCurrentText(preset); @@ -1048,12 +1036,6 @@ void OBSBasicSettings::LoadSimpleOutputSettings() void OBSBasicSettings::LoadAdvOutputStreamingSettings() { - bool reconnect = config_get_bool(main->Config(), "AdvOut", - "Reconnect"); - int retryDelay = config_get_int(main->Config(), "AdvOut", - "RetryDelay"); - int maxRetries = config_get_int(main->Config(), "AdvOut", - "MaxRetries"); bool rescale = config_get_bool(main->Config(), "AdvOut", "Rescale"); const char *rescaleRes = config_get_string(main->Config(), "AdvOut", @@ -1063,9 +1045,6 @@ void OBSBasicSettings::LoadAdvOutputStreamingSettings() bool applyServiceSettings = config_get_bool(main->Config(), "AdvOut", "ApplyServiceSettings"); - ui->advOutReconnect->setChecked(reconnect); - ui->advOutRetryDelay->setValue(retryDelay); - ui->advOutMaxRetries->setValue(maxRetries); ui->advOutApplyService->setChecked(applyServiceSettings); ui->advOutUseRescale->setChecked(rescale); ui->advOutRescale->setEnabled(rescale); @@ -1579,9 +1558,19 @@ void OBSBasicSettings::LoadAdvancedSettings() "DelaySec"); bool preserveDelay = config_get_bool(main->Config(), "Output", "DelayPreserve"); + bool reconnect = config_get_bool(main->Config(), "Output", + "Reconnect"); + int retryDelay = config_get_int(main->Config(), "Output", + "RetryDelay"); + int maxRetries = config_get_int(main->Config(), "Output", + "MaxRetries"); loading = true; + ui->reconnectEnable->setChecked(reconnect); + ui->reconnectRetryDelay->setValue(retryDelay); + ui->reconnectMaxRetries->setValue(maxRetries); + ui->streamDelaySec->setValue(delaySec); ui->streamDelayPreserve->setChecked(preserveDelay); ui->streamDelayEnable->setChecked(enableDelay); @@ -1992,6 +1981,9 @@ void OBSBasicSettings::SaveAdvancedSettings() SaveCheckBox(ui->streamDelayEnable, "Output", "DelayEnable"); SaveSpinBox(ui->streamDelaySec, "Output", "DelaySec"); SaveCheckBox(ui->streamDelayPreserve, "Output", "DelayPreserve"); + SaveCheckBox(ui->reconnectEnable, "Output", "Reconnect"); + SaveSpinBox(ui->reconnectRetryDelay, "Output", "RetryDelay"); + SaveSpinBox(ui->reconnectMaxRetries, "Output", "MaxRetries"); } static inline const char *OutputModeFromIdx(int idx) @@ -2093,9 +2085,6 @@ void OBSBasicSettings::SaveOutputSettings() SaveCombo(ui->simpleOutputABitrate, "SimpleOutput", "ABitrate"); SaveEdit(ui->simpleOutputPath, "SimpleOutput", "FilePath"); SaveCombo(ui->simpleOutRecFormat, "SimpleOutput", "RecFormat"); - SaveCheckBox(ui->simpleOutReconnect, "SimpleOutput", "Reconnect"); - SaveSpinBox(ui->simpleOutRetryDelay, "SimpleOutput", "RetryDelay"); - SaveSpinBox(ui->simpleOutMaxRetries, "SimpleOutput", "MaxRetries"); SaveCheckBox(ui->simpleOutAdvanced, "SimpleOutput", "UseAdvanced"); SaveCheckBox(ui->simpleOutUseCBR, "SimpleOutput", "UseCBR"); SaveCheckBox(ui->simpleOutUseBufsize, "SimpleOutput", "UseBufsize"); @@ -2105,9 +2094,6 @@ void OBSBasicSettings::SaveOutputSettings() if (ui->simpleOutUseBufsize->isChecked()) SaveSpinBox(ui->simpleOutVBufsize, "SimpleOutput", "VBufsize"); - SaveCheckBox(ui->advOutReconnect, "AdvOut", "Reconnect"); - SaveSpinBox(ui->advOutRetryDelay, "AdvOut", "RetryDelay"); - SaveSpinBox(ui->advOutMaxRetries, "AdvOut", "MaxRetries"); SaveCheckBox(ui->advOutApplyService, "AdvOut", "ApplyServiceSettings"); SaveComboData(ui->advOutEncoder, "AdvOut", "Encoder"); SaveCheckBox(ui->advOutUseRescale, "AdvOut", "Rescale");