diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgsmhr1/rxfe.h	Thu Feb 13 09:10:12 2025 +0000
@@ -0,0 +1,36 @@
+/*
+ * This library-internal header file provides definition for
+ * struct gsmhr_rxfe_state, the state structure for our Rx front end
+ * that can function either as part of the full endpoint decoder
+ * or standalone as a TFO transform.  The internal interface function
+ * to the RxFE block as a whole (to be called from the full decoder
+ * or from the TFO wrapper) is also declared here.
+ */
+
+#ifndef rxfe_h
+#define rxfe_h
+
+#include <stdint.h>
+#include "tw_gsmhr.h"
+#include "typedefs.h"
+
+#define	GS_HISTORY_SIZE	28
+
+struct gsmhr_rxfe_state {
+	Shortword saved_frame[GSMHR_NUM_PARAMS];
+	Longword gs_history[GS_HISTORY_SIZE];
+	Longword cn_prng;
+	Shortword gs_cn_out;
+	uint8_t in_dtx;
+	uint8_t ecu_state;
+	uint8_t dtx_bfi_count;
+	uint8_t dtx_muting;
+	uint8_t gs_history_ptr;
+};
+
+void rxfe_main(struct gsmhr_rxfe_state *st, const Shortword *prm_in,
+		Shortword *prm_out, int fast_cn_muting,
+		Shortword *deco_mode_out, Shortword *mute_permit,
+		Shortword *dtxd_sp);
+
+#endif	/* include guard */