-
Notifications
You must be signed in to change notification settings - Fork 6
/
FMDemodulator.h
28 lines (25 loc) · 773 Bytes
/
FMDemodulator.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
#pragma once
#include <cstdio>
#include <cassert>
#include <cmath>
#include <complex>
#include <liquid/liquid.h>
#include <vector>
#include "DataBuffer.h"
#include "AudioOutput.h"
#include "Demodulator.h"
class FMDemodulator : public Demodulator
{
public:
static bool create_demodulator(double ifrate, DataBuffer<IQSample> *source_buffer, AudioOutput *audio_output);
static void destroy_demodulator();
static std::string getName() { return "FMDemodulator";}
FMDemodulator(double ifrate, DataBuffer<IQSample> *source_buffer, AudioOutput *audio_output);
~FMDemodulator();
void process(const IQSampleVector& samples_in, SampleVector& audio) ;
void operator()() override;
atomic<bool> stop_flag{false};
private:
freqdem demodFM {nullptr};
float m_bandwidth;
};