#ifndef CLASSBASE_H
#define CLASSBASE_H

/*
** includes + classbase definition for the jfif.datatype!
*/

#define __NOLIBBASE__
#define __USE_SYSBASE 42

#include <dos/dos.h>
#include <exec/memory.h>
#include <exec/execbase.h>
#include <exec/resident.h>
#include <graphics/gfx.h>
#include <intuition/classes.h>
#include <intuition/icclass.h>
#include <datatypes/pictureclass.h>
#ifndef PMODE_V43
#include <datatypes/pictureclassext.h>
#endif
#include <proto/datatypes.h>
#include <proto/intuition.h>
#include <proto/graphics.h>
#include <proto/utility.h>
#define DoSuperMethodA __stdargs DoSuperMethodA
#include <proto/exec.h>
#undef DoSuperMethodA
#include <proto/dos.h>

/*
** sometimes required ;-(
*/

extern struct ExecBase *SysBase;

/*
** (private!) class structure
*/

struct ClassBase {
  struct Library          LibNode;
  UWORD                   Pad1;
  struct IClass          *PictureClass;
  BPTR                    SegList;
  struct Library         *SysBase,
                         *DOSBase,
                         *IntuitionBase,
                         *GfxBase,
                         *UtilityBase,
                         *DataTypesBase,
                         *SuperClassBase;
  struct SignalSemaphore  LockSemaphore;
  UWORD                   Pad2;
  APTR                    FBlit;
};

/*
** special definitions for SAS/C + GCC
*/

#include "compiler.h"

/*
**
*/

enum { FFR_MODE_READ=0,FFR_MODE_WRITE=1 };

#endif /* CLASSBASE_H */
