Exemple #1
0
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;
}
Exemple #2
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;
}