UI: Create output before calling start stream event

Allows modifying the output OBS_FRONTEND_EVENT_STREAMING_STARTING.
This commit is contained in:
jp9000
2020-09-16 22:20:02 -07:00
parent c0f19b95d5
commit 2963b3b8ed
4 changed files with 40 additions and 21 deletions

View File

@@ -5496,6 +5496,23 @@ void OBSBasic::OpenSceneFilters()
#define VIRTUAL_CAM_STOP \
"==== Virtual Camera Stop ==========================================="
void OBSBasic::DisplayStreamStartError()
{
QString message = !outputHandler->lastError.empty()
? QTStr(outputHandler->lastError.c_str())
: QTStr("Output.StartFailedGeneric");
ui->streamButton->setText(QTStr("Basic.Main.StartStreaming"));
ui->streamButton->setEnabled(true);
ui->streamButton->setChecked(false);
if (sysTrayStream) {
sysTrayStream->setText(ui->streamButton->text());
sysTrayStream->setEnabled(true);
}
QMessageBox::critical(this, QTStr("Output.StartStreamFailed"), message);
}
void OBSBasic::StartStreaming()
{
if (outputHandler->StreamingActive())
@@ -5503,6 +5520,11 @@ void OBSBasic::StartStreaming()
if (disableOutputsRef)
return;
if (!outputHandler->SetupStreaming(service)) {
DisplayStreamStartError();
return;
}
if (api)
api->on_event(OBS_FRONTEND_EVENT_STREAMING_STARTING);
@@ -5518,21 +5540,7 @@ void OBSBasic::StartStreaming()
}
if (!outputHandler->StartStreaming(service)) {
QString message =
!outputHandler->lastError.empty()
? QTStr(outputHandler->lastError.c_str())
: QTStr("Output.StartFailedGeneric");
ui->streamButton->setText(QTStr("Basic.Main.StartStreaming"));
ui->streamButton->setEnabled(true);
ui->streamButton->setChecked(false);
if (sysTrayStream) {
sysTrayStream->setText(ui->streamButton->text());
sysTrayStream->setEnabled(true);
}
QMessageBox::critical(this, QTStr("Output.StartStreamFailed"),
message);
DisplayStreamStartError();
return;
}