4 * Created on: 2015/03/10
11 // Following mode macro can be used only the demodulator
12 #define radio_mode_WFM 2
13 #define radio_mode_NFM 4
14 #define radio_mode_AM 5
15 #define radio_mode_SAM 6
16 #define radio_mode_LSB 7
17 #define radio_mode_USB 8
18 #define radio_mode_CW 9
21 // These APIs are published for the demodulator programmer
22 #define radio_api_getARM_mode() (radio.comdata[1])
23 #define radio_api_getAIS_if_shift() (signed short)(radio.comdata[2])
24 #define radio_api_getAAT_attack() (radio.comdata[3])
25 #define radio_api_getAFA_fade() (radio.comdata[4])
26 #define radio_api_getAST_noise_squelch_level() (radio.comdata[5])
27 #define radio_api_getACP_cw_pitch() (radio.comdata[6])
28 #define radio_api_getADN_denoiser() (radio.comdata[7])
29 #define radio_api_getAAN_auto_notch() (radio.comdata[8])
30 #define radio_api_getAGL_gain_level() (radio.comdata[11])
32 #define radio_api_getAIF_filter() ((radio.comdata[0]>>1)&0x7)
33 #define radio_api_getABN_noise_blanker_on() ((~radio.comdata[0]>>11)&0x1)
34 #define radio_api_getARG_agc_on() (~(radio.comdata[0]>>13)&0x1)
35 #define radio_api_is_USB() ((radio.comdata[0]>>6)&0x1) // 1 if USB
38 #define radio_api_getANE_noise_squelch_on() ((radio.comdata[10]>>1)&0x1)
39 #define radio_api_getAAF_hpf() ((radio.comdata[10]>>4)&0x3)
40 #define radio_api_getAAF_lpf() ((radio.comdata[10]>>2)&0x3)
43 #define radio_api_getAVP_voice_squelch_level() ((radio.comdata[12])&0x3F)
44 #define radio_api_getAVS_voice_squelch_on() ((~radio.comdata[12]>>7)&0x1)
47 #define radio_api_set_S_meter(s) radio.smeter = s
50 void init_demodulator(void);
51 void radio_demodulate_wide_FM( short idata[], short qdata[], short* left, short* right );
52 void radio_demodulate_non_wide_FM( int idata, int qdata, short* left, short* right );
54 #endif /* _MACRO_ONLY */
56 #endif /* DEMODULATOR_H_ */