/* spx_img.h: * * 22.10.1993 by Dieter Fiebelkorn */ #define GVWL_module 'GVWL' #define GVWL_Version 0x0100 #define GVWL_exten ".GVL" #define GVWL_subdir "GVWLOAD" #define GVWS_module 'GVWS' #define GVWS_Version 0x0100 #define GVWS_exten ".GVS" #define GVWS_subdir "GVWSAVE" #define GVWP_module 'GVWP' #define GVWP_Version 0x0100 #define GVWP_exten ".GVP" #define GVWP_subdir "GVWPRINT" #define GVWR_module 'GVWR' #define GVWR_Version 0x0100 #define GVWR_exten ".GVR" #define GVWR_subdir "GVWMODUL" #define GVWC_module 'GVWC' #define GVWC_Version 0x0100 #define GVWspprt_no 0x0000 #define GVWspprt_mon 0x0001 #define GVWspprt_col 0x0002 #define GVWspprt_tc 0x0004 #define GVWspprt_all 0x0007 #define GVWflag_no 0x0000 #define GVWflag_res 0x0001 #define GVWflag_auto 0x0002 #define GVWflag_fsel 0x0004 #define GVWx_gemdos 0x001CL #define GVWx_header 0x0090L #define GVWx_start 0x0006 #define GVWx_id 0x000C #define GVWx_vers 0x0010 #define GVWx_supp 0x0012 #define GVWx_flag 0x0014 #define GVWx_ext 0x001C #define GVWx_name 0x0020 #define GVWx_inf1 0x0030 #define GVWx_inf2 0x0048 #define GVWx_inf3 0x0060 #define GVWx_inf4 0x0078 typedef unsigned long ulong; typedef unsigned int uint; typedef void ZFILE; typedef struct LOAD_Structure { long identify; /* GVWL_module == 'GVWL' */ int version; /* GVWL_Version == 0x0100 */ char *in_filename; int screen_depth; int identify_only; int user_identified; struct { ZFILE *(*open) (char *name, int attrib); ulong (*read) (ZFILE *zf, void *buf, ulong len); int (*getchr) (ZFILE *zf); char *(*gets) (void *buf, ulong len, ZFILE *zf); ulong (*skip) (ZFILE *zf, ulong len); ulong (*seek) (ZFILE *zf, int seekmode, ulong offset); ulong (*tell) (ZFILE *zf); int (*eof) (ZFILE *zf); void (*close) (ZFILE *zf); } input; struct { int (*printout) (const char* format, ...); } print; struct { void (*printerr) (const char* format, ...); void (*userexit) (void); } error; struct { byte *(*malloc) (ulong size); void (*free) (void *area); } memory; struct { Image *(*newBitImage) (char *title, unsigned int width, unsigned int height); Image *(*newRGBImage) (char *title, unsigned int width, unsigned int height, unsigned int depth); Image *(*newTCImage) (char *title, unsigned int width, unsigned int height); Image *(*newGEMImage) (char *title, unsigned int width, unsigned int height, unsigned int depth); void (*freeGVImage) (Image *image); Image *(*rotate) (Image *image, int rotate); } images; struct { void (*evntHandle) (int wait); void (*evntHandleMouse) (int ev_mx, int ev_my, int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleKeybd) (int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleButton)(int ev_mx, int ev_my, int ev_mbutton, int ev_mbreturn, int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleMesag) (int* msg, int ev_mx, int ev_my, int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleTimer) (int ev_mx, int ev_my, int keystate, int keypress, int ev_mbutton, int gvwInAction, int* exit); int (*alert) (int button, const char *astring); } events; struct { void (*reset_dialogCol) (int flag); void (*send_windOpen) (int wind_id); void (*send_windClosed) (int wind_id); void (*send_windTop) (int wind_id); void (*send_windBottom) (int wind_id); } diawin; struct { int applicationID; int gemview_vers; int tos_version; int aes_version; int multi_task; } versions; struct { unsigned IMG_fastload : 1; unsigned IMG_vdicolororder : 1; unsigned IMG_TCalign16 : 1; unsigned PCD_loadBase : 3; unsigned DSP_usingit : 1; unsigned DSP_greyscale : 1; unsigned UNUSED : 8; unsigned FUTUREUSED : 16; long RESERVED; } flags; } LOAD_Structure; typedef struct SAVE_Structure { long identify; /* GVWS_module == 'GVWS' */ int version; /* GVWS_Version == 0x0100 */ Image *image; int screen_depth; char *out_filename; struct { int (*open) (char *file); ulong (*write) (int handle, ulong count, void *buf); int (*close) (int handle); int (*delete) (const char *fname); } output; struct { int (*printout) (const char* format, ...); } print; struct { void (*printerr) (const char* format, ...); void (*userexit) (void); } error; struct { byte *(*malloc) (ulong size); void (*free) (void *area); } memory; struct { void (*evntHandle) (int wait); void (*evntHandleMouse) (int ev_mx, int ev_my, int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleKeybd) (int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleButton)(int ev_mx, int ev_my, int ev_mbutton, int ev_mbreturn, int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleMesag) (int* msg, int ev_mx, int ev_my, int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleTimer) (int ev_mx, int ev_my, int keystate, int keypress, int ev_mbutton, int gvwInAction, int* exit); int (*alert) (int button, const char *astring); } events; struct { void (*reset_dialogCol) (int flag); void (*send_windOpen) (int wind_id); void (*send_windClosed) (int wind_id); void (*send_windTop) (int wind_id); void (*send_windBottom) (int wind_id); } diawin; struct { int applicationID; int gemview_vers; int tos_version; int aes_version; int multi_task; } versions; } SAVE_Structure; typedef struct PRINT_Structure { long identify; /* GVWP_module == 'GVWP' */ int version; /* GVWP_Version == 0x0100 */ Image *image; int screen_depth; struct { int (*open) (char *file); ulong (*write) (int handle, ulong count, void *buf); int (*status) (int handle); int (*close) (int handle); } output; struct { int (*printout) (const char* format, ...); } print; struct { void (*printerr) (const char* format, ...); void (*userexit) (void); } error; struct { byte *(*malloc) (ulong size); void (*free) (void *area); } memory; struct { void (*evntHandle) (int wait); void (*evntHandleMouse) (int ev_mx, int ev_my, int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleKeybd) (int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleButton)(int ev_mx, int ev_my, int ev_mbutton, int ev_mbreturn, int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleMesag) (int* msg, int ev_mx, int ev_my, int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleTimer) (int ev_mx, int ev_my, int keystate, int keypress, int ev_mbutton, int gvwInAction, int* exit); int (*alert) (int button, const char *astring); } events; struct { void (*reset_dialogCol) (int flag); void (*send_windOpen) (int wind_id); void (*send_windClosed) (int wind_id); void (*send_windTop) (int wind_id); void (*send_windBottom) (int wind_id); } diawin; struct { int applicationID; int gemview_vers; int tos_version; int aes_version; int multi_task; } versions; } PRINT_Structure; typedef struct PROC_Structure { long identify; /* GVWR_module == 'GVWR' */ int version; /* GVWR_Version == 0x0100 */ Image *image; int screen_depth; struct { int (*printout) (const char* format, ...); } print; struct { void (*printerr) (const char* format, ...); void (*userexit) (void); } error; struct { byte *(*malloc) (ulong size); void (*free) (void *area); } memory; struct { Image *(*newBitImage) (char *title, unsigned int width, unsigned int height); Image *(*newRGBImage) (char *title, unsigned int width, unsigned int height, unsigned int depth); Image *(*newTCImage) (char *title, unsigned int width, unsigned int height); Image *(*newGEMImage) (char *title, unsigned int width, unsigned int height, unsigned int depth); void (*freeGVImage) (Image *image); } images; struct { void (*evntHandle) (int wait); void (*evntHandleMouse) (int ev_mx, int ev_my, int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleKeybd) (int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleButton)(int ev_mx, int ev_my, int ev_mbutton, int ev_mbreturn, int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleMesag) (int* msg, int ev_mx, int ev_my, int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleTimer) (int ev_mx, int ev_my, int keystate, int keypress, int ev_mbutton, int gvwInAction, int* exit); int (*alert) (int button, const char *astring); } events; struct { void (*reset_dialogCol) (int flag); void (*send_windOpen) (int wind_id); void (*send_windClosed) (int wind_id); void (*send_windTop) (int wind_id); void (*send_windBottom) (int wind_id); } diawin; struct { int applicationID; int gemview_vers; int tos_version; int aes_version; int multi_task; } versions; } PROC_Structure; typedef struct CONV_Structure { long identify; /* GVWC_module == 'GVWC' */ int version; /* GVWC_Version == 0x0100 */ int screen_depth; struct { ImageOptions *(*newImageOptions) (void); byte *(*malloc) (ulong size); void (*free) (void *area); } memory; struct { void (*evntHandle) (int wait); void (*evntHandleMouse) (int ev_mx, int ev_my, int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleKeybd) (int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleButton)(int ev_mx, int ev_my, int ev_mbutton, int ev_mbreturn, int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleMesag) (int* msg, int ev_mx, int ev_my, int keystate, int keypress, int gvwInAction, int* exit); void (*evntHandleTimer) (int ev_mx, int ev_my, int keystate, int keypress, int ev_mbutton, int gvwInAction, int* exit); int (*alert) (int button, const char *astring); } events; struct { void (*reset_dialogCol) (int flag); void (*send_windOpen) (int wind_id); void (*send_windClosed) (int wind_id); void (*send_windTop) (int wind_id); void (*send_windBottom) (int wind_id); int (*getMSaving) (char *title, char *extention, char *name, char *filename); int (*getCSaving) (char *title, char *extention, char *name, char *filename); int (*getTSaving) (char *title, char *extention, char *name, char *filename); } diawin; struct { int applicationID; int gemview_vers; int tos_version; int aes_version; int multi_task; } versions; } CONV_Structure;