1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-05 15:34:57 -04:00

Morse Decoder: basic functionality

This commit is contained in:
f4exb
2024-05-17 18:24:36 +02:00
parent 4387f54f0d
commit 39bc799509
11 changed files with 437 additions and 81 deletions
@@ -20,6 +20,8 @@
#include <vector>
#include "ggmorse/ggmorse.h"
#include <QObject>
#include <QRecursiveMutex>
#include <QByteArray>
@@ -31,7 +33,6 @@
#include "morsedecodersettings.h"
class MorseDecoderWorker : public QObject {
Q_OBJECT
public:
@@ -100,10 +101,16 @@ private:
MessageQueue *m_msgQueueToFeature; //!< Queue to report channel change to main feature object
MorseDecoderSettings m_settings;
double m_magsq;
SampleVector m_sampleBuffer;
int m_sampleBufferSize;
int m_nbBytes;
QByteArray m_bytesBuffer;
int m_bytesBufferSize;
int m_bytesBufferCount;
QByteArray m_convBuffer;
QRecursiveMutex m_mutex;
GGMorse::Parameters *m_ggMorseParameters;
GGMorse *m_ggMorse;
bool m_auto;
float m_pitchHz;
float m_speedWPM;
void feedPart(
const QByteArray::const_iterator& begin,
@@ -112,6 +119,31 @@ private:
);
bool handleMessage(const Message& cmd);
int processBuffer(QByteArray& bytesBuffer); //!< return the number of bytes left
// inline void processSample(
// DataFifo::DataType dataType,
// const QByteArray::const_iterator& begin,
// int nbBytesPerSample,
// int i
// )
// {
// int16_t *s = (int16_t*) begin + (i*nbBytesPerSample);
// switch(dataType)
// {
// case DataFifo::DataTypeI16: {
// m_sampleBuffer[i] = *s;
// }
// break;
// case DataFifo::DataTypeCI16: {
// int32_t re = s[2*i];
// int32_t im = s[2*i+1];
// m_sampleBuffer[i] = (int16_t) ((re+im) / 2);
// }
// break;
// }
// }
private slots:
void handleInputMessages();