public ReadResult jpeg_consume_input()
{
ReadResult retcode = ReadResult.JPEG_SUSPENDED;
/* NB: every possible DSTATE value should be listed in this switch */
switch (m_global_state)
{
case JpegState.DSTATE_START:
jpeg_consume_input_start();
retcode = jpeg_consume_input_inHeader();
break;
case JpegState.DSTATE_INHEADER:
retcode = jpeg_consume_input_inHeader();
break;
case JpegState.DSTATE_READY:
/* Can't advance past first SOS until start_decompress is called */
retcode = ReadResult.JPEG_REACHED_SOS;
break;
case JpegState.DSTATE_PRELOAD:
case JpegState.DSTATE_PRESCAN:
case JpegState.DSTATE_SCANNING:
case JpegState.DSTATE_RAW_OK:
case JpegState.DSTATE_BUFIMAGE:
case JpegState.DSTATE_BUFPOST:
case JpegState.DSTATE_STOPPING:
retcode = m_inputctl.consume_input();
break;
default:
ERREXIT(J_MESSAGE_CODE.JERR_BAD_STATE, (int)m_global_state);
break;
}
return retcode;
}