Update recording logic to better reflect ConfigFile settings
ConfigFile doesn't distinguish between non-existent keys and keys with an empty (string) value; therefore we default to treating an empty SavePath as default save path (and warn the user when setting an empty SavePath) Recording is now always enabled (unless previewing)
This commit is contained in:
parent
1fd11a3c1b
commit
e541c5207d
@ -1327,7 +1327,7 @@ void OBS::RefreshStreamButtons(bool disable)
|
||||
int networkMode = AppConfig->GetInt(TEXT("Publish"), TEXT("Mode"), 2);
|
||||
bRecordingOnly = (networkMode == 1);
|
||||
bool canStream = networkMode == 0 && !bTestStream;
|
||||
canRecord = (bRecordingOnly || AppConfig->GetString(L"Publish", L"SavePath").IsValid()) && !bTestStream;
|
||||
canRecord = !bTestStream;
|
||||
bool canTest = !bRecording && (!bStreaming || bTestStream);
|
||||
|
||||
EnableWindow(GetDlgItem(hwndMain, ID_STARTSTOP), !disable && canStream);
|
||||
|
@ -69,6 +69,22 @@ void SettingsPublish::DestroyPane()
|
||||
|
||||
void SettingsPublish::ApplySettings()
|
||||
{
|
||||
String strSavePath = GetEditText(GetDlgItem(hwnd, IDC_SAVEPATH));
|
||||
String defaultPath = OSGetDefaultVideoSavePath(L"\\.flv");
|
||||
if (!strSavePath.IsValid() && defaultPath.IsValid())
|
||||
{
|
||||
String text = Str("Settings.Publish.InvalidSavePath");
|
||||
text.FindReplace(L"$1", defaultPath);
|
||||
if (OBSMessageBox(nullptr, text, Str("Settings.Publish.InvalidSavePathCaption"), MB_ICONEXCLAMATION | MB_OKCANCEL) != IDOK)
|
||||
{
|
||||
SetAbortApplySettings(true);
|
||||
return;
|
||||
}
|
||||
SetWindowText(GetDlgItem(hwnd, IDC_SAVEPATH), defaultPath.Array());
|
||||
}
|
||||
|
||||
//------------------------------------------
|
||||
|
||||
int curSel = (int)SendMessage(GetDlgItem(hwnd, IDC_MODE), CB_GETCURSEL, 0, 0);
|
||||
if(curSel != CB_ERR)
|
||||
AppConfig->SetInt(TEXT("Publish"), TEXT("Mode"), curSel);
|
||||
@ -126,12 +142,8 @@ void SettingsPublish::ApplySettings()
|
||||
|
||||
//------------------------------------------
|
||||
|
||||
String strSavePath = GetEditText(GetDlgItem(hwnd, IDC_SAVEPATH));
|
||||
BOOL bSaveToFile = SendMessage(GetDlgItem(hwnd, IDC_SAVETOFILE), BM_GETCHECK, 0, 0) != BST_UNCHECKED;
|
||||
|
||||
if(!strSavePath.IsValid())
|
||||
bSaveToFile = FALSE;
|
||||
|
||||
AppConfig->SetInt (TEXT("Publish"), TEXT("SaveToFile"), bSaveToFile);
|
||||
AppConfig->SetString(TEXT("Publish"), TEXT("SavePath"), strSavePath);
|
||||
|
||||
|
@ -247,6 +247,8 @@ Settings.Publish.StopStreamHotkey="Stop Stream Hotkey:"
|
||||
Settings.Publish.StartRecordingHotkey="Start Recording Hotkey:"
|
||||
Settings.Publish.StopRecordingHotkey="Stop Recording Hotkey:"
|
||||
Settings.Publish.Username="User Name (if any):"
|
||||
Settings.Publish.InvalidSavePath="The File Path is invalid, the default Path '$1' will be used instead"
|
||||
Settings.Publish.InvalidSavePathCaption="Invalid File Path"
|
||||
|
||||
Settings.Publish.Mode.FileOnly="File Output Only"
|
||||
Settings.Publish.Mode.LiveStream="Live Stream"
|
||||
|
Loading…
x
Reference in New Issue
Block a user