/*
 * _cbl_pump_accel — ISR-насос CBL (путь ACCEL): зовёт fill() приложения
 * за очередным блоком; при недоливе — тишина через cbl_push_accel(),
 * если включён CBL_UNDERRUN_SILENCE.  См. _cbl_pump_otir.c — та же
 * логика, отличается только способ выдачи (важно для 16-бит формата,
 * который OTIR собрать не может).
 */

#include "_cbl.h"

void _cbl_pump_accel(void)
{
    _cbl_reqs++;
    int ok = _cbl_fill ? _cbl_fill(_cbl_block) : 0;
    if (!ok) {
        _cbl_undr++;
        if (_cbl_underrun_mode == CBL_UNDERRUN_SILENCE && _cbl_silence) {
            cbl_push_accel(_cbl_silence, _cbl_block);
        }
    }
}
