Yes, it can be used as such, even though the aim was to have a delay line, that can adapt the delay time keeping a continuous signal (by speeding up or slowing down). The use case was a 5.1 microphone simulation with moving sound sources and the other use case an EchoPlex like tape-delay.
The maximum delay time is determined by calling setSize(), which sets the size of the circular buffer and the number of resamplers one for each channel.
Since all samples will be handled, there is only a pushBlock and a pullBlock. The addToPushedBlock is a bit kludgy, it was meant to add the feedback at the end of processing back to the input.
When pulling a block, you give it a delay time (and here is a shortcoming in terms of fractional delay, it is a time in int samples, but it doesn’t need to), and the signal will try to catch up/slow down within the limits given via
Hope that works for your use case.
EDIT: I regret a bit to have it brought up in this thread, because what the others are talking about is compensating for signal paths with half samples latencies. The code I wrote is really aimed for artistic plugins and will work well, but if you try to optimise a dsp graph of parallel signals for artefacts in the noise floor, stick to the advise of the other users