/* * Private image library definitions for CUPS. * * Copyright © 2007-2019 by Apple Inc. * Copyright © 1993-2006 by Easy Software Products. * * Licensed under Apache License v2.0. See the file "LICENSE" for more * information. */ #ifndef _CUPS_RASTER_PRIVATE_H_ # define _CUPS_RASTER_PRIVATE_H_ /* * Include necessary headers... */ # include "raster.h" # include # include # include # ifdef _WIN32 # include # include /* for htonl() definition */ # else # include # include # endif /* _WIN32 */ # ifdef __cplusplus extern "C" { # endif /* __cplusplus */ /* * Structure... */ struct _cups_raster_s /**** Raster stream data ****/ { unsigned sync; /* Sync word from start of stream */ void *ctx; /* File descriptor */ cups_raster_iocb_t iocb; /* IO callback */ cups_mode_t mode; /* Read/write mode */ cups_page_header2_t header; /* Raster header for current page */ unsigned rowheight, /* Row height in lines */ count, /* Current row run-length count */ remaining, /* Remaining rows in page image */ bpp; /* Bytes per pixel/color */ unsigned char *pixels, /* Pixels for current row */ *pend, /* End of pixel buffer */ *pcurrent; /* Current byte in pixel buffer */ int compressed, /* Non-zero if data is compressed */ swapped; /* Non-zero if data is byte-swapped */ unsigned char *buffer, /* Read/write buffer */ *bufptr, /* Current (read) position in buffer */ *bufend; /* End of current (read) buffer */ size_t bufsize; /* Buffer size */ # ifdef DEBUG size_t iostart, /* Start of read/write buffer */ iocount; /* Number of bytes read/written */ # endif /* DEBUG */ unsigned apple_page_count;/* Apple raster page count */ }; #if 0 /* * min/max macros... */ # ifndef max # define max(a,b) ((a) > (b) ? (a) : (b)) # endif /* !max */ # ifndef min # define min(a,b) ((a) < (b) ? (a) : (b)) # endif /* !min */ #endif // 0 /* * Prototypes... */ extern void _cupsRasterAddError(const char *f, ...) _CUPS_FORMAT(1,2) _CUPS_PRIVATE; extern void _cupsRasterClearError(void) _CUPS_PRIVATE; extern const char *_cupsRasterColorSpaceString(cups_cspace_t cspace) _CUPS_PRIVATE; extern void _cupsRasterDelete(cups_raster_t *r) _CUPS_PRIVATE; extern const char *_cupsRasterErrorString(void) _CUPS_PRIVATE; extern int _cupsRasterInitPWGHeader(cups_page_header2_t *h, pwg_media_t *media, const char *type, int xdpi, int ydpi, const char *sides, const char *sheet_back) _CUPS_PRIVATE; extern cups_raster_t *_cupsRasterNew(cups_raster_iocb_t iocb, void *ctx, cups_mode_t mode) _CUPS_PRIVATE; extern unsigned _cupsRasterReadHeader(cups_raster_t *r) _CUPS_PRIVATE; extern unsigned _cupsRasterReadPixels(cups_raster_t *r, unsigned char *p, unsigned len) _CUPS_PRIVATE; extern unsigned _cupsRasterWriteHeader(cups_raster_t *r) _CUPS_PRIVATE; extern unsigned _cupsRasterWritePixels(cups_raster_t *r, unsigned char *p, unsigned len) _CUPS_PRIVATE; # ifdef __cplusplus } # endif /* __cplusplus */ #endif /* !_CUPS_RASTER_PRIVATE_H_ */