
#include "aados.h"
#include "aafli.h"

Errval fli_read_display_frame(Jfile ff, Vscreen *v, Boolean see_colors)
{
Fli_frame fframe;
Cbuf *cbuf;

if (dos_read(ff, &fframe, (long)sizeof(fframe)) != sizeof(fframe) )
	return(AA_ERR_SHORTREAD);
if (fframe.type != FLIF_MAGIC)
	return(AA_ERR_BADDATA);
if ((fframe.size -= sizeof(fframe)) != 0)	/* may be an empty frame */
	{
	if ((cbuf = aa_malloc((unsigned)fframe.size)) == NULL)
		{
		char buf[80];
		sprintf(buf, "Can't find %ld bytes", fframe.size);
		return(AA_ERR_NOMEM);
		}
	if (dos_read(ff, cbuf, fframe.size) != fframe.size)
		{
		aa_free(cbuf);
		return(AA_ERR_SHORTREAD);
		}
	fli_uncomp(v, &fframe, cbuf, see_colors);
	aa_free(cbuf);
	}
return(AA_SUCCESS);
}

Errval fli_next_frame(Jfile ff)
{
return(fli_read_display_frame(ff, &aa_screen, TRUE) );
}

