9b7095a6e3
About to try some extreme re-architecting, so...
74 lines
1.6 KiB
C++
74 lines
1.6 KiB
C++
//======================================================================
|
|
// audio.h
|
|
//======================================================================
|
|
|
|
#ifndef __iop_audio_h__
|
|
#define __iop_audio_h__
|
|
|
|
#include <Audio.h>
|
|
#include "config.h"
|
|
|
|
enum RxInput {
|
|
RX_RIG_IN = 0,
|
|
RX_USB_IN = 1,
|
|
};
|
|
|
|
enum RxOutput {
|
|
RX_SPEAKER_OUT = 0,
|
|
RX_LINE_OUT = 1,
|
|
RX_USB_OUT = 2,
|
|
};
|
|
|
|
enum TxInput {
|
|
TX_MIC_IN = -1,
|
|
TX_LINE_IN = 0,
|
|
TX_USB_IN = 1,
|
|
TX_TEST_IN = 2,
|
|
};
|
|
|
|
enum TxOutput {
|
|
TX_RIG_OUT = 0,
|
|
TX_USB_OUT = 1,
|
|
};
|
|
|
|
//======================================================================
|
|
|
|
class BPFilter {
|
|
|
|
public:
|
|
|
|
BPFilter(double f1, double f2, bool use_center, short int window, short int coeff);
|
|
void setFreqLo(double f);
|
|
void setFreqHi(double f);
|
|
void setBand(double f1, double f2);
|
|
void setCenter(double c);
|
|
void setWidth(double w);
|
|
void setCenterAndWidth(double c, double w);
|
|
void update(AudioFilterFIR* filter, short* coefficients);
|
|
|
|
private:
|
|
|
|
double _freq_lo;
|
|
double _freq_hi;
|
|
short int _window;
|
|
short int _coeff;
|
|
float _recovery; // recovery amplifier value
|
|
|
|
static AudioFilterFIR* _filter; // = &filterRX;
|
|
static short _coefficients[];
|
|
};
|
|
|
|
//======================================================================
|
|
|
|
void audioInit();
|
|
void audioSelectTxInput(TxInput);
|
|
void audioTransmit();
|
|
void audioReceive();
|
|
void audioCalibrate(IOPConfig *, char, char, char, float, bool);
|
|
|
|
#endif
|
|
|
|
//======================================================================
|
|
// EOF
|
|
//======================================================================
|