50 |
/* Non-blocking so that user interface is responsive */ |
/* Non-blocking so that user interface is responsive */ |
51 |
fcntl(g_dsp_fd, F_SETFL, fcntl(g_dsp_fd, F_GETFL) | O_NONBLOCK); |
fcntl(g_dsp_fd, F_SETFL, fcntl(g_dsp_fd, F_GETFL) | O_NONBLOCK); |
52 |
|
|
|
rdpsnd_queue_init(); |
|
53 |
g_reopened = True; |
g_reopened = True; |
54 |
|
|
55 |
return True; |
return True; |
234 |
samplecnt += numsamples; |
samplecnt += numsamples; |
235 |
/* We need to add 50 to tell windows that time has passed while |
/* We need to add 50 to tell windows that time has passed while |
236 |
* playing this packet */ |
* playing this packet */ |
237 |
rdpsnd_send_completion(packet->tick + 50, packet->index); |
rdpsnd_queue_next(50); |
|
rdpsnd_queue_next(); |
|
238 |
sentcompletion = True; |
sentcompletion = True; |
239 |
} |
} |
240 |
else |
else |
251 |
{ |
{ |
252 |
static struct audio_driver sun_driver; |
static struct audio_driver sun_driver; |
253 |
|
|
|
sun_driver.wave_out_write = rdpsnd_queue_write; |
|
254 |
sun_driver.wave_out_open = sun_open; |
sun_driver.wave_out_open = sun_open; |
255 |
sun_driver.wave_out_close = sun_close; |
sun_driver.wave_out_close = sun_close; |
256 |
sun_driver.wave_out_format_supported = sun_format_supported; |
sun_driver.wave_out_format_supported = sun_format_supported; |
261 |
sun_driver.description = |
sun_driver.description = |
262 |
xstrdup("SUN/BSD output driver, default device: " DEFAULTDEVICE " or $AUDIODEV"); |
xstrdup("SUN/BSD output driver, default device: " DEFAULTDEVICE " or $AUDIODEV"); |
263 |
sun_driver.need_byteswap_on_be = 1; |
sun_driver.need_byteswap_on_be = 1; |
264 |
|
sun_driver.need_resampling = 0; |
265 |
sun_driver.next = NULL; |
sun_driver.next = NULL; |
266 |
|
|
267 |
if (options) |
if (options) |