forked from paulh002/sdrberry
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAMmodulator.h
30 lines (26 loc) · 862 Bytes
/
AMmodulator.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#pragma once
#include "Demodulator.h"
class AMModulator :
public Demodulator
{
public:
AMModulator(int mode, double ifrate, int pcmrate, int tone, DataBuffer<IQSample16> *source_buffer, AudioInput *audio_input);
~AMModulator();
void process(const IQSampleVector& samples_in, SampleVector& samples);
void operator()();
void tone(bool tone);
double get_if_level() const
{
return m_if_level;
}
static void destroy_modulator();
static bool create_modulator(int mode, double ifrate, int pcmrate, int tone, DataBuffer<IQSample16> *source_buffer, AudioInput *audio_input);
atomic<bool> stop_flag {false};
std::thread ammod_thread;
private:
bool m_tone;
ampmodem modAM {nullptr};
nco_crcf m_fft {nullptr};
void fft_offset(long offset);
void mix_up_fft(const IQSampleVector& filter_in, IQSampleVector& filter_out);
};