int lansink_poll_revents(snd_pcm_ioplug_t *_pPlug, struct pollfd *_pFD, unsigned int _cFDs, unsigned short *_pREvents) { Sender *pPlug = (Sender *)_pPlug->private_data; try { static char buf[1]; assert(_pFD && _cFDs == 1 && _pREvents); *_pREvents = _pFD[0].revents & ~(POLLIN | POLLOUT); if (_pFD[0].revents & POLLIN) { read(_pFD[0].fd, buf, 1); *_pREvents |= POLLOUT; pPlug->log.debug("get_delay() = %ld, get_buffer_size() = %lu", pPlug->get_delay(), pPlug->get_buffer_size()); } pPlug->log.debug("%s() = %d, _pFD[0].revents = %d, *_pREvents = %d", __FUNCTION__, 0, _pFD[0].revents, *_pREvents); } catch (std::exception &e) { pPlug->log.error(e.what()); } return 0; }
int lansink_delay(snd_pcm_ioplug_t *_pPlug, snd_pcm_sframes_t *_pnDelay) { Sender *pPlug = (Sender *)_pPlug->private_data; try { *_pnDelay = pPlug->get_delay(); pPlug->log.debug("%s() = %d; *_pnDelay = %ld", __FUNCTION__, 0, *_pnDelay); } catch (std::exception &e) { pPlug->log.error(e.what()); } return 0; }