I would think that the following should suffice:

~~~scala
if (buffer.nonEmpty && replayed == 0) pause() else fill()
~~~