diff --git a/plugins/channelrx/demodbfm/bfmdemod.cpp b/plugins/channelrx/demodbfm/bfmdemod.cpp index f6dd35444..6e612e2ee 100644 --- a/plugins/channelrx/demodbfm/bfmdemod.cpp +++ b/plugins/channelrx/demodbfm/bfmdemod.cpp @@ -35,12 +35,12 @@ MESSAGE_CLASS_DEFINITION(BFMDemod::MsgConfigureBFMDemod, Message) const Real BFMDemod::default_deemphasis = 50.0; // 50 us const int BFMDemod::m_udpBlockSize = 512; -BFMDemod::BFMDemod(BasebandSampleSink* sampleSink, RDSParser *rdsParser) : +BFMDemod::BFMDemod(DeviceSourceAPI *deviceAPI, BasebandSampleSink* sampleSink) : + m_deviceAPI(deviceAPI), m_sampleSink(sampleSink), m_audioFifo(250000), m_settingsMutex(QMutex::Recursive), m_pilotPLL(19000/384000, 50/384000, 0.01), - m_rdsParser(rdsParser), m_deemphasisFilterX(default_deemphasis * 48000 * 1.0e-6), m_deemphasisFilterY(default_deemphasis * 48000 * 1.0e-6), m_fmExcursion(default_excursion) @@ -182,10 +182,7 @@ void BFMDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto { if (m_rdsDecoder.frameSync(bit)) { - if (m_rdsParser) - { - m_rdsParser->parseGroup(m_rdsDecoder.getGroup()); - } + m_rdsParser.parseGroup(m_rdsDecoder.getGroup()); } } diff --git a/plugins/channelrx/demodbfm/bfmdemod.h b/plugins/channelrx/demodbfm/bfmdemod.h index 5c6dc813c..484bd9d47 100644 --- a/plugins/channelrx/demodbfm/bfmdemod.h +++ b/plugins/channelrx/demodbfm/bfmdemod.h @@ -33,14 +33,15 @@ #include "util/message.h" #include "util/udpsink.h" +#include "rdsparser.h" #include "rdsdecoder.h" #include "rdsdemod.h" -class RDSParser; +class DeviceSourceAPI; class BFMDemod : public BasebandSampleSink { public: - BFMDemod(BasebandSampleSink* sampleSink, RDSParser* rdsParser); + BFMDemod(DeviceSourceAPI *deviceAPI, BasebandSampleSink* sampleSink); virtual ~BFMDemod(); void configure(MessageQueue* messageQueue, @@ -85,6 +86,8 @@ public: m_magsqCount = 0; } + RDSParser& getRDSParser() { return m_rdsParser; } + private: class MsgConfigureBFMDemod : public Message { MESSAGE_CLASS_DECLARATION @@ -214,6 +217,8 @@ private: Config m_config; Config m_running; + DeviceSourceAPI *m_deviceAPI; + NCO m_nco; Interpolator m_interpolator; //!< Interpolator between fixed demod bandwidth and audio bandwidth (rational) Real m_interpolatorDistance; @@ -254,7 +259,7 @@ private: RDSDemod m_rdsDemod; RDSDecoder m_rdsDecoder; - RDSParser *m_rdsParser; + RDSParser m_rdsParser; LowPassFilterRC m_deemphasisFilterX; LowPassFilterRC m_deemphasisFilterY; diff --git a/plugins/channelrx/demodbfm/bfmdemodgui.cpp b/plugins/channelrx/demodbfm/bfmdemodgui.cpp index 82170bb6c..a9a824f49 100644 --- a/plugins/channelrx/demodbfm/bfmdemodgui.cpp +++ b/plugins/channelrx/demodbfm/bfmdemodgui.cpp @@ -277,7 +277,7 @@ void BFMDemodGUI::on_clearData_clicked(bool checked __attribute__((unused))) { if (ui->rds->isChecked()) { - m_rdsParser.clearAllFields(); + m_bfmDemod->getRDSParser().clearAllFields(); ui->g14ProgServiceNames->clear(); ui->g14MappedFrequencies->clear(); @@ -298,9 +298,9 @@ void BFMDemodGUI::on_g14ProgServiceNames_currentIndexChanged(int _index) if (index < m_g14ComboIndex.size()) { unsigned int piKey = m_g14ComboIndex[index]; - RDSParser::freqs_map_t::const_iterator mIt = m_rdsParser.m_g14_mapped_freqs.find(piKey); + RDSParser::freqs_map_t::const_iterator mIt = m_bfmDemod->getRDSParser().m_g14_mapped_freqs.find(piKey); - if (mIt != m_rdsParser.m_g14_mapped_freqs.end()) + if (mIt != m_bfmDemod->getRDSParser().m_g14_mapped_freqs.end()) { ui->g14MappedFrequencies->clear(); RDSParser::freqs_set_t::iterator sIt = (mIt->second).begin(); @@ -316,9 +316,9 @@ void BFMDemodGUI::on_g14ProgServiceNames_currentIndexChanged(int _index) ui->g14MappedFrequencies->setEnabled(ui->g14MappedFrequencies->count() > 0); } - mIt = m_rdsParser.m_g14_alt_freqs.find(piKey); + mIt = m_bfmDemod->getRDSParser().m_g14_alt_freqs.find(piKey); - if (mIt != m_rdsParser.m_g14_alt_freqs.end()) + if (mIt != m_bfmDemod->getRDSParser().m_g14_alt_freqs.end()) { ui->g14AltFrequencies->clear(); RDSParser::freqs_set_t::iterator sIt = (mIt->second).begin(); @@ -387,7 +387,7 @@ BFMDemodGUI::BFMDemodGUI(PluginAPI* pluginAPI, DeviceSourceAPI *deviceAPI, QWidg connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_spectrumVis = new SpectrumVis(ui->glSpectrum); - m_bfmDemod = new BFMDemod(m_spectrumVis, &m_rdsParser); + m_bfmDemod = new BFMDemod(m_deviceAPI, m_spectrumVis); m_channelizer = new DownChannelizer(m_bfmDemod); m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this); connect(m_channelizer, SIGNAL(inputSampleRateChanged()), this, SLOT(channelSampleRateChanged())); @@ -550,29 +550,29 @@ void BFMDemodGUI::channelSampleRateChanged() void BFMDemodGUI::rdsUpdateFixedFields() { - ui->g00Label->setText(m_rdsParser.rds_group_acronym_tags[0].c_str()); - ui->g01Label->setText(m_rdsParser.rds_group_acronym_tags[1].c_str()); - ui->g02Label->setText(m_rdsParser.rds_group_acronym_tags[2].c_str()); - ui->g03Label->setText(m_rdsParser.rds_group_acronym_tags[3].c_str()); - ui->g04Label->setText(m_rdsParser.rds_group_acronym_tags[4].c_str()); - //ui->g05Label->setText(m_rdsParser.rds_group_acronym_tags[5].c_str()); - //ui->g06Label->setText(m_rdsParser.rds_group_acronym_tags[6].c_str()); - //ui->g07Label->setText(m_rdsParser.rds_group_acronym_tags[7].c_str()); - ui->g08Label->setText(m_rdsParser.rds_group_acronym_tags[8].c_str()); - ui->g09Label->setText(m_rdsParser.rds_group_acronym_tags[9].c_str()); - ui->g14Label->setText(m_rdsParser.rds_group_acronym_tags[14].c_str()); + ui->g00Label->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[0].c_str()); + ui->g01Label->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[1].c_str()); + ui->g02Label->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[2].c_str()); + ui->g03Label->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[3].c_str()); + ui->g04Label->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[4].c_str()); + //ui->g05Label->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[5].c_str()); + //ui->g06Label->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[6].c_str()); + //ui->g07Label->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[7].c_str()); + ui->g08Label->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[8].c_str()); + ui->g09Label->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[9].c_str()); + ui->g14Label->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[14].c_str()); - ui->g00CountLabel->setText(m_rdsParser.rds_group_acronym_tags[0].c_str()); - ui->g01CountLabel->setText(m_rdsParser.rds_group_acronym_tags[1].c_str()); - ui->g02CountLabel->setText(m_rdsParser.rds_group_acronym_tags[2].c_str()); - ui->g03CountLabel->setText(m_rdsParser.rds_group_acronym_tags[3].c_str()); - ui->g04CountLabel->setText(m_rdsParser.rds_group_acronym_tags[4].c_str()); - ui->g05CountLabel->setText(m_rdsParser.rds_group_acronym_tags[5].c_str()); - ui->g06CountLabel->setText(m_rdsParser.rds_group_acronym_tags[6].c_str()); - ui->g07CountLabel->setText(m_rdsParser.rds_group_acronym_tags[7].c_str()); - ui->g08CountLabel->setText(m_rdsParser.rds_group_acronym_tags[8].c_str()); - ui->g09CountLabel->setText(m_rdsParser.rds_group_acronym_tags[9].c_str()); - ui->g14CountLabel->setText(m_rdsParser.rds_group_acronym_tags[14].c_str()); + ui->g00CountLabel->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[0].c_str()); + ui->g01CountLabel->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[1].c_str()); + ui->g02CountLabel->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[2].c_str()); + ui->g03CountLabel->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[3].c_str()); + ui->g04CountLabel->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[4].c_str()); + ui->g05CountLabel->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[5].c_str()); + ui->g06CountLabel->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[6].c_str()); + ui->g07CountLabel->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[7].c_str()); + ui->g08CountLabel->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[8].c_str()); + ui->g09CountLabel->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[9].c_str()); + ui->g14CountLabel->setText(m_bfmDemod->getRDSParser().rds_group_acronym_tags[14].c_str()); } void BFMDemodGUI::rdsUpdate(bool force) @@ -591,21 +591,21 @@ void BFMDemodGUI::rdsUpdate(bool force) } // PI group - if (m_rdsParser.m_pi_updated || force) + if (m_bfmDemod->getRDSParser().m_pi_updated || force) { ui->piLabel->setStyleSheet("QLabel { background-color : green; }"); - ui->piCountText->setNum((int) m_rdsParser.m_pi_count); - QString pistring(str(boost::format("%04X") % m_rdsParser.m_pi_program_identification).c_str()); + ui->piCountText->setNum((int) m_bfmDemod->getRDSParser().m_pi_count); + QString pistring(str(boost::format("%04X") % m_bfmDemod->getRDSParser().m_pi_program_identification).c_str()); ui->piText->setText(pistring); - if (m_rdsParser.m_pi_traffic_program) { + if (m_bfmDemod->getRDSParser().m_pi_traffic_program) { ui->piTPIndicator->setStyleSheet("QLabel { background-color : green; }"); } else { ui->piTPIndicator->setStyleSheet("QLabel { background:rgb(79,79,79); }"); } - ui->piType->setText(QString(m_rdsParser.pty_table[m_rdsParser.m_pi_program_type].c_str())); - ui->piCoverage->setText(QString(m_rdsParser.coverage_area_codes[m_rdsParser.m_pi_area_coverage_index].c_str())); + ui->piType->setText(QString(m_bfmDemod->getRDSParser().pty_table[m_bfmDemod->getRDSParser().m_pi_program_type].c_str())); + ui->piCoverage->setText(QString(m_bfmDemod->getRDSParser().coverage_area_codes[m_bfmDemod->getRDSParser().m_pi_area_coverage_index].c_str())); } else { @@ -613,29 +613,29 @@ void BFMDemodGUI::rdsUpdate(bool force) } // G0 group - if (m_rdsParser.m_g0_updated || force) + if (m_bfmDemod->getRDSParser().m_g0_updated || force) { ui->g00Label->setStyleSheet("QLabel { background-color : green; }"); - ui->g00CountText->setNum((int) m_rdsParser.m_g0_count); + ui->g00CountText->setNum((int) m_bfmDemod->getRDSParser().m_g0_count); - if (m_rdsParser.m_g0_psn_bitmap == 0b1111) { - ui->g00ProgServiceName->setText(QString(m_rdsParser.m_g0_program_service_name)); + if (m_bfmDemod->getRDSParser().m_g0_psn_bitmap == 0b1111) { + ui->g00ProgServiceName->setText(QString(m_bfmDemod->getRDSParser().m_g0_program_service_name)); } - if (m_rdsParser.m_g0_traffic_announcement) { + if (m_bfmDemod->getRDSParser().m_g0_traffic_announcement) { ui->g00TrafficAnnouncement->setStyleSheet("QLabel { background-color : green; }"); } else { ui->g00TrafficAnnouncement->setStyleSheet("QLabel { background:rgb(79,79,79); }"); } - ui->g00MusicSpeech->setText(QString((m_rdsParser.m_g0_music_speech ? "Music" : "Speech"))); - ui->g00MonoStereo->setText(QString((m_rdsParser.m_g0_mono_stereo ? "Mono" : "Stereo"))); + ui->g00MusicSpeech->setText(QString((m_bfmDemod->getRDSParser().m_g0_music_speech ? "Music" : "Speech"))); + ui->g00MonoStereo->setText(QString((m_bfmDemod->getRDSParser().m_g0_mono_stereo ? "Mono" : "Stereo"))); - if (m_rdsParser.m_g0_af_updated) + if (m_bfmDemod->getRDSParser().m_g0_af_updated) { ui->g00AltFrequenciesBox->clear(); - for (std::set::iterator it = m_rdsParser.m_g0_alt_freq.begin(); it != m_rdsParser.m_g0_alt_freq.end(); ++it) + for (std::set::iterator it = m_bfmDemod->getRDSParser().m_g0_alt_freq.begin(); it != m_bfmDemod->getRDSParser().m_g0_alt_freq.end(); ++it) { if (*it > 76.0) { @@ -654,20 +654,20 @@ void BFMDemodGUI::rdsUpdate(bool force) } // G1 group - if (m_rdsParser.m_g1_updated || force) + if (m_bfmDemod->getRDSParser().m_g1_updated || force) { ui->g01Label->setStyleSheet("QLabel { background-color : green; }"); - ui->g01CountText->setNum((int) m_rdsParser.m_g1_count); + ui->g01CountText->setNum((int) m_bfmDemod->getRDSParser().m_g1_count); - if ((m_rdsParser.m_g1_country_page_index >= 0) && (m_rdsParser.m_g1_country_index >= 0)) { - ui->g01CountryCode->setText(QString((m_rdsParser.pi_country_codes[m_rdsParser.m_g1_country_page_index][m_rdsParser.m_g1_country_index]).c_str())); + if ((m_bfmDemod->getRDSParser().m_g1_country_page_index >= 0) && (m_bfmDemod->getRDSParser().m_g1_country_index >= 0)) { + ui->g01CountryCode->setText(QString((m_bfmDemod->getRDSParser().pi_country_codes[m_bfmDemod->getRDSParser().m_g1_country_page_index][m_bfmDemod->getRDSParser().m_g1_country_index]).c_str())); } - if (m_rdsParser.m_g1_language_index >= 0) { - ui->g01Language->setText(QString(m_rdsParser.language_codes[m_rdsParser.m_g1_language_index].c_str())); + if (m_bfmDemod->getRDSParser().m_g1_language_index >= 0) { + ui->g01Language->setText(QString(m_bfmDemod->getRDSParser().language_codes[m_bfmDemod->getRDSParser().m_g1_language_index].c_str())); } - ui->g01DHM->setText(QString(str(boost::format("%id:%i:%i") % m_rdsParser.m_g1_pin_day % m_rdsParser.m_g1_pin_hour % m_rdsParser.m_g1_pin_minute).c_str())); + ui->g01DHM->setText(QString(str(boost::format("%id:%i:%i") % m_bfmDemod->getRDSParser().m_g1_pin_day % m_bfmDemod->getRDSParser().m_g1_pin_hour % m_bfmDemod->getRDSParser().m_g1_pin_minute).c_str())); } else { @@ -675,11 +675,11 @@ void BFMDemodGUI::rdsUpdate(bool force) } // G2 group - if (m_rdsParser.m_g2_updated || force) + if (m_bfmDemod->getRDSParser().m_g2_updated || force) { ui->g02Label->setStyleSheet("QLabel { background-color : green; }"); - ui->g02CountText->setNum((int) m_rdsParser.m_g2_count); - ui->go2Text->setText(QString(m_rdsParser.m_g2_radiotext)); + ui->g02CountText->setNum((int) m_bfmDemod->getRDSParser().m_g2_count); + ui->go2Text->setText(QString(m_bfmDemod->getRDSParser().m_g2_radiotext)); } else { @@ -687,11 +687,11 @@ void BFMDemodGUI::rdsUpdate(bool force) } // G3 group - if (m_rdsParser.m_g3_updated || force) + if (m_bfmDemod->getRDSParser().m_g3_updated || force) { ui->g03Label->setStyleSheet("QLabel { background-color : green; }"); - ui->g03CountText->setNum((int) m_rdsParser.m_g3_count); - std::string g3str = str(boost::format("%02X%c %04X %04X") % m_rdsParser.m_g3_appGroup % (m_rdsParser.m_g3_groupB ? 'B' : 'A') % m_rdsParser.m_g3_message % m_rdsParser.m_g3_aid); + ui->g03CountText->setNum((int) m_bfmDemod->getRDSParser().m_g3_count); + std::string g3str = str(boost::format("%02X%c %04X %04X") % m_bfmDemod->getRDSParser().m_g3_appGroup % (m_bfmDemod->getRDSParser().m_g3_groupB ? 'B' : 'A') % m_bfmDemod->getRDSParser().m_g3_message % m_bfmDemod->getRDSParser().m_g3_aid); ui->g03Data->setText(QString(g3str.c_str())); } else @@ -700,12 +700,12 @@ void BFMDemodGUI::rdsUpdate(bool force) } // G4 group - if (m_rdsParser.m_g4_updated || force) + if (m_bfmDemod->getRDSParser().m_g4_updated || force) { ui->g04Label->setStyleSheet("QLabel { background-color : green; }"); - ui->g04CountText->setNum((int) m_rdsParser.m_g4_count); + ui->g04CountText->setNum((int) m_bfmDemod->getRDSParser().m_g4_count); std::string time = str(boost::format("%02i.%02i.%4i, %02i:%02i (%+.1fh)")\ - % m_rdsParser.m_g4_day % m_rdsParser.m_g4_month % (1900 + m_rdsParser.m_g4_year) % m_rdsParser.m_g4_hours % m_rdsParser.m_g4_minutes % m_rdsParser.m_g4_local_time_offset); + % m_bfmDemod->getRDSParser().m_g4_day % m_bfmDemod->getRDSParser().m_g4_month % (1900 + m_bfmDemod->getRDSParser().m_g4_year) % m_bfmDemod->getRDSParser().m_g4_hours % m_bfmDemod->getRDSParser().m_g4_minutes % m_bfmDemod->getRDSParser().m_g4_local_time_offset); ui->g04Time->setText(QString(time.c_str())); } else @@ -714,42 +714,42 @@ void BFMDemodGUI::rdsUpdate(bool force) } // G5 group - if (m_rdsParser.m_g5_updated || force) + if (m_bfmDemod->getRDSParser().m_g5_updated || force) { - ui->g05CountText->setNum((int) m_rdsParser.m_g5_count); + ui->g05CountText->setNum((int) m_bfmDemod->getRDSParser().m_g5_count); } // G6 group - if (m_rdsParser.m_g6_updated || force) + if (m_bfmDemod->getRDSParser().m_g6_updated || force) { - ui->g06CountText->setNum((int) m_rdsParser.m_g6_count); + ui->g06CountText->setNum((int) m_bfmDemod->getRDSParser().m_g6_count); } // G7 group - if (m_rdsParser.m_g7_updated || force) + if (m_bfmDemod->getRDSParser().m_g7_updated || force) { - ui->g07CountText->setNum((int) m_rdsParser.m_g7_count); + ui->g07CountText->setNum((int) m_bfmDemod->getRDSParser().m_g7_count); } // G8 group - if (m_rdsParser.m_g8_updated || force) + if (m_bfmDemod->getRDSParser().m_g8_updated || force) { ui->g08Label->setStyleSheet("QLabel { background-color : green; }"); - ui->g08CountText->setNum((int) m_rdsParser.m_g8_count); + ui->g08CountText->setNum((int) m_bfmDemod->getRDSParser().m_g8_count); std::ostringstream os; - os << (m_rdsParser.m_g8_sign ? "-" : "+") << m_rdsParser.m_g8_extent + 1; + os << (m_bfmDemod->getRDSParser().m_g8_sign ? "-" : "+") << m_bfmDemod->getRDSParser().m_g8_extent + 1; ui->g08Extent->setText(QString(os.str().c_str())); - int event_line = RDSTMC::get_tmc_event_code_index(m_rdsParser.m_g8_event, 1); + int event_line = RDSTMC::get_tmc_event_code_index(m_bfmDemod->getRDSParser().m_g8_event, 1); ui->g08TMCEvent->setText(QString(RDSTMC::get_tmc_events(event_line, 1).c_str())); - QString pistring(str(boost::format("%04X") % m_rdsParser.m_g8_location).c_str()); + QString pistring(str(boost::format("%04X") % m_bfmDemod->getRDSParser().m_g8_location).c_str()); ui->g08Location->setText(pistring); - if (m_rdsParser.m_g8_label_index >= 0) { - ui->g08Description->setText(QString(m_rdsParser.label_descriptions[m_rdsParser.m_g8_label_index].c_str())); + if (m_bfmDemod->getRDSParser().m_g8_label_index >= 0) { + ui->g08Description->setText(QString(m_bfmDemod->getRDSParser().label_descriptions[m_bfmDemod->getRDSParser().m_g8_label_index].c_str())); } - ui->g08Content->setNum(m_rdsParser.m_g8_content); + ui->g08Content->setNum(m_bfmDemod->getRDSParser().m_g8_content); } else { @@ -757,11 +757,11 @@ void BFMDemodGUI::rdsUpdate(bool force) } // G9 group - if (m_rdsParser.m_g9_updated || force) + if (m_bfmDemod->getRDSParser().m_g9_updated || force) { ui->g09Label->setStyleSheet("QLabel { background-color : green; }"); - ui->g09CountText->setNum((int) m_rdsParser.m_g9_count); - std::string g9str = str(boost::format("%02X %04X %04X %02X %04X") % m_rdsParser.m_g9_varA % m_rdsParser.m_g9_cA % m_rdsParser.m_g9_dA % m_rdsParser.m_g9_varB % m_rdsParser.m_g9_dB); + ui->g09CountText->setNum((int) m_bfmDemod->getRDSParser().m_g9_count); + std::string g9str = str(boost::format("%02X %04X %04X %02X %04X") % m_bfmDemod->getRDSParser().m_g9_varA % m_bfmDemod->getRDSParser().m_g9_cA % m_bfmDemod->getRDSParser().m_g9_dA % m_bfmDemod->getRDSParser().m_g9_varB % m_bfmDemod->getRDSParser().m_g9_dB); ui->g09Data->setText(QString(g9str.c_str())); } else @@ -770,18 +770,18 @@ void BFMDemodGUI::rdsUpdate(bool force) } // G14 group - if (m_rdsParser.m_g14_updated || force) + if (m_bfmDemod->getRDSParser().m_g14_updated || force) { - ui->g14CountText->setNum((int) m_rdsParser.m_g14_count); + ui->g14CountText->setNum((int) m_bfmDemod->getRDSParser().m_g14_count); - if (m_rdsParser.m_g14_data_available) + if (m_bfmDemod->getRDSParser().m_g14_data_available) { ui->g14Label->setStyleSheet("QLabel { background-color : green; }"); m_g14ComboIndex.clear(); ui->g14ProgServiceNames->clear(); - RDSParser::psns_map_t::iterator it = m_rdsParser.m_g14_program_service_names.begin(); - const RDSParser::psns_map_t::iterator itEnd = m_rdsParser.m_g14_program_service_names.end(); + RDSParser::psns_map_t::iterator it = m_bfmDemod->getRDSParser().m_g14_program_service_names.begin(); + const RDSParser::psns_map_t::iterator itEnd = m_bfmDemod->getRDSParser().m_g14_program_service_names.end(); int i = 0; for (; it != itEnd; ++it, i++) @@ -797,7 +797,7 @@ void BFMDemodGUI::rdsUpdate(bool force) } } - m_rdsParser.clearUpdateFlags(); + m_bfmDemod->getRDSParser().clearUpdateFlags(); } void BFMDemodGUI::changeFrequency(qint64 f) diff --git a/plugins/channelrx/demodbfm/bfmdemodgui.h b/plugins/channelrx/demodbfm/bfmdemodgui.h index 126d80e6d..11c623f53 100644 --- a/plugins/channelrx/demodbfm/bfmdemodgui.h +++ b/plugins/channelrx/demodbfm/bfmdemodgui.h @@ -24,10 +24,9 @@ #include "dsp/movingaverage.h" #include "util/messagequeue.h" -#include "rdsparser.h" - class PluginAPI; class DeviceSourceAPI; +class RDSParser; class ThreadedBasebandSampleSink; class DownChannelizer; @@ -91,7 +90,6 @@ private: ThreadedBasebandSampleSink* m_threadedChannelizer; DownChannelizer* m_channelizer; SpectrumVis* m_spectrumVis; - RDSParser m_rdsParser; BFMDemod* m_bfmDemod; MovingAverage m_channelPowerDbAvg;