mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-04-16 04:28:53 -04:00
UI: Use radio buttons for FLV track selection
This commit is contained in:
committed by
jp9000
parent
768a58771a
commit
bab3391ce4
@@ -381,6 +381,12 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
|
||||
HookWidget(ui->advOutRecTrack4, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->advOutRecTrack5, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->advOutRecTrack6, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->flvTrack1, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->flvTrack2, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->flvTrack3, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->flvTrack4, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->flvTrack5, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->flvTrack6, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->advOutFFType, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->advOutFFRecPath, EDIT_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->advOutFFNoSpace, CHECK_CHANGED, OUTPUTS_CHANGED);
|
||||
@@ -1692,6 +1698,7 @@ void OBSBasicSettings::LoadAdvOutputRecordingSettings()
|
||||
const char *muxCustom =
|
||||
config_get_string(main->Config(), "AdvOut", "RecMuxerCustom");
|
||||
int tracks = config_get_int(main->Config(), "AdvOut", "RecTracks");
|
||||
int flvTrack = config_get_int(main->Config(), "AdvOut", "FLVTrack");
|
||||
|
||||
int typeIndex = (astrcmpi(type, "FFmpeg") == 0) ? 1 : 0;
|
||||
ui->advOutRecType->setCurrentIndex(typeIndex);
|
||||
@@ -1710,6 +1717,30 @@ void OBSBasicSettings::LoadAdvOutputRecordingSettings()
|
||||
ui->advOutRecTrack4->setChecked(tracks & (1 << 3));
|
||||
ui->advOutRecTrack5->setChecked(tracks & (1 << 4));
|
||||
ui->advOutRecTrack6->setChecked(tracks & (1 << 5));
|
||||
|
||||
switch (flvTrack) {
|
||||
case 1:
|
||||
ui->flvTrack1->setChecked(true);
|
||||
break;
|
||||
case 2:
|
||||
ui->flvTrack2->setChecked(true);
|
||||
break;
|
||||
case 3:
|
||||
ui->flvTrack3->setChecked(true);
|
||||
break;
|
||||
case 4:
|
||||
ui->flvTrack4->setChecked(true);
|
||||
break;
|
||||
case 5:
|
||||
ui->flvTrack5->setChecked(true);
|
||||
break;
|
||||
case 6:
|
||||
ui->flvTrack6->setChecked(true);
|
||||
break;
|
||||
default:
|
||||
ui->flvTrack1->setChecked(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void OBSBasicSettings::LoadAdvOutputRecordingEncoderProperties()
|
||||
@@ -3171,6 +3202,8 @@ void OBSBasicSettings::SaveOutputSettings()
|
||||
(ui->advOutRecTrack5->isChecked() ? (1 << 4) : 0) |
|
||||
(ui->advOutRecTrack6->isChecked() ? (1 << 5) : 0));
|
||||
|
||||
config_set_int(main->Config(), "AdvOut", "FLVTrack", CurrentFLVTrack());
|
||||
|
||||
config_set_bool(main->Config(), "AdvOut", "FFOutputToFile",
|
||||
ui->advOutFFType->currentIndex() == 0 ? true : false);
|
||||
SaveEdit(ui->advOutFFRecPath, "AdvOut", "FFFilePath");
|
||||
@@ -3953,13 +3986,6 @@ void OBSBasicSettings::AdvOutRecCheckWarnings()
|
||||
Checked(ui->advOutRecTrack3) + Checked(ui->advOutRecTrack4) +
|
||||
Checked(ui->advOutRecTrack5) + Checked(ui->advOutRecTrack6);
|
||||
|
||||
if (tracks == 0) {
|
||||
errorMsg = QTStr("OutputWarnings.NoTracksSelected");
|
||||
|
||||
} else if (tracks > 1) {
|
||||
warningMsg = QTStr("OutputWarnings.MultiTrackRecording");
|
||||
}
|
||||
|
||||
bool useStreamEncoder = ui->advOutRecEncoder->currentIndex() == 0;
|
||||
if (useStreamEncoder) {
|
||||
if (!warningMsg.isEmpty())
|
||||
@@ -3967,6 +3993,15 @@ void OBSBasicSettings::AdvOutRecCheckWarnings()
|
||||
warningMsg += QTStr("OutputWarnings.CannotPause");
|
||||
}
|
||||
|
||||
if (ui->advOutRecFormat->currentText().compare("flv") == 0) {
|
||||
ui->advRecTrackWidget->setCurrentWidget(ui->flvTracks);
|
||||
} else {
|
||||
ui->advRecTrackWidget->setCurrentWidget(ui->recTracks);
|
||||
|
||||
if (tracks == 0)
|
||||
errorMsg = QTStr("OutputWarnings.NoTracksSelected");
|
||||
}
|
||||
|
||||
if (ui->advOutRecFormat->currentText().compare("mp4") == 0 ||
|
||||
ui->advOutRecFormat->currentText().compare("mov") == 0) {
|
||||
if (!warningMsg.isEmpty())
|
||||
@@ -4609,3 +4644,21 @@ void OBSBasicSettings::SetAdvancedIcon(const QIcon &icon)
|
||||
{
|
||||
ui->listWidget->item(6)->setIcon(icon);
|
||||
}
|
||||
|
||||
int OBSBasicSettings::CurrentFLVTrack()
|
||||
{
|
||||
if (ui->flvTrack1->isChecked())
|
||||
return 1;
|
||||
else if (ui->flvTrack2->isChecked())
|
||||
return 2;
|
||||
else if (ui->flvTrack3->isChecked())
|
||||
return 3;
|
||||
else if (ui->flvTrack4->isChecked())
|
||||
return 4;
|
||||
else if (ui->flvTrack5->isChecked())
|
||||
return 5;
|
||||
else if (ui->flvTrack6->isChecked())
|
||||
return 6;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user