// PulseAudio I/O Callbacks //{{{ static void stream_write_callback( pa_stream* stream, size_t len, void* pdata ) //{{{ { ALCdevice* Device = pdata; pulse_data* data = Device->ExtraData; while ( len > 0 ) { size_t newlen = len; void* buf; pa_free_cb_t free_func = NULL; #if PA_CHECK_VERSION(0,9,16) if ( !ppa_stream_begin_write || ppa_stream_begin_write( stream, &buf, &newlen ) < 0 ) #endif { buf = ppa_xmalloc( newlen ); free_func = ppa_xfree; } aluMixData( Device, buf, newlen / data->frame_size ); ppa_stream_write( stream, buf, newlen, free_func, 0, PA_SEEK_RELATIVE ); len -= newlen; } } //}}}
// PulseAudio I/O Callbacks //{{{ static void stream_write_callback(pa_stream *stream, size_t len, void *pdata) //{{{ { ALCdevice *Device = pdata; pulse_data *data = Device->ExtraData; void *buf = ppa_xmalloc0(data->attr.minreq); (void)len; aluMixData(Device, buf, data->attr.minreq/data->frame_size); ppa_stream_write(stream, buf, data->attr.minreq, ppa_xfree, 0, PA_SEEK_RELATIVE); } //}}}
// PulseAudio I/O Callbacks //{{{ static void stream_write_callback(pa_stream *stream, size_t len, void *pdata) //{{{ { ALCdevice *Device = pdata; pulse_data *data = Device->ExtraData; len -= len%data->attr.minreq; if(len > 0) { void *buf = ppa_xmalloc0(len); aluMixData(Device, buf, len/data->frame_size); ppa_stream_write(stream, buf, len, ppa_xfree, 0, PA_SEEK_RELATIVE); } } //}}}