151 lines
5.5 KiB
C
151 lines
5.5 KiB
C
#ifndef __LDV_H
|
|
#define __LDV_H
|
|
|
|
#ifndef __LDG__
|
|
#include "ldv\ldg.h"
|
|
#endif
|
|
|
|
#ifndef __VAPI_H
|
|
#include "ldv\vapi.h"
|
|
#endif
|
|
|
|
/* Error codes */
|
|
typedef long LDV_STATUS ;
|
|
#define ELDV_NOERROR 0x0 /* No error */
|
|
#define ELDV_INVALIDPARAMETER 0x1 /* At least one parameter is invalid */
|
|
#define ELDV_NBPLANESNOTSUPPORTED 0x2 /* Unsupported number of planes */
|
|
#define ELDV_NOTENOUGHMEMORY 0x3 /* Not enough memory */
|
|
#define ELDV_PREVIEWNOTSUPPORTED 0x4 /* Preview is not supported */
|
|
#define ELDV_RUNNOTSUPPORTED 0x5 /* Run is not supported (!) */
|
|
#define ELDV_BADVAPIVERSION 0x6 /* No VAPI or wrong version */
|
|
#define ELDV_IMGFORMATMISMATCH 0x7 /* Image format is not compatible */
|
|
#define ELDV_CANCELLED 0x8 /* User cancelled the operation */
|
|
#define ELDV_BADINTERFACE 0x9 /* LDV does not expose a proper interface */
|
|
#define ELDV_GENERALFAILURE 0xF /* General failure, reason unknown */
|
|
|
|
|
|
/* Macro aiming to test if a */
|
|
/* LDV call was successful */
|
|
#define LDV_SUCCESS(x) ((x) == ELDV_NOERROR)
|
|
|
|
|
|
/* LDV types */
|
|
#define TLDV_MODIFYIMG 0x01 /* Modify image : filter, scaler, ... */
|
|
|
|
/* Flags field bitmask for */
|
|
/* A given number of planes */
|
|
#define LDVF_STDFORMAT 0x00000001UL /* Image is standard format */
|
|
#define LDVF_ATARIFORMAT 0x00000002UL /* Image is ATARI format (Falcon) */
|
|
#define LDVF_SPECFORMAT 0x00000004UL /* Image is specific format (video card/emulator)) */
|
|
#define LDVF_SUPPORTPREVIEW 0x00000008UL /* Preview is supported */
|
|
#define LDVF_AFFECTPALETTE 0x00000010UL /* Module changes palette (if NbPlanes <= 8) */
|
|
#define LDVF_SUPPORTPROG 0x00000020UL /* Module wil call progress fonction */
|
|
#define LDVF_OPINPLACE 0x00000040UL /* Module operate inplace and changes the source (out parameter is ignored) */
|
|
#define LDVF_REALTIMEPARAMS 0x00000080UL /* Module supports real time parameter changes in preview mode */
|
|
#define LDVF_SUPPORTCANCEL 0x00000100UL /* Module supports user cancellation (see PrSetProgEx) */
|
|
#define LDVF_NOSELECTION 0x00000200UL /* Module can only operate on full image, not sub block */
|
|
#define LDVF_NOCHANGE 0x00000400UL /* Module won't change any part of the image (e.g. report LDV) */
|
|
|
|
/* This struct reports what a LDV */
|
|
/* Can do for each number of planes */
|
|
typedef struct
|
|
{
|
|
char NbPlanes ; /* Image number of planes : */
|
|
/* 0 : ends this structure */
|
|
/* 1, 2, 4, 8, 16, 24, or 32 */
|
|
|
|
char NbPlanesOut ; /* Number of planes after modification */
|
|
|
|
unsigned long Flags ; /* LDVF_... */
|
|
}
|
|
LDV_CAPS ;
|
|
|
|
|
|
#define LDVNBMAX_PARAMETERS 4 /* Maximum 4 parameters can be passed by VISION */
|
|
|
|
typedef union
|
|
{
|
|
short s ;
|
|
float f ;
|
|
void* str ;
|
|
}
|
|
LDV_BASICPARAM ;
|
|
|
|
#define LDVT_SHORT 1
|
|
#define LDVT_FLOAT 2
|
|
#define LDVT_FILE 3
|
|
typedef struct
|
|
{
|
|
char Name[1+15] ;
|
|
char Type ;
|
|
LDV_BASICPARAM MinValue ;
|
|
LDV_BASICPARAM DefaultValue ;
|
|
LDV_BASICPARAM MaxValue ;
|
|
}
|
|
LDV_DEF_PARAM ;
|
|
|
|
typedef struct
|
|
{
|
|
short StrSize ; /* Size in bytes of LDV_INFOS */
|
|
short Type ; /* TLDV_... */
|
|
char Authors[1+45] ; /* Author(s) list */
|
|
|
|
LDV_CAPS Caps[10] ; /* What this LDV can do */
|
|
/* For each number of planes */
|
|
/* Last element is zeroed to */
|
|
/* Mark the end */
|
|
char RFU[16] ; /* Futur usage */
|
|
}
|
|
LDV_INFOS ;
|
|
|
|
typedef struct
|
|
{
|
|
short Red ; /* 0...1000 */
|
|
short Green ; /* 0...1000 */
|
|
short Blue ; /* 0...1000 */
|
|
}
|
|
VDI_ELEMENTPAL ;
|
|
|
|
typedef struct
|
|
{
|
|
short NbColors ; /* Number of colors for this palette */
|
|
VDI_ELEMENTPAL* Pal ; /* Indexed from VDI */
|
|
}
|
|
LDV_PALETTE ;
|
|
|
|
typedef struct
|
|
{
|
|
short x1, y1, x2, y2 ; /* Rectangle defining the sub block to work on */
|
|
short NbParams ;
|
|
LDV_BASICPARAM Param[LDVNBMAX_PARAMETERS] ;
|
|
short ParamType[LDVNBMAX_PARAMETERS] ; /* A bit redundant but useful to free allocated memory for file name */
|
|
|
|
/* Since VAPI_LDVVERSION 0x0106 */
|
|
/* LDV can return a text to be displayed by VISION */
|
|
char ldv_txt_out[128] ;
|
|
}
|
|
LDV_PARAMS ;
|
|
|
|
/* Image definition for the LDV to operate on */
|
|
typedef struct
|
|
{
|
|
short RasterFormat ; /* LDVF_STDFORMAT, LDVF_ATARIFORMAT or LDVF_SPECFORMAT */
|
|
/* VISION selects the optimal format from */
|
|
/* LDV capabilities reported via GetLDVCapabilities */
|
|
|
|
MFDB Raster ; /* Image */
|
|
|
|
LDV_PALETTE Palette ; /* Valid if Raster.fd_nplanes <= 8 */
|
|
|
|
void* Context ; /* Used by Image I/O interface */
|
|
}
|
|
LDV_IMAGE ;
|
|
|
|
|
|
long cdecl ImGetInf(char* filename, void* ldv_img) ;
|
|
long cdecl ImLoad(void* ldv_img) ;
|
|
void cdecl ImFree(void* ldv_img) ;
|
|
|
|
|
|
#endif
|