本文整理汇总了C++中Sender::transfer方法的典型用法代码示例。如果您正苦于以下问题:C++ Sender::transfer方法的具体用法?C++ Sender::transfer怎么用?C++ Sender::transfer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sender
的用法示例。
在下文中一共展示了Sender::transfer方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: lansink_transfer
snd_pcm_sframes_t lansink_transfer(snd_pcm_ioplug_t *_pPlug, const snd_pcm_channel_area_t *_pAreas,
snd_pcm_uframes_t _cOffset, snd_pcm_uframes_t _cSize)
{
Sender *pPlug = (Sender *)_pPlug->private_data;
size_t cFrames = 0;
try {
cFrames = pPlug->transfer((const char *)_pAreas->addr, _cOffset, _cSize);
// Force start playing if buffer is full.
if (cFrames == 0 && _pPlug->state == SND_PCM_STATE_PREPARED) {
pPlug->log.debug("Buffer is full, starting playback.");
alsa::start(_pPlug->pcm);
}
pPlug->log.debug("%s() = %d, _cOffset = %d, _cSize = %d",
__FUNCTION__, cFrames, _cOffset, _cSize);
} catch (std::exception &e) {
pPlug->log.error(e.what());
}
return cFrames;
}