Пример #1
0
static ssize_t xa_write(void *data, const void *buf, size_t size)
{
   xa_t *xa = (xa_t*)data;
   if (xa->nonblock)
   {
      size_t avail = xaudio2_write_avail(xa->xa);
      if (avail == 0)
         return 0;
      if (avail < size)
         size = avail;
   }

   size_t ret = xaudio2_write(xa->xa, buf, size);
   if (ret == 0 && size > 0)
      return -1;
   return ret;
}
Пример #2
0
static size_t xa_write_avail(void *data)
{
   xa_t *xa = (xa_t*)data;
   return xaudio2_write_avail(xa->xa);
}