FreeCalypso > hg > gsm-codec-lib
annotate libgsmhr1/rxfe.h @ 579:1dc5d9320e96
libgsmhr1: implement RxFE block
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 13 Feb 2025 09:10:12 +0000 |
parents | |
children | e2d5cad04cbf |
rev | line source |
---|---|
579
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This library-internal header file provides definition for |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * struct gsmhr_rxfe_state, the state structure for our Rx front end |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * that can function either as part of the full endpoint decoder |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * or standalone as a TFO transform. The internal interface function |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 * to the RxFE block as a whole (to be called from the full decoder |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 * or from the TFO wrapper) is also declared here. |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 */ |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #ifndef rxfe_h |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #define rxfe_h |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 #include <stdint.h> |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 #include "tw_gsmhr.h" |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 #include "typedefs.h" |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 #define GS_HISTORY_SIZE 28 |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 struct gsmhr_rxfe_state { |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 Shortword saved_frame[GSMHR_NUM_PARAMS]; |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 Longword gs_history[GS_HISTORY_SIZE]; |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 Longword cn_prng; |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 Shortword gs_cn_out; |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 uint8_t in_dtx; |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 uint8_t ecu_state; |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 uint8_t dtx_bfi_count; |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 uint8_t dtx_muting; |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 uint8_t gs_history_ptr; |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 }; |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 void rxfe_main(struct gsmhr_rxfe_state *st, const Shortword *prm_in, |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 Shortword *prm_out, int fast_cn_muting, |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 Shortword *deco_mode_out, Shortword *mute_permit, |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 Shortword *dtxd_sp); |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 |
1dc5d9320e96
libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 #endif /* include guard */ |