65 |
} |
} |
66 |
|
|
67 |
g_dsp_fd = 0; |
g_dsp_fd = 0; |
|
rdpsnd_queue_init(); |
|
68 |
|
|
69 |
reopened = True; |
reopened = True; |
70 |
|
|
77 |
/* Ack all remaining packets */ |
/* Ack all remaining packets */ |
78 |
while (!rdpsnd_queue_empty()) |
while (!rdpsnd_queue_empty()) |
79 |
{ |
{ |
80 |
rdpsnd_send_completion(rdpsnd_queue_current_packet()->tick, |
rdpsnd_queue_next(0); |
|
rdpsnd_queue_current_packet()->index); |
|
|
rdpsnd_queue_next(); |
|
81 |
} |
} |
82 |
|
|
83 |
if (o_device != NULL) |
if (o_device != NULL) |
168 |
(packet->tick + duration) % 65536, next_tick % 65536)); |
(packet->tick + duration) % 65536, next_tick % 65536)); |
169 |
} |
} |
170 |
|
|
171 |
rdpsnd_send_completion(((packet->tick + duration) % 65536), packet->index); |
rdpsnd_queue_next(duration); |
|
rdpsnd_queue_next(); |
|
172 |
} |
} |
173 |
|
|
174 |
g_dsp_busy = 1; |
g_dsp_busy = 1; |
182 |
struct ao_info *libao_info; |
struct ao_info *libao_info; |
183 |
static char description[101]; |
static char description[101]; |
184 |
|
|
|
libao_driver.wave_out_write = rdpsnd_queue_write; |
|
185 |
libao_driver.wave_out_open = libao_open; |
libao_driver.wave_out_open = libao_open; |
186 |
libao_driver.wave_out_close = libao_close; |
libao_driver.wave_out_close = libao_close; |
187 |
libao_driver.wave_out_format_supported = rdpsnd_dsp_resample_supported; |
libao_driver.wave_out_format_supported = rdpsnd_dsp_resample_supported; |