@@ -344,8 +344,7 @@ void audio_pcm_info_clear_buf (struct audio_pcm_info *info, void *buf, int len)
344
344
345
345
if (info -> is_signed || info -> is_float ) {
346
346
memset (buf , 0x00 , len * info -> bytes_per_frame );
347
- }
348
- else {
347
+ } else {
349
348
switch (info -> bits ) {
350
349
case 8 :
351
350
memset (buf , 0x80 , len * info -> bytes_per_frame );
@@ -584,8 +583,7 @@ static size_t audio_pcm_sw_get_rpos_in(SWVoiceIn *sw)
584
583
rpos = hw -> conv_buf -> pos - live ;
585
584
if (rpos >= 0 ) {
586
585
return rpos ;
587
- }
588
- else {
586
+ } else {
589
587
return hw -> conv_buf -> size + rpos ;
590
588
}
591
589
}
@@ -788,10 +786,14 @@ static int audio_is_timer_needed(AudioState *s)
788
786
HWVoiceOut * hwo = NULL ;
789
787
790
788
while ((hwo = audio_pcm_hw_find_any_enabled_out (s , hwo ))) {
791
- if (!hwo -> poll_mode ) return 1 ;
789
+ if (!hwo -> poll_mode ) {
790
+ return 1 ;
791
+ }
792
792
}
793
793
while ((hwi = audio_pcm_hw_find_any_enabled_in (s , hwi ))) {
794
- if (!hwi -> poll_mode ) return 1 ;
794
+ if (!hwi -> poll_mode ) {
795
+ return 1 ;
796
+ }
795
797
}
796
798
return 0 ;
797
799
}
@@ -908,8 +910,7 @@ void AUD_set_active_out (SWVoiceOut *sw, int on)
908
910
audio_reset_timer (s );
909
911
}
910
912
}
911
- }
912
- else {
913
+ } else {
913
914
if (hw -> enabled ) {
914
915
int nb_active = 0 ;
915
916
@@ -956,8 +957,7 @@ void AUD_set_active_in (SWVoiceIn *sw, int on)
956
957
}
957
958
}
958
959
sw -> total_hw_samples_acquired = hw -> total_samples_captured ;
959
- }
960
- else {
960
+ } else {
961
961
if (hw -> enabled ) {
962
962
int nb_active = 0 ;
963
963
@@ -1132,7 +1132,7 @@ static void audio_run_out (AudioState *s)
1132
1132
1133
1133
while ((hw = audio_pcm_hw_find_any_enabled_out (s , hw ))) {
1134
1134
size_t played , live , prev_rpos , free ;
1135
- int nb_live , cleanup_required ;
1135
+ int nb_live ;
1136
1136
1137
1137
live = audio_pcm_hw_get_live_out (hw , & nb_live );
1138
1138
if (!nb_live ) {
@@ -1194,7 +1194,6 @@ static void audio_run_out (AudioState *s)
1194
1194
audio_capture_mix_and_clear (hw , prev_rpos , played );
1195
1195
}
1196
1196
1197
- cleanup_required = 0 ;
1198
1197
for (sw = hw -> sw_head .lh_first ; sw ; sw = sw -> entries .le_next ) {
1199
1198
if (!sw -> active && sw -> empty ) {
1200
1199
continue ;
@@ -1210,7 +1209,6 @@ static void audio_run_out (AudioState *s)
1210
1209
1211
1210
if (!sw -> total_hw_samples_mixed ) {
1212
1211
sw -> empty = 1 ;
1213
- cleanup_required |= !sw -> active && !sw -> callback .fn ;
1214
1212
}
1215
1213
1216
1214
if (sw -> active ) {
@@ -1220,19 +1218,6 @@ static void audio_run_out (AudioState *s)
1220
1218
}
1221
1219
}
1222
1220
}
1223
-
1224
- if (cleanup_required ) {
1225
- SWVoiceOut * sw1 ;
1226
-
1227
- sw = hw -> sw_head .lh_first ;
1228
- while (sw ) {
1229
- sw1 = sw -> entries .le_next ;
1230
- if (!sw -> active && !sw -> callback .fn ) {
1231
- audio_close_out (sw );
1232
- }
1233
- sw = sw1 ;
1234
- }
1235
- }
1236
1221
}
1237
1222
}
1238
1223
@@ -1241,6 +1226,10 @@ static size_t audio_pcm_hw_run_in(HWVoiceIn *hw, size_t samples)
1241
1226
size_t conv = 0 ;
1242
1227
STSampleBuffer * conv_buf = hw -> conv_buf ;
1243
1228
1229
+ if (hw -> pcm_ops -> run_buffer_in ) {
1230
+ hw -> pcm_ops -> run_buffer_in (hw );
1231
+ }
1232
+
1244
1233
while (samples ) {
1245
1234
size_t proc ;
1246
1235
size_t size = samples * hw -> info .bytes_per_frame ;
@@ -1381,14 +1370,11 @@ void audio_run(AudioState *s, const char *msg)
1381
1370
#endif
1382
1371
}
1383
1372
1384
- void * audio_generic_get_buffer_in (HWVoiceIn * hw , size_t * size )
1373
+ void audio_generic_run_buffer_in (HWVoiceIn * hw )
1385
1374
{
1386
- ssize_t start ;
1387
-
1388
1375
if (unlikely (!hw -> buf_emul )) {
1389
- size_t calc_size = hw -> conv_buf -> size * hw -> info .bytes_per_frame ;
1390
- hw -> buf_emul = g_malloc (calc_size );
1391
- hw -> size_emul = calc_size ;
1376
+ hw -> size_emul = hw -> samples * hw -> info .bytes_per_frame ;
1377
+ hw -> buf_emul = g_malloc (hw -> size_emul );
1392
1378
hw -> pos_emul = hw -> pending_emul = 0 ;
1393
1379
}
1394
1380
@@ -1403,8 +1389,12 @@ void *audio_generic_get_buffer_in(HWVoiceIn *hw, size_t *size)
1403
1389
break ;
1404
1390
}
1405
1391
}
1392
+ }
1393
+
1394
+ void * audio_generic_get_buffer_in (HWVoiceIn * hw , size_t * size )
1395
+ {
1396
+ ssize_t start = (ssize_t )hw -> pos_emul - hw -> pending_emul ;
1406
1397
1407
- start = ((ssize_t ) hw -> pos_emul ) - hw -> pending_emul ;
1408
1398
if (start < 0 ) {
1409
1399
start += hw -> size_emul ;
1410
1400
}
@@ -1446,10 +1436,8 @@ void audio_generic_run_buffer_out(HWVoiceOut *hw)
1446
1436
void * audio_generic_get_buffer_out (HWVoiceOut * hw , size_t * size )
1447
1437
{
1448
1438
if (unlikely (!hw -> buf_emul )) {
1449
- size_t calc_size = hw -> mix_buf -> size * hw -> info .bytes_per_frame ;
1450
-
1451
- hw -> buf_emul = g_malloc (calc_size );
1452
- hw -> size_emul = calc_size ;
1439
+ hw -> size_emul = hw -> samples * hw -> info .bytes_per_frame ;
1440
+ hw -> buf_emul = g_malloc (hw -> size_emul );
1453
1441
hw -> pos_emul = hw -> pending_emul = 0 ;
1454
1442
}
1455
1443
@@ -1505,6 +1493,10 @@ size_t audio_generic_read(HWVoiceIn *hw, void *buf, size_t size)
1505
1493
{
1506
1494
size_t total = 0 ;
1507
1495
1496
+ if (hw -> pcm_ops -> run_buffer_in ) {
1497
+ hw -> pcm_ops -> run_buffer_in (hw );
1498
+ }
1499
+
1508
1500
while (total < size ) {
1509
1501
size_t src_size = size - total ;
1510
1502
void * src = hw -> pcm_ops -> get_buffer_in (hw , & src_size );
@@ -1540,8 +1532,7 @@ static int audio_driver_init(AudioState *s, struct audio_driver *drv,
1540
1532
audio_init_nb_voices_in (s , drv );
1541
1533
s -> drv = drv ;
1542
1534
return 0 ;
1543
- }
1544
- else {
1535
+ } else {
1545
1536
if (msg ) {
1546
1537
dolog ("Could not init `%s' audio driver\n" , drv -> name );
1547
1538
}
@@ -1856,8 +1847,7 @@ CaptureVoiceOut *AUD_add_capture(
1856
1847
if (cap ) {
1857
1848
QLIST_INSERT_HEAD (& cap -> cb_head , cb , entries );
1858
1849
return cap ;
1859
- }
1860
- else {
1850
+ } else {
1861
1851
HWVoiceOut * hw ;
1862
1852
CaptureVoiceOut * cap ;
1863
1853
@@ -2003,7 +1993,7 @@ void audio_create_pdos(Audiodev *dev)
2003
1993
CASE (JACK , jack , Jack );
2004
1994
CASE (OSS , oss , Oss );
2005
1995
CASE (PA , pa , Pa );
2006
- CASE (SDL , sdl , );
1996
+ CASE (SDL , sdl , Sdl );
2007
1997
CASE (SPICE , spice , );
2008
1998
CASE (WAV , wav , );
2009
1999
0 commit comments