changeset 275:5fbb323b2978

libgsmfr2: implement encoder homing
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 14 Apr 2024 03:06:03 +0000
parents 52c667f17d2c
children e4ca04586118
files libgsmfr2/Makefile libgsmfr2/enc_homing.c
diffstat 2 files changed, 23 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/libgsmfr2/Makefile	Sun Apr 14 02:57:18 2024 +0000
+++ b/libgsmfr2/Makefile	Sun Apr 14 03:06:03 2024 +0000
@@ -1,9 +1,10 @@
 CC=	gcc
 CFLAGS=	-O2
-OBJS=	add.o comfort_noise.o dec_main.o dec_wrap.o ed_state.o enc_main.o \
-	enc_wrap.o long_term.o lpc.o pack_frame.o pack_frame2.o pp_bad.o \
-	pp_good.o pp_state.o preprocess.o prng.o rpe.o short_term.o sidclass.o \
-	silence_frame.o table.o unpack_frame.o unpack_frame2.o xmaxc_mean.o
+OBJS=	add.o comfort_noise.o dec_main.o dec_wrap.o ed_state.o enc_homing.o \
+	enc_main.o enc_wrap.o long_term.o lpc.o pack_frame.o pack_frame2.o \
+	pp_bad.o pp_good.o pp_state.o preprocess.o prng.o rpe.o short_term.o \
+	sidclass.o silence_frame.o table.o unpack_frame.o unpack_frame2.o \
+	xmaxc_mean.o
 HDRS=	ed_internal.h ed_state.h pp_internal.h pp_state.h tw_gsmfr.h typedef.h
 LIB=	libgsmfr2.a
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgsmfr2/enc_homing.c	Sun Apr 14 03:06:03 2024 +0000
@@ -0,0 +1,18 @@
+/*
+ * This module contains our implementation of the optional homing feature
+ * for our GSM 06.10 encoder.
+ */
+
+#include <stdint.h>
+#include "tw_gsmfr.h"
+
+void gsmfr_0610_encoder_homing(struct gsmfr_0610_state *st, const int16_t *pcm)
+{
+	int i;
+
+	for (i = 0; i < 160; i++) {
+		if (pcm[i] != 0x0008)
+			return;
+	}
+	gsmfr_0610_reset(st);
+}