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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }