#include "BackEnd.h" #ifdef MockBackEnd #include "./MainWidget.h" #include "../component/FrequentShower.h" #include "../component/ProgressBar.h" #include "IntermediateFrequencyWidget.h" #include "RadioWidget.h" #include "SweepFrequencyWidget.h" void BackEnd::play(const QString& fileName){ qDebug() << "播放音频文件:" << fileName; } QString BackEnd::get_screenshot_save_dir_path() { return "D:/work/电台保存文件"; } QString BackEnd::get_screenshot_save_file_name() { QDateTime currentDateTime = QDateTime::currentDateTime(); return "截屏_" + currentDateTime.toString() .replace(":", "_") .replace("/", "_") + ".png"; } QString BackEnd::getAudioFileLocation() { return "D:/work/save/"; } BackEnd *BackEnd::instance() { static BackEnd temp; return &temp; } bool BackEnd::match(QKeyEvent *e, const QString &function) { bool ok = mFunctionMap.contains(function); if(!ok){ qDebug() << "error Global::match 失败! 功能" << function << "不存在!" << e; } return e->key() == mFunctionMap[function]; } void BackEnd::YsSetFreq(quint64 value) { qDebug() << "后端设置频率为: " << value; } // 获取到频率 void BackEnd::YsReceiveFreq(quint64 freq) { qDebug() << "接收到频率:" << freq; } // 音量设置 void BackEnd::YsSetAfGain(int value) { } int BackEnd::YsGetAfGain() { return 60; } int BackEnd::YsGetRfGain() { return 60; } qint64 BackEnd::YsGetFreq() { return 70; } // 增益设置 void BackEnd::YsSetRfGain(int value) { } BackEnd::BackEnd() { //qDebug() << "BackEnd::BackEnd() " << QThread::currentThreadId(); mFunctionMap["主菜单"] = Qt::Key_F1; mFunctionMap["属性菜单"] = Qt::Key_F2; mFunctionMap["顶部菜单"] = Qt::Key_F3; mFunctionMap["退出"] = Qt::Key_Escape; mFunctionMap["确定"] = Qt::Key_Return; mFunctionMap["左移"] = Qt::Key_Left; mFunctionMap["右移"] = Qt::Key_Right; mFunctionMap["增加"] = Qt::Key_Up; mFunctionMap["减小"] = Qt::Key_Down; mFunctionMap["切换音量/RF Gain"] = Qt::Key_Return; mFunctionMap["特别增加"] = Qt::Key_PageUp; mFunctionMap["特别减小"] = Qt::Key_PageDown; auto mTimer = new QTimer(this); QObject::connect(mTimer, &QTimer::timeout, [&](){ int size = 1024; RadioWidget* rw = MainWidget::instance()->mRadioWidget; { auto r = rw->mSpectrogramLine->power_axis()->coord_range(); YSG::Range nr = {r.center() - r.length()/4, r.center() + r.length()/4}; //QVector&& d= YSG::get_data(nr, rw->mSpectrogramLine->frequent_point_size()); QVector&& d= YSG::get_data(nr, size); rw->mSpectrogramLine->give_data(d); } { QVector&& d= YSG::get_data(rw->mWaterFall->power_range(), rw->mWaterFall->frequent_point_size()); //qDebug() << "D == " << d.size(); int tick = rw->mWaterFall->time_axis()->give_data(QTime::currentTime()); rw->mWaterFall->give_data(tick, d); } { int tick = rw->mTimePower->time_axis()->give_data(QTime::currentTime()); YSG::Range r = rw->mTimePower->value_axis()->coord_range(); YSG::Range nr = {r.center() - r.length()/4, r.center() + r.length()/4}; rw->mTimePower->give_data(tick, YSG::get_data(nr)); } { auto r = rw->mAudioSpectrogramPlot->power_axis()->coord_range(); YSG::Range nr = {r.center() - r.length()/4, r.center() + r.length()/4}; //QVector&& d= YSG::get_data(nr, rw->mAudioSpectrogramPlot->frequent_point_size()); QVector&& d= YSG::get_data(nr, 512); rw->mAudioSpectrogramPlot->give_data(d); } auto iw = MainWidget::instance()->mIntermediateFrequencyWidget; { auto r = iw->mSpectrogramLine->power_axis()->coord_range(); YSG::Range nr = {r.center() - r.length()/4, r.center() + r.length()/4}; //QVector d = YSG::get_data(nr, iw->mSpectrogramLine->frequent_point_size()); QVector d = YSG::get_data(nr, size); iw->mSpectrogramLine->give_data(d); } { //QVector d= YSG::get_data(iw->mAfterglow->power_range(), iw->mAfterglow->frequent_point_size()); QVector d= YSG::get_data(iw->mAfterglow->power_range(), size); iw->mAfterglow->give_data(d); } auto sw = MainWidget::instance()->mSweepFrequencyWidget; { QVector&& sweepData = YSG::get_data(sw->mSweepFrequencyLine->power_axis()->coord_range(), sw->mSweepFrequencyLine->block_frequent_point_size()); sw->mSweepFrequencyLine->give_data(sweepData); } }); mTimer->start(10); } #endif