
 /* svdriver.h
    - Include File for ECS.svdriver -
    (c) 1990-94 by Andreas R. Kleinert
    Last changes : 07.05.1994
 */

#ifndef SVDRIVER_H
#define SVDRIVER_H

#ifndef SUPERVIEW_SUPERVIEWBASE_H
#include <superview/superviewbase.h>
#endif  /* SUPERVIEW_SUPERVIEWBASE_H */

#ifndef SVDRIVERS_SVDRIVERBASE_H
#include <svdrivers/svdriverbase.h>
#endif  /* SVDRIVERS_SVDRIVERBASE_H

#ifndef INTUITION_INTUITIONBASE_H
#include <intuition/intuitionbase.h>
#endif /* INTUITION_INTUITIONBASE_H */

#ifndef EXEC_MEMORY_H
#include <exec/memory.h>
#endif /* EXEC_MEMORY_H */

#ifndef EXEC_LISTS_H
#include <exec/lists.h>
#endif /* EXEC_LISTS_H */

#ifndef EXEC_INTERRUPTS_H
#include <exec/interrupts.h>
#endif /* EXEC_INTERRUPTS_H */

#ifndef GRAPHICS_GFXBASE_H
#include <graphics/gfxbase.h>
#endif /* GRAPHICS_GFXBASE_H */

#ifndef GRAPHICS_VIEW_H
#include <graphics/view.h>
#endif /* GRAPHICS_VIEW_H */

#ifndef LIBRARIES_IFFPARSE_H
#include <libraries/iffparse.h>
#endif /* LIBRARIES_IFFPARSE_H */

#include <proto/exec.h>
#include <proto/dos.h>
#include <proto/intuition.h>
#include <proto/graphics.h>
#include <proto/superviewsupport.h>

#include "ecs.h"


/* *************************************************** */
/* *						     * */
/* * SD_SuperVisor.c : Functions	             * */
/* *						     * */
/* *************************************************** */

extern struct SVDriverHandle * __saveds __asm SVD_AllocHandle( register __a1 APTR future_a1);
extern void __saveds __asm SVD_FreeHandle( register __a1 struct SVDriverHandle *SVDriverHandle_a1);
extern void __saveds __asm SVD_CloseDisplay( register __a1 struct SVDriverHandle *SVDriverHandle_a1);
extern void __saveds __asm SVD_FreeResources( register __a1 struct SVDriverHandle *SVDriverHandle_a1);


/* *************************************************** */
/* *						     * */
/* * SD_ChangeSubs.c : ...                           * */
/* *						     * */
/* *************************************************** */

extern ULONG __saveds __asm SVD_SetScreenType( register __a1 struct SVDriverHandle *SVDriverHandle_a1, register __d1 ULONG type, register __a2 APTR future);
extern ULONG __saveds __asm SVD_SetWindowFlags( register __a1 struct SVDriverHandle *SVDriverHandle_a1, register __d1 ULONG flags, register __a2 APTR future);
extern ULONG __saveds __asm SVD_SetWindowIDCMP( register __a1 struct SVDriverHandle *SVDriverHandle_a1, register __d1 ULONG idcmp, register __a2 APTR future);
extern struct Screen * __saveds __asm SVD_GetScreenAddress( register __a1 struct SVDriverHandle *SVDriverHandle_a1, register __a2 APTR future);
extern struct Window * __saveds __asm SVD_GetWindowAddress( register __a1 struct SVDriverHandle *SVDriverHandle_a1, register __a2 APTR future);


/* *************************************************** */
/* *						     * */
/* * SD_BufferSubs.c : ...                           * */
/* *						     * */
/* *************************************************** */

extern ULONG __saveds __asm SVD_SetGfxBuffer(      register __a1 struct SVDriverHandle *SVDriverHandle_a1, register __a2 struct SV_GfxBuffer *buffer, register __a3 ULONG future);
extern ULONG __saveds __asm SVD_DisplayGfxBuffer(  register __a1 struct SVDriverHandle *SVDriverHandle_a1, register __a2 ULONG future);


/* *************************************************** */
/* *						     * */
/* * Additional Base Declarations		     * */
/* *						     * */
/* *************************************************** */

extern struct SVDriverBase  *SVDriverBase;

extern struct ExecBase	    *SysBase;
extern struct DosLibrary    *DOSBase;
extern struct IntuitionBase *IntuitionBase;
extern struct GfxBase	    *GfxBase;
extern struct SVSupportBase *SVSupportBase;

struct SVDriverHandle                   /* STRICTLY PRIVATE */
{
 BPTR                 ah_filehandle_source;
 BPTR                 ah_filehandle_dest;

 struct Screen       *ah_Screen;
 struct Window       *ah_Window;

 ULONG                ah_ScreenType;
 ULONG                ah_WindowFlags;
 ULONG                ah_WindowIDCMP;

 struct Screen       *ah_WriteScreen;
 struct Window       *ah_WriteWindow;
 char                *ah_WriteName;

 APTR                 ah_ramhandle;

 struct SV_GfxBuffer *ah_SV_GfxBuffer;
};

#endif /* SVDRIVER_H */
