changeset 571:c6d0b1a7281e

libgsmhr1: API definition for TFO transform
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 12 Feb 2025 07:57:29 +0000
parents b4c4ed4b1b91
children 02a3c88b415d
files libgsmhr1/tw_gsmhr.h
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/libgsmhr1/tw_gsmhr.h	Wed Feb 12 04:53:08 2025 +0000
+++ b/libgsmhr1/tw_gsmhr.h	Wed Feb 12 07:57:29 2025 +0000
@@ -19,18 +19,21 @@
 #define	GSMHR_FRAME_LEN_RPF	14	/* raw packed format */
 #define	GSMHR_FRAME_LEN_5993	15	/* RFC 5993 and TW-TS-002 */
 
-/* stateful encoder and decoder engines */
+/* stateful encoder, decoder and TFO engines */
 
 struct gsmhr_encoder_state;	/* opaque to external users */
 struct gsmhr_decoder_state;	/* ditto */
+struct gsmhr_rxfe_state;
 
 struct gsmhr_encoder_state *gsmhr_encoder_create(int dtx);
 struct gsmhr_decoder_state *gsmhr_decoder_create(void);
+struct gsmhr_rxfe_state *gsmhr_rxfe_create(void);
 /* use standard free() call to free both afterward */
 
 /* reset state to initial */
 void gsmhr_encoder_reset(struct gsmhr_encoder_state *st, int dtx);
 void gsmhr_decoder_reset(struct gsmhr_decoder_state *st);
+void gsmhr_rxfe_reset(struct gsmhr_rxfe_state *st);
 
 /* encoder and decoder main functions */
 void gsmhr_encode_frame(struct gsmhr_encoder_state *st, const int16_t *pcm,
@@ -38,6 +41,10 @@
 void gsmhr_decode_frame(struct gsmhr_decoder_state *st, const int16_t *param,
 			int16_t *pcm);
 
+/* TFO transform */
+void gsmhr_tfo_xfrm(struct gsmhr_rxfe_state *st, int dtxd, const int16_t *ul,
+		    int16_t *dl);
+
 /* stateless format conversion functions */
 
 void gsmhr_pack_ts101318(const int16_t *param, uint8_t *payload);