- added Receiver Thread

git-svn-id: http://moon:8086/svn/software/trunk/projects/mpsk_rx_gui@110 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2014-12-22 17:40:29 +00:00
parent 40594c467c
commit 552f20fcd3
2 changed files with 28 additions and 9 deletions
+21 -6
View File
@@ -35,6 +35,8 @@ MainComponent::MainComponent ()
m_pTransmitter(new Transmitter()),
m_ControlComponent(new ControlComponent(m_pReceiver, m_pTransmitter)), m_log(this),
m_pReceiverControl(m_pReceiver)
, Thread("Receiver")
{
addAndMakeVisible (tabbedComponent = new TabbedComponent (TabbedButtonBar::TabsAtTop));
tabbedComponent->setTabBarDepth (38);
@@ -75,13 +77,14 @@ MainComponent::MainComponent ()
getSharedAudioDeviceManager().addChangeListener (this);
getSharedAudioDeviceManager().addAudioCallback (this);
startTimer (1000 / 30);
startTimer (1000 / 20);
//[/Constructor]
}
MainComponent::~MainComponent()
{
//[Destructor_pre]. You can add your own custom destruction code here..
stopThread(1000);
stopTimer();
getSharedAudioDeviceManager().removeAudioCallback (this);
getSharedAudioDeviceManager().removeChangeListener (this);
@@ -127,6 +130,17 @@ void MainComponent::changeListenerCallback (ChangeBroadcaster*)
// dumpDeviceInfo();
}
// Thread
void MainComponent::run()
{
while(!threadShouldExit())
{
const RVec &data = m_rxBuf.read();
m_pReceiver->processPassband(data, data.size());
}
}
void MainComponent::audioDeviceIOCallback (const float** inputChannelData,
int numInputChannels,
float** outputChannelData,
@@ -137,24 +151,25 @@ void MainComponent::audioDeviceIOCallback (const float** inputChannelData,
(void) numInputChannels;
(void) numOutputChannels;
// m_pReceiver->processBaseband((float*)inputChannelData[0], (float*)inputChannelData[1], numSamples);
Map<RVec> rf((RealScalar*)inputChannelData[0], numSamples);
m_pTransmitterControl->getData(outputChannelData[0], numSamples);
m_pReceiver->processPassband((float*)inputChannelData[0], numSamples);
// m_pReceiver->processPassband(rf, numSamples);
m_rxBuf.write(rf, numSamples);
}
void MainComponent::audioDeviceAboutToStart (AudioIODevice* device)
{
int bufferSize;
int bufferSize = device->getCurrentBufferSizeSamples();
m_rxBuf.resize(bufferSize);
m_samplerate = (float)device->getCurrentSampleRate();
bufferSize = device->getCurrentBufferSizeSamples();
m_pTransmitterControl->setBuffersize(bufferSize);
m_pTransmitterControl->setSamplerate(m_samplerate);
m_pReceiver->setBufSize(bufferSize);
m_pReceiverControl->setSamplerate(m_samplerate);
startThread();
}
void MainComponent::audioDeviceStopped()