@@ -67,6 +67,9 @@ int main(int argc, char *argv[]) {
67
67
int use_squelch , vq_type ;
68
68
float squelch = 0 ;
69
69
struct freedv * freedv ;
70
+ int use_passthroughgain ;
71
+ float passthroughgain = 0.0 ;
72
+
70
73
char f2020 [80 ] = {0 };
71
74
#ifdef __LPCNET__
72
75
sprintf (f2020 ,"|2020|2020A|2020B" );
@@ -93,27 +96,28 @@ int main(int argc, char *argv[]) {
93
96
}
94
97
95
98
use_testframes = verbose = discard = use_complex = use_dpsk = use_squelch = 0 ; use_reliabletext = 0 ;
96
- vq_type = -1 ;
99
+ vq_type = -1 ; use_passthroughgain = 0 ;
97
100
98
101
int o = 0 ;
99
102
int opt_idx = 0 ;
100
103
while ( o != -1 ){
101
104
static struct option long_opts [] = {
102
- {"discard" , no_argument , 0 , 'i' },
103
- {"dpsk" , no_argument , 0 , 'd' },
104
- {"help" , no_argument , 0 , 'h' },
105
- {"reliabletext" , no_argument , 0 , 'r' },
106
- {"squelch" , required_argument , 0 , 's' },
107
- {"txtrx" , required_argument , 0 , 'x' },
108
- {"testframes" , no_argument , 0 , 't' },
109
- {"usecomplex" , no_argument , 0 , 'c' },
110
- {"verbose1" , no_argument , 0 , 'v' },
111
- {"vv" , no_argument , 0 , 'w' },
112
- {"indopt" , required_argument , 0 , 'n' },
105
+ {"discard" , no_argument , 0 , 'i' },
106
+ {"dpsk" , no_argument , 0 , 'd' },
107
+ {"help" , no_argument , 0 , 'h' },
108
+ {"reliabletext" , no_argument , 0 , 'r' },
109
+ {"squelch" , required_argument , 0 , 's' },
110
+ {"txtrx" , required_argument , 0 , 'x' },
111
+ {"testframes" , no_argument , 0 , 't' },
112
+ {"usecomplex" , no_argument , 0 , 'c' },
113
+ {"verbose1" , no_argument , 0 , 'v' },
114
+ {"vv" , no_argument , 0 , 'w' },
115
+ {"indopt" , required_argument , 0 , 'n' },
116
+ {"passthroughgain" , required_argument , 0 , 'p' },
113
117
{0 , 0 , 0 , 0 }
114
118
};
115
119
116
- o = getopt_long (argc ,argv ,"idhr:s:x:tcvwn:" ,long_opts ,& opt_idx );
120
+ o = getopt_long (argc ,argv ,"idhr:s:x:tcvwn:p: " ,long_opts ,& opt_idx );
117
121
118
122
switch (o ) {
119
123
case 'i' :
@@ -131,7 +135,11 @@ int main(int argc, char *argv[]) {
131
135
else
132
136
vq_type = 2 ;
133
137
break ;
134
- case 'r' :
138
+ case 'p' :
139
+ use_passthroughgain = 1 ;
140
+ passthroughgain = atof (optarg );
141
+ break ;
142
+ case 'r' :
135
143
use_reliabletext = 1 ;
136
144
break ;
137
145
case 's' :
@@ -216,7 +224,8 @@ int main(int argc, char *argv[]) {
216
224
freedv_set_squelch_en (freedv , 1 );
217
225
}
218
226
freedv_set_dpsk (freedv , use_dpsk );
219
-
227
+ if (use_passthroughgain ) freedv_passthrough_gain (freedv , passthroughgain );
228
+
220
229
/* install optional handler for recevied txt characters */
221
230
if (ftxt_rx != NULL )
222
231
{
0 commit comments