comparison dhf/efr-dhf-hexout.c @ 34:307fe06fabec

dhf: generate EFR hex DHF in C form
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 14 May 2024 03:36:31 +0000
parents baf74dff5368
children
comparison
equal deleted inserted replaced
33:c1aa6a4160f6 34:307fe06fabec
10 #include <stdlib.h> 10 #include <stdlib.h>
11 #include <gsm_efr.h> 11 #include <gsm_efr.h>
12 #include <tw_amr.h> 12 #include <tw_amr.h>
13 13
14 static void 14 static void
15 emit_one_frame(params, name) 15 emit_one_frame(params, filename, cname)
16 const int16_t *params; 16 const int16_t *params;
17 char *name; 17 char *filename, *cname;
18 { 18 {
19 uint8_t efr_rtp[EFR_RTP_FRAME_LEN]; 19 uint8_t efr_rtp[EFR_RTP_FRAME_LEN];
20 FILE *outf;
20 unsigned n; 21 unsigned n;
21 22
22 EFR_params2frame(params, efr_rtp); 23 EFR_params2frame(params, efr_rtp);
23 printf("%s:\n\n", name); 24 outf = fopen(filename, "w");
25 if (!outf) {
26 perror(filename);
27 exit(1);
28 }
29 fputs("#include <stdint.h>\n\n", outf);
30 fprintf(outf, "const uint8_t %s[31] = {\n", cname);
24 for (n = 0; n < EFR_RTP_FRAME_LEN; n++) { 31 for (n = 0; n < EFR_RTP_FRAME_LEN; n++) {
25 printf("0x%02X,", efr_rtp[n]); 32 fprintf(outf, "0x%02X,", efr_rtp[n]);
26 if (n == 15 || n == 30) 33 if (n == 15 || n == 30)
27 putchar('\n'); 34 putc('\n', outf);
28 } 35 }
29 putchar('\n'); 36 fputs("};\n", outf);
37 fclose(outf);
30 } 38 }
31 39
32 main(argc, argv) 40 main(argc, argv)
33 char **argv; 41 char **argv;
34 { 42 {
35 emit_one_frame(amr_dhf_gsmefr, "EFR DHF"); 43 if (argc != 3) {
36 emit_one_frame(amr_dhf_mr122, "MR122 DHF"); 44 fprintf(stderr, "usage: %s efr-dhf-out mr122-dhf-out\n",
45 argv[0]);
46 exit(1);
47 }
48 emit_one_frame(amr_dhf_gsmefr, argv[1], "efr_dhf_bytes");
49 emit_one_frame(amr_dhf_mr122, argv[2], "mr122_dhf_bytes");
37 exit(0); 50 exit(0);
38 } 51 }