FreeCalypso > hg > vband-misc
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 } |