diff libgsmhr1/dec_state.c @ 596:8e4ecdfadf5a

libgsmhr1: capture decoder state
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 04 Dec 2025 06:25:54 +0000
parents libgsmhr1/rxfe_create.c@9cda792c0dd7
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgsmhr1/dec_state.c	Thu Dec 04 06:25:54 2025 +0000
@@ -0,0 +1,37 @@
+/*
+ * Here we implement gsmhr_decoder_create() and gsmhr_decoder_reset()
+ * functions: allocation and initialization of full speech decoder state.
+ */
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include "tw_gsmhr.h"
+#include "typedefs.h"
+#include "namespace.h"
+#include "dec_state.h"
+#include "dtx_const.h"
+
+struct gsmhr_decoder_state *gsmhr_decoder_create(void)
+{
+	struct gsmhr_decoder_state *st;
+
+	st = malloc(sizeof(struct gsmhr_decoder_state));
+	if (st)
+		gsmhr_decoder_reset(st);
+	return st;
+}
+
+void gsmhr_decoder_reset(struct gsmhr_decoder_state *st)
+{
+	int i;
+
+	memset(st, 0, sizeof(struct gsmhr_decoder_state));
+	gsmhr_rxfe_reset(&st->rxfe);
+	for (i = 0; i < 4; i++) {
+		st->plSubfrEnergyMem[i] = 80;
+		st->swLevelMem[i] = -72;
+	}
+	st->swRxDTXState = CNINTPER - 1;
+	st->is_homed = 1;
+}