annotate libgsmhr1/rxfe.h @ 584:fc7a59deb3c3 default tip

hrutil: new program gsmhr-tfo-xfrm
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 14 Feb 2025 01:34:48 +0000
parents e2d5cad04cbf
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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];
581
e2d5cad04cbf libgsmhr1 RxFE: store CN R0+LPC separately from speech
Mychaela Falconia <falcon@freecalypso.org>
parents: 579
diff changeset
22 Shortword cn_r0_lpc[4];
579
1dc5d9320e96 libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 Longword cn_prng;
1dc5d9320e96 libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 Shortword gs_cn_out;
1dc5d9320e96 libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 uint8_t in_dtx;
1dc5d9320e96 libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 uint8_t ecu_state;
1dc5d9320e96 libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 uint8_t dtx_bfi_count;
1dc5d9320e96 libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 uint8_t dtx_muting;
1dc5d9320e96 libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 uint8_t gs_history_ptr;
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
1dc5d9320e96 libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 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
33 Shortword *prm_out, int fast_cn_muting,
1dc5d9320e96 libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 Shortword *deco_mode_out, Shortword *mute_permit,
1dc5d9320e96 libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 Shortword *dtxd_sp);
1dc5d9320e96 libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36
1dc5d9320e96 libgsmhr1: implement RxFE block
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 #endif /* include guard */