OSDN Git Service

Merge branch 'suikan_experimental2' into develop
[trx-305dsp/dsp.git] / hirado / demodulator.h
1 /*
2  * demodulator.h
3  *
4  *  Created on: 2015/03/10
5  *      Author: takemasa
6  */
7
8 #ifndef DEMODULATOR_H_
9 #define DEMODULATOR_H_
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
19
20 #ifndef _MACRO_ONLY
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])
31 // Flag 0
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
36
37 // Flag10
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)
41
42 // Flag 12
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)
45
46 // Set S meter
47 #define radio_api_set_S_meter(s) radio.smeter = s
48
49
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 );
53
54 #endif /* _MACRO_ONLY */
55
56 #endif /* DEMODULATOR_H_ */