@@ -166,7 +166,7 @@ int sdm_send(sdm_session_t *ss, int cmd_code, ...)
166
166
va_list ap ;
167
167
int n ;
168
168
char * data ;
169
- int data_len = 0 ;
169
+ uint32_t data_len = 0 ;
170
170
char * cmd_raw ;
171
171
sdm_pkt_t * cmd ;
172
172
@@ -178,19 +178,18 @@ int sdm_send(sdm_session_t *ss, int cmd_code, ...)
178
178
cmd -> magic = SDM_PKG_MAGIC ;
179
179
cmd -> cmd = cmd_code ;
180
180
181
+ va_start (ap , cmd_code );
181
182
switch (cmd_code ) {
182
183
case SDM_CMD_STOP :
183
184
case SDM_CMD_SYSTIME :
184
185
break ;
185
186
case SDM_CMD_CONFIG : {
186
187
uint16_t preamp_gain ;
187
188
188
- va_start (ap , cmd_code );
189
- cmd -> threshold = va_arg (ap , int );
190
- cmd -> gain_and_srclvl = va_arg (ap , int ) << 7 ;
191
- cmd -> gain_and_srclvl |= va_arg (ap , int );
192
- preamp_gain = (va_arg (ap , int ) & 0xf ) << 12 ;
193
- va_end (ap );
189
+ cmd -> threshold = va_arg (ap , unsigned );
190
+ cmd -> gain_and_srclvl = va_arg (ap , unsigned ) << 7 ;
191
+ cmd -> gain_and_srclvl |= va_arg (ap , unsigned );
192
+ preamp_gain = (va_arg (ap , unsigned ) & 0xf ) << 12 ;
194
193
data_len = cmd -> data_len = 1 ;
195
194
cmd_raw = realloc (cmd_raw , SDM_PKT_T_SIZE + cmd -> data_len * 2 );
196
195
memcpy (& cmd_raw [SDM_PKT_T_OFFSET_DATA ], & preamp_gain , 2 );
@@ -201,12 +200,10 @@ int sdm_send(sdm_session_t *ss, int cmd_code, ...)
201
200
uint32_t delay , samples ;
202
201
uint32_t gain , sample_rate ;
203
202
204
- va_start (ap , cmd_code );
205
- delay = va_arg (ap , int );
206
- samples = va_arg (ap , int );
207
- gain = va_arg (ap , int );
208
- sample_rate = va_arg (ap , int );
209
- va_end (ap );
203
+ delay = va_arg (ap , unsigned );
204
+ samples = va_arg (ap , unsigned );
205
+ gain = va_arg (ap , unsigned );
206
+ sample_rate = va_arg (ap , unsigned );
210
207
211
208
cmd -> rx_len = (gain << 4 ) + (sample_rate << 1 );
212
209
@@ -218,64 +215,50 @@ int sdm_send(sdm_session_t *ss, int cmd_code, ...)
218
215
break ;
219
216
}
220
217
case SDM_CMD_TX_CONTINUE :
221
- va_start (ap , cmd_code );
222
218
va_arg (ap , unsigned );
223
219
data = va_arg (ap , char * );
224
220
data_len = va_arg (ap , int );
225
- va_end (ap );
226
221
break ;
227
222
case SDM_CMD_TX :
228
223
{
229
224
char * d ;
230
225
231
- va_start (ap , cmd_code );
232
-
233
226
cmd -> data_len = va_arg (ap , unsigned );
234
227
d = va_arg (ap , char * );
235
- data_len = va_arg (ap , int );
228
+ data_len = va_arg (ap , unsigned );
236
229
237
230
/* FIXME: quick fix. Padding up to 1024 samples here */
238
231
cmd -> data_len = ((cmd -> data_len + 1023 ) / 1024 ) * 1024 ;
239
232
cmd_raw = realloc (cmd_raw , SDM_PKT_T_SIZE + data_len * 2 );
240
233
memcpy (& cmd_raw [SDM_PKT_T_OFFSET_DATA ], d , data_len * 2 );
241
-
242
- va_end (ap );
243
234
break ;
244
235
}
245
236
case SDM_CMD_REF :
246
237
{
247
238
char * d ;
248
239
249
- va_start (ap , cmd_code );
250
-
251
240
d = va_arg (ap , char * );
252
- data_len = va_arg (ap , int );
241
+ data_len = va_arg (ap , unsigned );
253
242
cmd -> data_len = data_len ;
254
243
255
244
cmd_raw = realloc (cmd_raw , SDM_PKT_T_SIZE + data_len * 2 );
256
245
memset (& cmd_raw [SDM_PKT_T_OFFSET_DATA ], 0 , data_len * 2 );
257
246
memcpy (& cmd_raw [SDM_PKT_T_OFFSET_DATA ], d , data_len * 2 );
258
-
259
- va_end (ap );
260
247
break ;
261
248
}
262
249
case SDM_CMD_RX :
263
250
case SDM_CMD_RX_JANUS :
264
251
{
265
- va_start (ap , cmd_code );
266
- cmd -> rx_len = va_arg (ap , int ) & 0xffffff ;
267
- va_end (ap );
252
+ cmd -> rx_len = va_arg (ap , unsigned long ) & 0xffffff ;
268
253
break ;
269
254
}
270
255
case SDM_CMD_USBL_RX :
271
256
{
272
257
uint8_t channel ;
273
258
uint16_t samples ;
274
259
275
- va_start (ap , cmd_code );
276
- channel = va_arg (ap , int );
277
- samples = va_arg (ap , int );
278
- va_end (ap );
260
+ channel = va_arg (ap , unsigned );
261
+ samples = va_arg (ap , unsigned );
279
262
280
263
cmd -> rx_len = samples + (channel << 21 );
281
264
break ;
@@ -286,6 +269,8 @@ int sdm_send(sdm_session_t *ss, int cmd_code, ...)
286
269
return -1 ;
287
270
}
288
271
272
+ va_end (ap );
273
+
289
274
if (cmd_code == SDM_CMD_TX_CONTINUE ) {
290
275
if (data_len ) {
291
276
logger (TRACE_LOG , "tx cmd continue: %d samples \n" , data_len );
0 commit comments