- 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:
@@ -35,6 +35,8 @@ MainComponent::MainComponent ()
|
|||||||
m_pTransmitter(new Transmitter()),
|
m_pTransmitter(new Transmitter()),
|
||||||
m_ControlComponent(new ControlComponent(m_pReceiver, m_pTransmitter)), m_log(this),
|
m_ControlComponent(new ControlComponent(m_pReceiver, m_pTransmitter)), m_log(this),
|
||||||
m_pReceiverControl(m_pReceiver)
|
m_pReceiverControl(m_pReceiver)
|
||||||
|
, Thread("Receiver")
|
||||||
|
|
||||||
{
|
{
|
||||||
addAndMakeVisible (tabbedComponent = new TabbedComponent (TabbedButtonBar::TabsAtTop));
|
addAndMakeVisible (tabbedComponent = new TabbedComponent (TabbedButtonBar::TabsAtTop));
|
||||||
tabbedComponent->setTabBarDepth (38);
|
tabbedComponent->setTabBarDepth (38);
|
||||||
@@ -75,13 +77,14 @@ MainComponent::MainComponent ()
|
|||||||
|
|
||||||
getSharedAudioDeviceManager().addChangeListener (this);
|
getSharedAudioDeviceManager().addChangeListener (this);
|
||||||
getSharedAudioDeviceManager().addAudioCallback (this);
|
getSharedAudioDeviceManager().addAudioCallback (this);
|
||||||
startTimer (1000 / 30);
|
startTimer (1000 / 20);
|
||||||
//[/Constructor]
|
//[/Constructor]
|
||||||
}
|
}
|
||||||
|
|
||||||
MainComponent::~MainComponent()
|
MainComponent::~MainComponent()
|
||||||
{
|
{
|
||||||
//[Destructor_pre]. You can add your own custom destruction code here..
|
//[Destructor_pre]. You can add your own custom destruction code here..
|
||||||
|
stopThread(1000);
|
||||||
stopTimer();
|
stopTimer();
|
||||||
getSharedAudioDeviceManager().removeAudioCallback (this);
|
getSharedAudioDeviceManager().removeAudioCallback (this);
|
||||||
getSharedAudioDeviceManager().removeChangeListener (this);
|
getSharedAudioDeviceManager().removeChangeListener (this);
|
||||||
@@ -127,6 +130,17 @@ void MainComponent::changeListenerCallback (ChangeBroadcaster*)
|
|||||||
// dumpDeviceInfo();
|
// 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,
|
void MainComponent::audioDeviceIOCallback (const float** inputChannelData,
|
||||||
int numInputChannels,
|
int numInputChannels,
|
||||||
float** outputChannelData,
|
float** outputChannelData,
|
||||||
@@ -137,24 +151,25 @@ void MainComponent::audioDeviceIOCallback (const float** inputChannelData,
|
|||||||
(void) numInputChannels;
|
(void) numInputChannels;
|
||||||
(void) numOutputChannels;
|
(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_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)
|
void MainComponent::audioDeviceAboutToStart (AudioIODevice* device)
|
||||||
{
|
{
|
||||||
int bufferSize;
|
int bufferSize = device->getCurrentBufferSizeSamples();
|
||||||
|
m_rxBuf.resize(bufferSize);
|
||||||
m_samplerate = (float)device->getCurrentSampleRate();
|
m_samplerate = (float)device->getCurrentSampleRate();
|
||||||
bufferSize = device->getCurrentBufferSizeSamples();
|
|
||||||
|
|
||||||
m_pTransmitterControl->setBuffersize(bufferSize);
|
m_pTransmitterControl->setBuffersize(bufferSize);
|
||||||
m_pTransmitterControl->setSamplerate(m_samplerate);
|
m_pTransmitterControl->setSamplerate(m_samplerate);
|
||||||
|
|
||||||
m_pReceiver->setBufSize(bufferSize);
|
m_pReceiver->setBufSize(bufferSize);
|
||||||
m_pReceiverControl->setSamplerate(m_samplerate);
|
m_pReceiverControl->setSamplerate(m_samplerate);
|
||||||
|
startThread();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainComponent::audioDeviceStopped()
|
void MainComponent::audioDeviceStopped()
|
||||||
|
|||||||
@@ -28,6 +28,8 @@
|
|||||||
#include "ControlComponent.h"
|
#include "ControlComponent.h"
|
||||||
#include "Receiver.h"
|
#include "Receiver.h"
|
||||||
#include "Transmitter.h"
|
#include "Transmitter.h"
|
||||||
|
#include <radio/Vector.hpp>
|
||||||
|
#include "RxBuffer.hpp"
|
||||||
//[/Headers]
|
//[/Headers]
|
||||||
|
|
||||||
|
|
||||||
@@ -45,7 +47,8 @@ class MainComponent : public Component,
|
|||||||
public AudioIODeviceCallback,
|
public AudioIODeviceCallback,
|
||||||
public ReceiverDataListener,
|
public ReceiverDataListener,
|
||||||
public LogHandler,
|
public LogHandler,
|
||||||
public Timer
|
public Timer,
|
||||||
|
public Thread
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
@@ -74,10 +77,11 @@ private:
|
|||||||
ReceiverInterface *m_pReceiverControl;
|
ReceiverInterface *m_pReceiverControl;
|
||||||
TransmitterInterface *m_pTransmitterControl;
|
TransmitterInterface *m_pTransmitterControl;
|
||||||
float m_samplerate;
|
float m_samplerate;
|
||||||
|
RxBuffer<2> m_rxBuf;
|
||||||
void timerCallback() override;
|
void timerCallback() override;
|
||||||
AudioDeviceManager& getSharedAudioDeviceManager();
|
|
||||||
void changeListenerCallback (ChangeBroadcaster*) override;
|
void changeListenerCallback (ChangeBroadcaster*) override;
|
||||||
|
void run();
|
||||||
|
AudioDeviceManager& getSharedAudioDeviceManager();
|
||||||
void audioDeviceIOCallback (const float** inputChannelData,
|
void audioDeviceIOCallback (const float** inputChannelData,
|
||||||
int numInputChannels,
|
int numInputChannels,
|
||||||
float** outputChannelData,
|
float** outputChannelData,
|
||||||
|
|||||||
Reference in New Issue
Block a user