#include "streamaddrsettingsdlg.h" #include "ui_streamaddrsettingsdlg.h" StreamAddrSettingsDlg::StreamAddrSettingsDlg(QWidget *parent) : QDialog(parent), ui(new Ui::StreamAddrSettingsDlg) { ui->setupUi(this); this->setWindowTitle(QStringLiteral("视频流设置")); // 飞机类型 QStringList uavTypeList; uavTypeList.append("FP98"); uavTypeList.append("FP985"); uavTypeList.append("FP981C"); uavTypeList.append("FP981CS"); uavTypeList.append("FP981A"); ui->uavTypeCombox->insertItems(0, uavTypeList); // ui->pushStreamIPCombox->insertItem(0, QStringLiteral("航天飞鹏服务器")); ui->pushStreamIPCombox->insertItem(1, QStringLiteral("航天飞鹏阿里云服务器")); ui->pushStreamIPCombox->insertItem(2, QStringLiteral("自定义")); } StreamAddrSettingsDlg::~StreamAddrSettingsDlg() { delete ui; } void StreamAddrSettingsDlg::showEvent(QShowEvent *event) { initSavedParms(); } void StreamAddrSettingsDlg::on_pushStreamIPCombox_currentIndexChanged( int index) { if (2 == index) { ui->pushStreamIPCombox->setEditable(true); } else { ui->pushStreamIPCombox->setEditable(false); } } // 保存设置 void StreamAddrSettingsDlg::on_saveBtn_clicked() { if (!g_networkSettingInfo) { this->close(); return; } saveParms(); this->close(); } void StreamAddrSettingsDlg::initSavedParms() { if (!g_networkSettingInfo) return; ui->uavTypeCombox->setCurrentIndex( g_networkSettingInfo->value("NetworkStreamSettings/uavType").toInt()); ui->uavIDspinBox->setValue( g_networkSettingInfo->value("NetworkStreamSettings/uavID").toInt()); ui->podPullStreamIPEdit->setText( g_networkSettingInfo->value("NetworkStreamSettings/podPullAddress") .toString()); ui->pullStreamAddrEdit1->setText( g_networkSettingInfo->value("NetworkStreamSettings/pullAddress1") .toString()); ui->pullStreamAddrEdit2->setText( g_networkSettingInfo->value("NetworkStreamSettings/pullAddress2") .toString()); ui->pullStreamAddrEdit3->setText( g_networkSettingInfo->value("NetworkStreamSettings/pullAddress3") .toString()); ui->pullStreamAddrEdit4->setText( g_networkSettingInfo->value("NetworkStreamSettings/pullAddress4") .toString()); int pushStreamIndex = g_networkSettingInfo->value("NetworkStreamSettings/pushStreamType") .toInt(); ui->pushStreamIPCombox->setCurrentIndex(pushStreamIndex); if (2 == pushStreamIndex) { ui->pushStreamIPCombox->setItemText( pushStreamIndex, g_networkSettingInfo ->value("NetworkStreamSettings/pushStreamAddress") .toString()); } } void StreamAddrSettingsDlg::saveParms() { g_networkSettingInfo->setValue("NetworkStreamSettings/uavType", ui->uavTypeCombox->currentIndex()); g_pushStreamInfoStruct.uavType = ui->uavTypeCombox->currentText().toLower(); g_networkSettingInfo->setValue("NetworkStreamSettings/uavID", ui->uavIDspinBox->value()); g_pushStreamInfoStruct.uavID = ui->uavIDspinBox->value(); g_networkSettingInfo->setValue("NetworkStreamSettings/podPullAddress", ui->podPullStreamIPEdit->text()); g_pullStreamInfoStruct.podPullIP = ui->podPullStreamIPEdit->text(); g_networkSettingInfo->setValue("NetworkStreamSettings/pullAddress1", ui->pullStreamAddrEdit1->text()); g_pullStreamInfoStruct.pullIP1 = ui->pullStreamAddrEdit1->text(); g_networkSettingInfo->setValue("NetworkStreamSettings/pullAddress2", ui->pullStreamAddrEdit2->text()); g_pullStreamInfoStruct.pullIP2 = ui->pullStreamAddrEdit2->text(); g_networkSettingInfo->setValue("NetworkStreamSettings/pullAddress3", ui->pullStreamAddrEdit3->text()); g_pullStreamInfoStruct.pullIP3 = ui->pullStreamAddrEdit3->text(); g_networkSettingInfo->setValue("NetworkStreamSettings/pullAddress4", ui->pullStreamAddrEdit4->text()); g_pullStreamInfoStruct.pullIP4 = ui->pullStreamAddrEdit4->text(); int pushStreamIndex = ui->pushStreamIPCombox->currentIndex(); g_networkSettingInfo->setValue("NetworkStreamSettings/pushStreamType", pushStreamIndex); g_pushStreamInfoStruct.pushType = pushStreamIndex; if (2 == pushStreamIndex) { g_networkSettingInfo->setValue( "NetworkStreamSettings/pushStreamAddress", ui->pushStreamIPCombox->currentText()); g_pushStreamInfoStruct.pushStreamIP = ui->pushStreamIPCombox->currentText(); } } // 拉流 void StreamAddrSettingsDlg::on_pullStreamBtn_clicked() { ui->pullStreamBtn->setDisabled(true); saveParms(); if (ui->pullStreamBtn->text() == "开始播放") { emit startPullStreamSignal(true); ui->pullStreamBtn->setText("停止播放"); } else { emit startPullStreamSignal(false); ui->pullStreamBtn->setText("开始播放"); } ui->pullStreamBtn->setDisabled(false); } // 推流 void StreamAddrSettingsDlg::on_pushStreamBtn_clicked() { ui->pushStreamBtn->setDisabled(true); saveParms(); if (ui->pushStreamBtn->text() == "开始推送") { emit startPushStreamSignal(true); ui->pushStreamBtn->setText("停止推送"); } else { emit startPushStreamSignal(false); ui->pushStreamBtn->setText("开始推送"); } ui->pushStreamBtn->setDisabled(false); }