home *** CD-ROM | disk | FTP | other *** search
/ Graphics 16,000 / graphics-16000.iso / msdos / animutil / flilib / flisrc / flinext.c < prev    next >
C/C++ Source or Header  |  1990-02-26  |  846b  |  38 lines

  1.  
  2. #include "aados.h"
  3. #include "aafli.h"
  4.  
  5. Errval fli_read_display_frame(Jfile ff, Vscreen *v, Boolean see_colors)
  6. {
  7. Fli_frame fframe;
  8. Cbuf *cbuf;
  9.  
  10. if (dos_read(ff, &fframe, (long)sizeof(fframe)) != sizeof(fframe) )
  11.     return(AA_ERR_SHORTREAD);
  12. if (fframe.type != FLIF_MAGIC)
  13.     return(AA_ERR_BADDATA);
  14. if ((fframe.size -= sizeof(fframe)) != 0)    /* may be an empty frame */
  15.     {
  16.     if ((cbuf = aa_malloc((unsigned)fframe.size)) == NULL)
  17.         {
  18.         char buf[80];
  19.         sprintf(buf, "Can't find %ld bytes", fframe.size);
  20.         return(AA_ERR_NOMEM);
  21.         }
  22.     if (dos_read(ff, cbuf, fframe.size) != fframe.size)
  23.         {
  24.         aa_free(cbuf);
  25.         return(AA_ERR_SHORTREAD);
  26.         }
  27.     fli_uncomp(v, &fframe, cbuf, see_colors);
  28.     aa_free(cbuf);
  29.     }
  30. return(AA_SUCCESS);
  31. }
  32.  
  33. Errval fli_next_frame(Jfile ff)
  34. {
  35. return(fli_read_display_frame(ff, &aa_screen, TRUE) );
  36. }
  37.  
  38.