コード例 #1
0
// 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;
	}
} //}}}
コード例 #2
0
ファイル: pulseaudio.c プロジェクト: mayamonkeys/projectmaya
// 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);
} //}}}
コード例 #3
0
ファイル: pulseaudio.c プロジェクト: SergeStinckwich/openqwaq
// 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);
    }
} //}}}