bool NFMDemod::handleMessage(Message* cmd) { if(DSPSignalNotification::match(cmd)) { DSPSignalNotification* signal = (DSPSignalNotification*)cmd; qDebug("%d samples/sec, %lld Hz offset", signal->getSampleRate(), signal->getFrequencyOffset()); m_sampleRate = signal->getSampleRate(); m_nco.setFreq(-signal->getFrequencyOffset(), m_sampleRate); m_interpolator.create(16, m_sampleRate, m_rfBandwidth / 2.1); m_sampleDistanceRemain = m_sampleRate / 48000.0; m_squelchState = 0; cmd->completed(); return true; } else if(MsgConfigureNFMDemod::match(cmd)) { MsgConfigureNFMDemod* cfg = (MsgConfigureNFMDemod*)cmd; m_rfBandwidth = cfg->getRFBandwidth(); m_interpolator.create(16, m_sampleRate, m_rfBandwidth / 2.1); m_lowpass.create(21, 48000, cfg->getAFBandwidth()); m_squelchLevel = pow(10.0, cfg->getSquelch() / 10.0); m_volume = cfg->getVolume(); cmd->completed(); return true; } else { if(m_sampleSink != NULL) return m_sampleSink->handleMessage(cmd); else return false; } }
void SDRdaemonSourceGui::handleInputMessages() { Message* message; while ((message = m_inputMessageQueue.pop()) != 0) { //qDebug("SDRdaemonGui::handleInputMessages: message: %s", message->getIdentifier()); if (DSPSignalNotification::match(*message)) { DSPSignalNotification* notif = (DSPSignalNotification*) message; if (notif->getSampleRate() != m_streamSampleRate) { m_streamSampleRate = notif->getSampleRate(); } m_streamCenterFrequency = notif->getCenterFrequency(); qDebug("SDRdaemonGui::handleInputMessages: DSPSignalNotification: SampleRate:%d, CenterFrequency:%llu", notif->getSampleRate(), notif->getCenterFrequency()); updateSampleRateAndFrequency(); DSPSignalNotification *fwd = new DSPSignalNotification(*notif); m_sampleSource->getInputMessageQueue()->push(fwd); delete message; } else { if (handleMessage(*message)) { delete message; } } } }
bool TCPSrc::handleMessage(Message* cmd) { if(DSPSignalNotification::match(cmd)) { DSPSignalNotification* signal = (DSPSignalNotification*)cmd; qDebug("%d samples/sec, %lld Hz offset", signal->getSampleRate(), signal->getFrequencyOffset()); m_inputBandwidth = signal->getTunerBandwidth(); m_inputSampleRate = signal->getSampleRate(); m_inputFreq = signal->getTunerFrequency(); if (m_rig) { m_rig->setTunerSamples(m_inputBandwidth); m_rig->setTunerFreq(m_inputFreq); } m_nco.setFreq(-signal->getFrequencyOffset(), m_inputSampleRate); m_interpolator.create(16, m_inputSampleRate, m_rfBandwidth / 2.0); m_sampleDistanceRemain = m_inputSampleRate / m_outputSampleRate; cmd->completed(); return true; } else if(MsgTCPSrcConfigure::match(cmd)) { MsgTCPSrcConfigure* cfg = (MsgTCPSrcConfigure*)cmd; m_sampleFormat = cfg->getSampleFormat(); m_outputSampleRate = cfg->getOutputSampleRate(); m_rfBandwidth = cfg->getRFBandwidth(); if(cfg->getTCPPort() != m_tcpPort) { m_tcpPort = cfg->getTCPPort(); if(m_tcpServer->isListening()) m_tcpServer->close(); m_tcpServer->listen(QHostAddress::Any, m_tcpPort); } m_boost = cfg->getBoost(); m_interpolator.create(16, m_inputSampleRate, m_rfBandwidth / 2.0); m_sampleDistanceRemain = m_inputSampleRate / m_outputSampleRate; if (m_sampleFormat == FormatSSB) TCPFilter->create_filter(0.3 / 48.0, m_rfBandwidth / 2.0 / m_outputSampleRate); else TCPFilter->create_filter(0.0, m_rfBandwidth / 2.0 / m_outputSampleRate); cmd->completed(); return true; } else if(MsgTCPSrcSpectrum::match(cmd)) { MsgTCPSrcSpectrum* spc = (MsgTCPSrcSpectrum*)cmd; m_spectrumEnabled = spc->getEnabled(); cmd->completed(); return true; } else { if(m_spectrum != NULL) return m_spectrum->handleMessage(cmd); else return false; } }
void AirspyGui::handleInputMessages() { Message* message; while ((message = m_inputMessageQueue.pop()) != 0) { qDebug("AirspyGui::handleInputMessages: message: %s", message->getIdentifier()); if (DSPSignalNotification::match(*message)) { DSPSignalNotification* notif = (DSPSignalNotification*) message; m_sampleRate = notif->getSampleRate(); m_deviceCenterFrequency = notif->getCenterFrequency(); qDebug("AirspyGui::handleInputMessages: DSPSignalNotification: SampleRate:%d, CenterFrequency:%llu", notif->getSampleRate(), notif->getCenterFrequency()); updateSampleRateAndFrequency(); delete message; } else { if (handleMessage(*message)) { delete message; } } } }
bool WFMDemod::handleMessage(Message* cmd) { if(DSPSignalNotification::match(cmd)) { DSPSignalNotification* signal = (DSPSignalNotification*)cmd; qDebug("%d samples/sec, %lld Hz offset", signal->getSampleRate(), signal->getFrequencyOffset()); m_sampleRate = signal->getSampleRate(); m_interpolator.create(16, m_sampleRate, m_afBandwidth); m_sampleDistanceRemain = m_sampleRate / 48000.0; cmd->completed(); return true; } else if(MsgConfigureWFMDemod::match(cmd)) { MsgConfigureWFMDemod* cfg = (MsgConfigureWFMDemod*)cmd; m_afBandwidth = cfg->getAFBandwidth(); m_interpolator.create(16, m_sampleRate, m_afBandwidth); m_volume = cfg->getVolume(); cmd->completed(); return true; } else { if(m_sampleSink != NULL) return m_sampleSink->handleMessage(cmd); else return false; } }
void DSPDeviceSinkEngine::handleInputMessages() { qDebug() << "DSPDeviceSinkEngine::handleInputMessages"; Message* message; while ((message = m_inputMessageQueue.pop()) != 0) { qDebug("DSPDeviceSinkEngine::handleInputMessages: message: %s", message->getIdentifier()); if (DSPSignalNotification::match(*message)) { DSPSignalNotification *notif = (DSPSignalNotification *) message; // update DSP values m_sampleRate = notif->getSampleRate(); m_centerFrequency = notif->getCenterFrequency(); qDebug() << "DSPDeviceSinkEngine::handleInputMessages: DSPSignalNotification(" << m_sampleRate << "," << m_centerFrequency << ")"; // forward source changes to sources with immediate execution for(BasebandSampleSources::const_iterator it = m_basebandSampleSources.begin(); it != m_basebandSampleSources.end(); it++) { qDebug() << "DSPDeviceSinkEngine::handleInputMessages: forward message to " << (*it)->objectName().toStdString().c_str(); (*it)->handleMessage(*message); } for (ThreadedBasebandSampleSources::const_iterator it = m_threadedBasebandSampleSources.begin(); it != m_threadedBasebandSampleSources.end(); ++it) { qDebug() << "DSPDeviceSinkEngine::handleSourceMessages: forward message to ThreadedSampleSource(" << (*it)->getSampleSourceObjectName().toStdString().c_str() << ")"; (*it)->handleSourceMessage(*message); } // forward changes to listeners on DSP output queue if (m_deviceSampleSink->getMessageQueueToGUI()) { DSPSignalNotification* rep = new DSPSignalNotification(*notif); // make a copy for the output queue m_deviceSampleSink->getMessageQueueToGUI()->push(rep); } delete message; } } }
bool ScopeVis::handleMessage(Message* message) { if(DSPSignalNotification::match(message)) { DSPSignalNotification* signal = (DSPSignalNotification*)message; m_sampleRate = signal->getSampleRate(); message->completed(); return true; } else if(DSPConfigureScopeVis::match(message)) { DSPConfigureScopeVis* conf = (DSPConfigureScopeVis*)message; m_triggerState = Untriggered; m_triggerChannel = (TriggerChannel)conf->getTriggerChannel(); m_triggerLevelHigh = conf->getTriggerLevelHigh() * 32767; m_triggerLevelLow = conf->getTriggerLevelLow() * 32767; message->completed(); return true; } else { return false; } }
void LimeSDROutputGUI::handleInputMessages() { Message* message; while ((message = m_inputMessageQueue.pop()) != 0) { if (DSPSignalNotification::match(*message)) { qDebug("LimeSDROutputGUI::handleInputMessages: message: %s", message->getIdentifier()); DSPSignalNotification* notif = (DSPSignalNotification*) message; m_sampleRate = notif->getSampleRate(); m_deviceCenterFrequency = notif->getCenterFrequency(); qDebug("LimeSDROutputGUI::handleInputMessages: DSPSignalNotification: SampleRate: %d, CenterFrequency: %llu", notif->getSampleRate(), notif->getCenterFrequency()); updateSampleRateAndFrequency(); delete message; } else if (LimeSDROutput::MsgConfigureLimeSDR::match(*message)) { const LimeSDROutput::MsgConfigureLimeSDR& cfg = (LimeSDROutput::MsgConfigureLimeSDR&) *message; m_settings = cfg.getSettings(); displaySettings(); delete message; } else if (LimeSDROutput::MsgStartStop::match(*message)) { LimeSDROutput::MsgStartStop& notif = (LimeSDROutput::MsgStartStop&) *message; blockApplySettings(true); ui->startStop->setChecked(notif.getStartStop()); blockApplySettings(false); delete message; } else { if (handleMessage(*message)) { delete message; } } } }
void SDRdaemonGui::handleDSPMessages() { Message* message; while ((message = m_deviceAPI->getDeviceOutputMessageQueue()->pop()) != 0) { qDebug("SDRdaemonGui::handleDSPMessages: message: %s", message->getIdentifier()); if (DSPSignalNotification::match(*message)) { DSPSignalNotification* notif = (DSPSignalNotification*) message; m_deviceSampleRate = notif->getSampleRate(); m_deviceCenterFrequency = notif->getCenterFrequency(); qDebug("SDRdaemonGui::handleDSPMessages: SampleRate:%d, CenterFrequency:%llu", notif->getSampleRate(), notif->getCenterFrequency()); updateSampleRateAndFrequency(); m_fileSink->handleMessage(*notif); // forward to file sink delete message; } } }
void SDRdaemonSinkGui::handleInputMessages() { Message* message; while ((message = m_inputMessageQueue.pop()) != 0) { if (DSPSignalNotification::match(*message)) { DSPSignalNotification* notif = (DSPSignalNotification*) message; m_sampleRate = notif->getSampleRate(); qDebug("SDRdaemonSinkGui::handleInputMessages: DSPSignalNotification: SampleRate:%d, CenterFrequency:%llu", notif->getSampleRate(), notif->getCenterFrequency()); updateSampleRate(); delete message; } else { if (handleMessage(*message)) { delete message; } } } }