IQ->Demod->Audio threads now chained

No longer passing anything through the main thread which was causing
audio and IQ interrupts on UI events -- hopefully improves OSX jitter.

SDRThread can now have unlimited Demodulator bindings.. :)
This commit is contained in:
Charles J. Cliffe
2014-11-18 18:00:06 -05:00
parent 75c51f1236
commit 6624ec11a3
6 changed files with 34 additions and 13 deletions
+9
View File
@@ -160,6 +160,15 @@ wxThread::ExitCode SDRThread::Entry() {
if (!TestDestroy()) {
SDRThreadIQData *iqData = new SDRThreadIQData(bandwidth,frequency,new_buffer);
m_pQueue->sendIQData(SDRThreadTask::SDR_THREAD_DATA, iqData);
if (demodulators.size()) {
for (int i = 0, iMax = demodulators.size(); i<iMax; i++) {
DemodulatorThreadQueue *demodQueue = demodulators[i];
DemodulatorThreadTask demod_task = DemodulatorThreadTask(DemodulatorThreadTask::DEMOD_THREAD_DATA);
demod_task.data = new DemodulatorThreadIQData(iqData->bandwidth, iqData->frequency, iqData->data);
demodQueue->addTask(demod_task, DemodulatorThreadQueue::DEMOD_PRIORITY_HIGHEST);
}
}
}
} else {
this->Yield();