- 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_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()
|
||||
|
||||
Reference in New Issue
Block a user