# HG changeset patch # User Mychaela Falconia # Date 1715657791 0 # Node ID 307fe06fabec31cd767e52dd7971b9cd4aadf761 # Parent c1aa6a4160f6a9b7d0daa5388d71b43344f0bb84 dhf: generate EFR hex DHF in C form diff -r c1aa6a4160f6 -r 307fe06fabec .hgignore --- a/.hgignore Mon May 13 22:49:21 2024 +0000 +++ b/.hgignore Tue May 14 03:36:31 2024 +0000 @@ -6,8 +6,9 @@ ^amrdiff/readone-amr$ ^amrdiff/readone-efr$ -^dhf/efr-dhf-hex\.txt$ +^dhf/efr-dhf-bytes\.c$ ^dhf/efr-dhf-hexout$ +^dhf/mr122-dhf-bytes\.c$ ^dmw/gen-dmw-bin$ ^dmw/dmw-[au]law\. diff -r c1aa6a4160f6 -r 307fe06fabec dhf/Makefile --- a/dhf/Makefile Mon May 13 22:49:21 2024 +0000 +++ b/dhf/Makefile Tue May 14 03:36:31 2024 +0000 @@ -1,15 +1,15 @@ CC= gcc CFLAGS= -O2 PROG= efr-dhf-hexout -OUTFILE=efr-dhf-hex.txt +COUT= efr-dhf-bytes.c mr122-dhf-bytes.c -all: ${PROG} ${OUTFILE} +all: ${PROG} ${COUT} ${PROG}: ${PROG}.c ${CC} ${CFLAGS} -o $@ $@.c -lgsmefr -ltwamr -${OUTFILE}: ${PROG} - ./${PROG} > $@ +${COUT}: efr-dhf-hexout + ./efr-dhf-hexout efr-dhf-bytes.c mr122-dhf-bytes.c clean: - rm -f *.o ${PROG} *.txt + rm -f *.o ${PROG} ${COUT} diff -r c1aa6a4160f6 -r 307fe06fabec dhf/efr-dhf-hexout.c --- a/dhf/efr-dhf-hexout.c Mon May 13 22:49:21 2024 +0000 +++ b/dhf/efr-dhf-hexout.c Tue May 14 03:36:31 2024 +0000 @@ -12,27 +12,40 @@ #include static void -emit_one_frame(params, name) +emit_one_frame(params, filename, cname) const int16_t *params; - char *name; + char *filename, *cname; { uint8_t efr_rtp[EFR_RTP_FRAME_LEN]; + FILE *outf; unsigned n; EFR_params2frame(params, efr_rtp); - printf("%s:\n\n", name); + outf = fopen(filename, "w"); + if (!outf) { + perror(filename); + exit(1); + } + fputs("#include \n\n", outf); + fprintf(outf, "const uint8_t %s[31] = {\n", cname); for (n = 0; n < EFR_RTP_FRAME_LEN; n++) { - printf("0x%02X,", efr_rtp[n]); + fprintf(outf, "0x%02X,", efr_rtp[n]); if (n == 15 || n == 30) - putchar('\n'); + putc('\n', outf); } - putchar('\n'); + fputs("};\n", outf); + fclose(outf); } main(argc, argv) char **argv; { - emit_one_frame(amr_dhf_gsmefr, "EFR DHF"); - emit_one_frame(amr_dhf_mr122, "MR122 DHF"); + if (argc != 3) { + fprintf(stderr, "usage: %s efr-dhf-out mr122-dhf-out\n", + argv[0]); + exit(1); + } + emit_one_frame(amr_dhf_gsmefr, argv[1], "efr_dhf_bytes"); + emit_one_frame(amr_dhf_mr122, argv[2], "mr122_dhf_bytes"); exit(0); }