codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
/* TOP */ #include "osdep/timer.h" ... ... /** Destroy libao driver */ static void uninit(int immed) { size_t play_space; int delay_sleep; char *buf = NULL; if (stream && !immed) { /* space available in PA play buffer */ play_space = get_space(); /* note: get_delay() changes after play(), * but we want post play() */ delay_sleep = get_delay() * 1000 * 1000; /* fill play space with empty/zero-filled buffer */ if (play_space > 0 && (buf = malloc(play_space)) != NULL) { memset(buf, 0, play_space); play(buf, play_space, 0); /* play uses NULL for free_cb so a local copy is * created by PA. free() is OK here. * */ free(buf); } /* sleep actual time, (excluding play of empty buffer) */ usec_sleep(delay_sleep); /* * Have noticed in some occasions that track can hang on * pa_stream_drain, even after play + sleep. * As everything now _should_ have been delivered by server * reset() won't cut audio. * */ reset(); /* Now; is this needed after reset() ? */ pa_threaded_mainloop_lock(mainloop); waitop(pa_stream_drain(stream, success_cb, NULL)); } if (mainloop) ... ... ... }
Private
[
?
]
Run code
Submit