@Override public void queueInput(ByteBuffer inputBuffer) { while (inputBuffer.hasRemaining() && !outputBuffer.hasRemaining()) { switch (state) { case STATE_NOISY: processNoisy(inputBuffer); break; case STATE_MAYBE_SILENT: processMaybeSilence(inputBuffer); break; case STATE_SILENT: processSilence(inputBuffer); break; default: throw new IllegalStateException(); } } }