/* -*- Mode: C -*-
 *
 * $Header: /home/gene/library/website/docsrc/vwu/src/RCS/frame.h,v 395.1 2008/04/20 17:25:48 gene Exp $
 *
 * Copyright (c) 2006 Gene Michael Stover.  All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
 * USA
 */

/*
 */
typedef struct {
  char pathname[PATH_MAX + 1];
  BITMAPFILEHEADER *bmfh;
  BITMAPINFO *bmi;
  BITMAPINFOHEADER *bmih;
  RGBQUAD *rgba;
  char *pixels;
  /*
   * Raw is all of the octets from the bitmap file.
   * The other memebers point into this piece of memory.
   */
  char *raw;
} Frame;

/*
 * Dispose of a Frame.  Return NULL as a convenience to the caller.
 * It is NOT an error to call this on NULL.
 */
Frame *FRAME_Destroy (Frame *frame);

/*
 */
Frame *FRAME_Load (char pathname[]);

/*
 * Fetch the next frame & return it.  The Frame is dynamically
 * allocated; you must dispose of it with FRAME_Destroy.
 * When there are no more frames or there is an error, returns
 * NULL.
 */
Frame *FRAME_Next ();

/* --- end of file --- */
