aboutsummaryrefslogtreecommitdiff
path: root/pkg/dataio/export/export.h
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /pkg/dataio/export/export.h
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'pkg/dataio/export/export.h')
-rw-r--r--pkg/dataio/export/export.h155
1 files changed, 155 insertions, 0 deletions
diff --git a/pkg/dataio/export/export.h b/pkg/dataio/export/export.h
new file mode 100644
index 00000000..279e4378
--- /dev/null
+++ b/pkg/dataio/export/export.h
@@ -0,0 +1,155 @@
+# EXPORT.H -- Main include file for the task structure.
+
+# Main task structure.
+define SZ_EXPSTRUCT 40
+define SZ_EXPSTR (20*SZ_LINE)
+define EX_UNDEFINED -999
+define MAX_OBEXPR 250
+define MAX_OPERANDS 50
+
+
+define EX_FD Memi[$1] # output binary file descriptor
+define EX_HEADER Memi[$1+1] # write an output header?
+define EX_OUTTYPE Memi[$1+2] # outtype parameter value
+define EX_INTERLEAVE Memi[$1+3] # interleave parameter value
+define EX_BSWAP Memi[$1+4] # bswap parameter value
+define EX_VERBOSE Memi[$1+5] # verbose parameter value
+
+define EX_FORMAT Memi[$1+6] # format parameter code
+define EX_BLTIN Memi[$1+7] # buitlin format code
+define EX_COLOR Memi[$1+8] # does format support color?
+define EX_OROWS Memi[$1+9] # no. rows in output image
+define EX_OCOLS Memi[$1+10] # no. cols in output image
+
+define EX_IMDIM Memi[$1+11] # input image list dimensionality
+define EX_IMTYPE Memi[$1+12] # input image list type
+define EX_NIMAGES Memi[$1+13] # number of images to convert
+define EX_NCOLS Memi[$1+14] # number of columns in image
+define EX_NLINES Memi[$1+15] # number of lines in image
+define EX_NEXPR Memi[$1+16] # number of outbands expressions
+define EX_NIMOPS Memi[$1+17] # image operand array (ptr)
+define EX_IMOPS Memi[$1+18] # image operand array (ptr)
+
+define EX_OUTFLAGS Memi[$1+20] # output format flags
+define EX_BFNPTR Memi[$1+21] # binary file name (ptr)
+define EX_HDRPTR Memi[$1+22] # user-defined head file (ptr)
+define EX_OTPTR Memi[$1+23] # output type string (ptr)
+define EX_OBPTR Memi[$1+24] # outbands expression string (ptr)
+define EX_CMPTR Memi[$1+25] # colormap filename (ptr)
+define EX_LUTPTR Memi[$1+26] # LUT filename (ptr)
+define EX_TIMPTR Memi[$1+27] # temp image name (ptr)
+define EX_PSDPI Memr[P2R($1+28)] # EPS dpi resolution
+define EX_PSSCALE Memr[P2R($1+29)] # EPS scale
+define EX_BRIGHTNESS Memr[P2R($1+30)] # display brightness value
+define EX_CONTRAST Memr[P2R($1+31)] # display contrast value
+
+define EX_CMAP Memi[$1+32] # colormap struct (ptr)
+define EX_NCOLORS Memi[$1+33] # no. of colors in colormap
+define EX_LUT Memi[$1+34] # LUT struct (ptr)
+define EX_NLUTEL Memi[$1+35] # no. of indices in lut
+define EX_OBANDS Memi[$1+36] # outbands array (ptr)
+
+
+# Handy macros.
+define HDRFILE Memc[EX_HDRPTR($1)]
+define LUTFILE Memc[EX_LUTPTR($1)]
+define CMAPFILE Memc[EX_CMPTR($1)]
+define BFNAME Memc[EX_BFNPTR($1)]
+define TIMNAME Memc[EX_TIMPTR($1)]
+define OBANDS Memi[EX_OBANDS($1)+$2-1]
+define IMOP Memi[EX_IMOPS($1)+$2-1]
+
+
+# Define the outbands struct.
+define LEN_OUTBANDS 5
+define OB_EXPSTR Memi[$1] # expression string (ptr)
+define OB_WIDTH Memi[$1+1] # expression width
+define OB_HEIGHT Memi[$1+2] # expression height
+
+define O_EXPR Memc[OB_EXPSTR(OBANDS($1,$2))]
+define O_WIDTH OB_WIDTH(OBANDS($1,$2))
+define O_HEIGHT OB_HEIGHT(OBANDS($1,$2))
+
+
+# Operand structure.
+define LEN_OPERAND 10
+define IO_IMPTR Memi[$1] # image descriptor
+define IO_BAND Memi[$1+1] # image band
+define IO_LINE Memi[$1+2] # image line
+
+define IO_TAG Memi[$1+3] # operand tag name
+define IO_TYPE Memi[$1+4] # operand type
+define IO_NBYTES Memi[$1+5] # number of bytes
+define IO_NPIX Memi[$1+6] # number of pixels
+define IO_DATA Memi[$1+7] # pixel ptr
+define IO_ISIM Memi[$1+8] # is data an image ptr?
+
+define OP_TAG Memc[IO_TAG($1)]
+
+#-----------------------------------------------------------------------------
+# Useful Macro Definitions.
+
+define bitset (and($1,$2)==($2))
+
+# Format flags.
+define FMT_RAW 1 # write a generic binary raster
+define FMT_LIST 2 # list pixels values to the screen
+define FMT_BUILTIN 3 # write a builtin format
+
+# OUTPUT FLAGS:
+# Byte swapping flags.
+define S_NONE 0000B # swap nothing
+define S_ALL 0001B # swap everything
+define S_I2 0002B # swap short ints
+define S_I4 0004B # swap long ints
+define SWAP_STR "|no|none|yes|i2|i4|"
+
+# Pixel storage flags.
+define PIXEL_STORAGE 0001B # { {RGB} {RGB} ... {RGB} ... }
+define LINE_STORAGE 0002B # { {RRRR} {GGG} {BBB} .... {RRR} ... }
+define BAND_STORAGE 0004B # { {RR..RRR} {GG...GGG} {BB..BBB} }
+
+# Output flags.
+define OF_CMAP 00010B # a colormap was defined
+define OF_MKCMAP 00020B # compute a colormap
+define OF_BAND 00040B # force band storage
+define OF_LINE 00100B # force line storage
+define OF_FLIPX 00200B # flip image in X
+define OF_FLIPY 00400B # flip image in Y
+define OF_IEEE 01000B # write IEEE floating point
+
+# Header flags.
+define HDR_NONE 1 # no output header
+define HDR_SHORT 2 # write a short header
+define HDR_LONG 3 # write a verbose header
+define HDR_USER 4 # user defined a file
+
+# Pixtype pixel types.
+define PT_BYTE 1 # byte data (no conversion)
+define PT_UINT 2 # unsigned integer
+define PT_INT 3 # signed integer
+define PT_IEEE 4 # ieee floating point
+define PT_NATIVE 5 # native floating point
+define PT_SKIP 6 # skip
+
+# EPS output params.
+define EPS_DPI 72 # dpi resolution
+define EPS_SCALE 1.0 # output scale
+
+# Define colormap/grayscale macros and parameters.
+define CMAP_SIZE 256 # Output colormap length
+define CMAP_MAX 255 # Maximum map value
+define CMAP Memc[$1+($2*CMAP_SIZE)+$3-1]
+
+define R_COEFF 0.299 # NTSC grayscale coefficients
+define G_COEFF 0.587
+define B_COEFF 0.114
+
+define EX_RED 0 # color flags
+define EX_GREEN 1
+define EX_BLUE 2
+
+define SAMPLE_SIZE 10000 # default zscale() sample size
+define CONTRAST 0.25 # default zscale() contrast
+define SAMP_LEN 40 # default zscale() sample length
+