123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- #include "singlecompareroadwidget.h"
- #include "GlobalVariable.h"
- #include "ui_singlecompareroadwidget.h"
- #include "customcombobox.h"
- #include "spdlog/spdlog.h"
- #include <qchar.h>
- #include <string>
- SingleCompareRoadWidget::SingleCompareRoadWidget(QWidget *parent)
- : QWidget(parent)
- , ui(new Ui::SingleCompareRoadWidget)
- , m_nIndex(0)
- {
- ui->setupUi(this);
- /* 设置comboBox阴影 */
- // ui->comboBox_soundCardNum->setViewShadowEffect();
- /* 通道名称限制10个字 */
- ui->lineEditRoadName->setMaxLength(10);
- connect(ui->btnDel, &QPushButton::clicked, this, [this]{emit deleted(m_nIndex);});
- connect(ui->comboBox_soundCardNum, QOverload<int>::of(&CustomComboBox::currentIndexChanged), this, &SingleCompareRoadWidget::do_comboBox_soundCardNum_currentIndexChanged);
- }
- SingleCompareRoadWidget::~SingleCompareRoadWidget()
- {
- delete ui;
- }
- bool SingleCompareRoadWidget::isDelBtnVisible() const
- {
- return ui->btnDel->isVisible();
- }
- void SingleCompareRoadWidget::setDelBtnVisible(bool bVisible)
- {
- ui->btnDel->setVisible(bVisible);
- }
- /* 设置声卡通道列表 */
- void SingleCompareRoadWidget::setSoundCardRoadList(const SoundCardPCMInfo_t& soundCard)
- {
- m_soundCardInfo = soundCard;
- bool bShowDesc = SoundCards.isShowSoundCardDesc();
- ui->comboBox_soundCardNum->clear();
- for(const auto& it : m_soundCardInfo.listPCM)
- {
- QString strItem = bShowDesc ? QString::fromStdString(it.strPCMDesc) : QString::fromStdString(it.strPCMName);
- QString strData = QString::fromStdString(it.strPCMName);
- ui->comboBox_soundCardNum->addItem(strItem, strData);
- }
- /* 默认选择第一个 */
- ui->comboBox_soundCardNum->setCurrentIndex(0);
- }
- /* 设置默认参数,设置之前需要先设置完成声卡可选通道列表 */
- void SingleCompareRoadWidget::setDefaultParams(const CompareItemRoadInfo_t& roadInfo)
- {
- ui->lineEditRoadName->setText(roadInfo.strCompareRoadName);
- ui->checkBox->setChecked(roadInfo.isEnableRecord);
- // setIndex(roadInfo.nCompareRoadNum); /* 通道编号不需要设置 */
- /* 先清空选择,再设置当前选项 */
- // ui->comboBox_soundCardNum->setCurrentIndex(-1);
- int numIndex = ui->comboBox_soundCardNum->findData(QString::fromStdString(roadInfo.scRoadInfo.pcmInfo.strPCMName));
- if(numIndex != -1)
- {
- ui->comboBox_soundCardNum->setCurrentIndex(numIndex);
- } else
- {
- ui->comboBox_soundCardNum->setCurrentIndex(0); // 如果没有找到,默认选择第一个
- }
- // for(int i = 0; i < ui->comboBox_soundCardNum->count(); ++i)
- // {
- // SoundCardRoadInfo_t road = ui->comboBox_soundCardNum->itemData(i).value<SoundCardRoadInfo_t>();
- // if(road.roadInfo.nRoadNum == roadInfo.scRoadInfo.roadInfo.nRoadNum &&
- // road.nSoundCardNum == roadInfo.scRoadInfo.nSoundCardNum)
- // {
- // ui->comboBox_soundCardNum->setCurrentIndex(i);
- // break;
- // }
- // }
- }
- int SingleCompareRoadWidget::getIndex() const
- {
- return m_nIndex;
- }
- void SingleCompareRoadWidget::setIndex(int nIndex)
- {
- if(nIndex <= 0) return;
- m_nIndex = nIndex;
- QString str = nIndex == 1 ? "主" : QString::number(nIndex);
- ui->labelRoadName->setText(QString("<font color='red'>*</font>%1通道名称:").arg(str));
- ui->labelDriverNum->setText(QString("<font color='red'>*</font>%1通道声卡设备编号:").arg(str));
- ui->checkBox->setText(QString("%1通道开启录音").arg(str));
- }
- /* 获取通道名称 */
- QString SingleCompareRoadWidget::getRoadName() const
- {
- return ui->lineEditRoadName->text();
- }
- /* 获取声卡录音通道编号 */
- OneSoundCardPCMInfo_t SingleCompareRoadWidget::getSoundCardRoadInfo()
- {
- std::string strPCMName = ui->comboBox_soundCardNum->currentData().toString().toStdString();
- OneSoundCardPCMInfo_t pcmInfo;
- pcmInfo.strSoundCardName = m_soundCardInfo.strSoundCardName;
- for(const auto& it : m_soundCardInfo.listPCM)
- {
- if(it.strPCMName == strPCMName)
- {
- pcmInfo.pcmInfo = it;
- break;
- }
- }
-
- return pcmInfo;
- }
- /* 获取当前PCM通道名称 */
- QString SingleCompareRoadWidget::getCurrentPCMName() const
- {
- return ui->comboBox_soundCardNum->currentData().toString();
- }
- /* 是否开启录音 */
- bool SingleCompareRoadWidget::isRecordEnabled() const
- {
- return ui->checkBox->isChecked();
- }
- /* 设置通道名称报警 */
- void SingleCompareRoadWidget::setRoadNameWarn(bool isWarn)
- {
- ui->lineEditRoadName->setProperty("Warn", isWarn);
- ui->lineEditRoadName->style()->unpolish(ui->lineEditRoadName);
- ui->lineEditRoadName->style()->polish(ui->lineEditRoadName);
- ui->lineEditRoadName->update();
- }
- /* 设置当前录音通道名称 */
- void SingleCompareRoadWidget::clearCurrentSelectRecordName()
- {
- ui->comboBox_soundCardNum->setCurrentIndex(-1);
- }
- /* 设置样式表 */
- void SingleCompareRoadWidget::setQSS(QString strStyle)
- {
- this->setStyleSheet(strStyle);
- ui->comboBox_soundCardNum->setStyleSheet(strStyle);
- /* 设置下拉框阴影 */
- ui->comboBox_soundCardNum->setViewShadowEffect();
- // SPDLOG_INFO("ui->comboBox_soundCardNum 样式表: {}", ui->comboBox_soundCardNum->styleSheet().toStdString());
- }
- /* 设置多对比项编辑模式 */
- void SingleCompareRoadWidget::setMultiEditMode(bool multiEdit)
- {
- if(multiEdit)
- {
- return;
- }
- /* 设置通道名称和声卡选择框不可编辑 */
- ui->lineEditRoadName->setEnabled(false);
- ui->comboBox_soundCardNum->setEnabled(false);
- }
- /* 选择了一个录音通道 */
- void SingleCompareRoadWidget::do_comboBox_soundCardNum_currentIndexChanged(int nIndex)
- {
- QString strPCMName = ui->comboBox_soundCardNum->currentData().toString();
- // SPDLOG_INFO("选择了一个录音通道: {}", strPCMName.toStdString());
- emit signal_selectRecordRoad(strPCMName);
- }
|