FreeCalypso > hg > gsm-codec-lib
annotate hrutil/dec-craft.c @ 585:3c6bf0d26ee7 default tip
TW-TS-005 reader: fix maximum line length bug
TW-TS-005 section 4.1 states:
The maximum allowed length of each line is 80 characters, not
including the OS-specific newline encoding.
The implementation of this line length limit in the TW-TS-005 hex file
reader function in the present suite was wrong, such that lines of
the full maximum length could not be read. Fix it.
Note that this bug affects comment lines too, not just actual RTP
payloads. Neither Annex A nor Annex B features an RTP payload format
that goes to the maximum of 40 bytes, but if a comment line goes to
the maximum allowed length of 80 characters not including the
terminating newline, the bug will be triggered, necessitating
the present fix.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 25 Feb 2025 07:49:28 +0000 |
parents | 94f0cc85ad50 |
children |
rev | line source |
---|---|
518
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This program facilitates hand-crafting HRv1 decoder input files (*.dec). |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * It reads a line-based ASCII source and compiles it into binary *.dec format. |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 */ |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 #include <sys/types.h> |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <ctype.h> |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include <stdio.h> |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 #include <stdint.h> |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include <stdlib.h> |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #include <string.h> |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #include <strings.h> |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 #include "../libgsmhr1/tw_gsmhr.h" |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 #define MAX_FIELDS 18 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 static char *infname, *outfname; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 static FILE *inf, *outf; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 static int lineno; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 static char linebuf[256]; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 static char *fields[MAX_FIELDS]; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 static unsigned nfields; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 static int16_t dec_frame[GSMHR_NUM_PARAMS_DEC]; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 static unsigned taf_count; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 static void |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 set_all_0() |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 bzero(dec_frame, sizeof(int16_t) * GSMHR_NUM_PARAMS); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 static void |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 set_dhf() |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 bcopy(gsmhr_dhf_params, dec_frame, sizeof(int16_t) * GSMHR_NUM_PARAMS); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 static void |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 set_sid_cw() |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 { |
576
94f0cc85ad50
gsmhr-dec-craft: use gsmhr_set_sid_cw_params() function
Mychaela Falconia <falcon@freecalypso.org>
parents:
569
diff
changeset
|
43 gsmhr_set_sid_cw_params(dec_frame); |
518
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 static int |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 get_line() |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 char *cp; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 if (!fgets(linebuf, sizeof linebuf, inf)) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 return 1; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 lineno++; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 if (!index(linebuf, '\n')) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 fprintf(stderr, "%s line %d: too long or missing newline\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 infname, lineno); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 nfields = 0; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 for (cp = linebuf; ; ) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 while (isspace(*cp)) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 cp++; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 if (*cp == '\0' || *cp == '#') |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 break; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 if (nfields >= MAX_FIELDS) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 fprintf(stderr, "%s line %d: too many fields\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 infname, lineno); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 fields[nfields++] = cp; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 while (*cp && !isspace(*cp)) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 cp++; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 if (*cp) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 *cp++ = '\0'; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 return 0; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 static int |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 get_line_nonempty() |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 int rc; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 for (;;) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 rc = get_line(); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 if (rc) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 return rc; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 if (nfields) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 return 0; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 static void |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 set_speech_params(start_param, start_arg) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 unsigned start_param, start_arg; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 unsigned ni, no; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 u_long val; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 char *cp; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 no = start_param; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 for (ni = start_arg; ni < nfields; ni++) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 if (!isxdigit(fields[ni][0])) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 inv_number: fprintf(stderr, |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 "%s line %d: field \"%s\" is not a valid number\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 infname, lineno, fields[ni]); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 val = strtoul(fields[ni], &cp, 16); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 if (*cp) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 goto inv_number; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 if (val > 0x7FF) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 fprintf(stderr, |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 "%s line %d: number \"%s\" is too large for a speech parameter\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 infname, lineno, fields[ni]); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 dec_frame[no++] = val; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 static void |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 handle_r0() |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 if (nfields != 2) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 fprintf(stderr, "%s line %d: R0 takes one argument\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 infname, lineno); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 set_speech_params(0, 1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 static void |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 handle_lpc() |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 if (nfields != 5) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 fprintf(stderr, "%s line %d: LPC takes 4 arguments\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 infname, lineno); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 set_speech_params(1, 1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 static void |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 handle_mode() |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 if (nfields != 2) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 fprintf(stderr, "%s line %d: Mode takes one argument\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 infname, lineno); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 set_speech_params(5, 1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 static void |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 handle_sf() |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 unsigned sf_0_based; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 if (nfields != 5) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 fprintf(stderr, "%s line %d: sf takes 4 arguments\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 infname, lineno); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 if (fields[1][0] < '1' || fields[1][0] > '4' || fields[1][1]) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 fprintf(stderr, |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 "%s line %d: first argument to sf must be in range [1,4]\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 infname, lineno); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 } |
519
6f8abfe253a4
gsmhr-dec-craft: works after bugfix
Mychaela Falconia <falcon@freecalypso.org>
parents:
518
diff
changeset
|
171 sf_0_based = fields[1][0] - '1'; |
518
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 set_speech_params(6 + sf_0_based * 3, 2); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 static void |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 handle_bfi() |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 if (nfields != 2) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 fprintf(stderr, "%s line %d: BFI takes one argument\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 infname, lineno); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 if (fields[1][0] < '0' || fields[1][0] > '1' || fields[1][1]) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 fprintf(stderr, |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 "%s line %d: invalid BFI argument \"%s\" (must be 0 or 1)\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 infname, lineno, fields[1]); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 dec_frame[18] = fields[1][0] - '0'; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 static void |
569
0d05892150cf
gsmhr-dec-craft: add bfi-nodata setting
Mychaela Falconia <falcon@freecalypso.org>
parents:
519
diff
changeset
|
193 handle_bfi_nodata() |
0d05892150cf
gsmhr-dec-craft: add bfi-nodata setting
Mychaela Falconia <falcon@freecalypso.org>
parents:
519
diff
changeset
|
194 { |
0d05892150cf
gsmhr-dec-craft: add bfi-nodata setting
Mychaela Falconia <falcon@freecalypso.org>
parents:
519
diff
changeset
|
195 dec_frame[18] = 2; |
0d05892150cf
gsmhr-dec-craft: add bfi-nodata setting
Mychaela Falconia <falcon@freecalypso.org>
parents:
519
diff
changeset
|
196 } |
0d05892150cf
gsmhr-dec-craft: add bfi-nodata setting
Mychaela Falconia <falcon@freecalypso.org>
parents:
519
diff
changeset
|
197 |
0d05892150cf
gsmhr-dec-craft: add bfi-nodata setting
Mychaela Falconia <falcon@freecalypso.org>
parents:
519
diff
changeset
|
198 static void |
518
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 handle_ufi() |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 if (nfields != 2) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 fprintf(stderr, "%s line %d: UFI takes one argument\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 infname, lineno); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 if (fields[1][0] < '0' || fields[1][0] > '1' || fields[1][1]) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 fprintf(stderr, |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 "%s line %d: invalid UFI argument \"%s\" (must be 0 or 1)\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 infname, lineno, fields[1]); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 dec_frame[19] = fields[1][0] - '0'; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 static void |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 handle_sid() |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 if (nfields != 2) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 fprintf(stderr, "%s line %d: SID takes one argument\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 infname, lineno); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 if (fields[1][0] < '0' || fields[1][0] > '2' || fields[1][1]) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 fprintf(stderr, |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 "%s line %d: invalid SID argument \"%s\" (must be 0, 1 or 2)\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 infname, lineno, fields[1]); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 dec_frame[20] = fields[1][0] - '0'; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 static void |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 set_taf_count() |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 if (nfields != 2) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 fprintf(stderr, "%s line %d: taf-count takes one argument\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 infname, lineno); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 taf_count = atoi(fields[1]); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 if (taf_count > 11) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 fprintf(stderr, |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 "%s line %d: taf-count argument \"%s\" is invalid\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 infname, lineno, fields[1]); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 static void |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 emit_frame() |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 if (gsmhr_check_common_params(dec_frame) < 0) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 fprintf(stderr, |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 "%s line %d: one of the preceding speech parameters is out of range\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 infname, lineno); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258 dec_frame[21] = (taf_count == 11); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 fwrite(dec_frame, 2, GSMHR_NUM_PARAMS_DEC, outf); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 taf_count++; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 if (taf_count >= 12) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 taf_count = 0; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 main(argc, argv) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 char **argv; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 int rc; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 if (argc != 3) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 fprintf(stderr, "usage: %s input.src output.dec\n", argv[0]); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274 infname = argv[1]; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 outfname = argv[2]; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 inf = fopen(infname, "r"); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 if (!inf) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 perror(infname); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 outf = fopen(outfname, "w"); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283 if (!outf) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 perror(outfname); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288 for (;;) { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 rc = get_line_nonempty(); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
290 if (rc) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291 break; |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
292 if (!strcasecmp(fields[0], "all-0")) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
293 set_all_0(); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 else if (!strcasecmp(fields[0], "dhf")) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
295 set_dhf(); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296 else if (!strcasecmp(fields[0], "r0")) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297 handle_r0(); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
298 else if (!strcasecmp(fields[0], "lpc")) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
299 handle_lpc(); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
300 else if (!strcasecmp(fields[0], "mode")) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
301 handle_mode(); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
302 else if (!strcasecmp(fields[0], "sf")) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
303 handle_sf(); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
304 else if (!strcasecmp(fields[0], "bfi")) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
305 handle_bfi(); |
569
0d05892150cf
gsmhr-dec-craft: add bfi-nodata setting
Mychaela Falconia <falcon@freecalypso.org>
parents:
519
diff
changeset
|
306 else if (!strcasecmp(fields[0], "bfi-nodata")) |
0d05892150cf
gsmhr-dec-craft: add bfi-nodata setting
Mychaela Falconia <falcon@freecalypso.org>
parents:
519
diff
changeset
|
307 handle_bfi_nodata(); |
518
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
308 else if (!strcasecmp(fields[0], "ufi")) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
309 handle_ufi(); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310 else if (!strcasecmp(fields[0], "sid")) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
311 handle_sid(); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312 else if (!strcasecmp(fields[0], "sid-cw")) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313 set_sid_cw(); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314 else if (!strcasecmp(fields[0], "taf-count")) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315 set_taf_count(); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 else if (!strcasecmp(fields[0], "emit-frame")) |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 emit_frame(); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318 else { |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319 fprintf(stderr, |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
320 "%s line %d: non-understood keyword \"%s\"\n", |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321 infname, lineno, fields[0]); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
322 exit(1); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
324 } |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
325 exit(0); |
087a88d25ba2
new program gsmhr-dec-craft
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
326 } |