1/*
2 * cdjpeg.h
3 *
4 * Copyright (C) 1994-1996, Thomas G. Lane.
5 * This file is part of the Independent JPEG Group's software.
6 * For conditions of distribution and use, see the accompanying README file.
7 *
8 * This file contains common declarations for the sample applications
9 * cjpeg and djpeg.  It is NOT used by the core JPEG library.
10 */
11
12#define JPEG_CJPEG_DJPEG	/* define proper options in jconfig.h */
13#define JPEG_INTERNAL_OPTIONS	/* cjpeg.c,djpeg.c need to see xxx_SUPPORTED */
14#include "sane/sanei_jinclude.h"
15#include "jpeglib.h"
16#include "jerror.h"		/* get library error codes too */
17#include "sane/sanei_cderror.h"	/* get application-specific error codes */
18
19/*
20 * Object interface for djpeg's output file encoding modules
21 */
22
23typedef struct djpeg_dest_struct * djpeg_dest_ptr;
24
25struct djpeg_dest_struct {
26  /* start_output is called after jpeg_start_decompress finishes.
27   * The color map will be ready at this time, if one is needed.
28   */
29  JMETHOD(void, start_output, (j_decompress_ptr cinfo,
30			       djpeg_dest_ptr dinfo));
31  /* Emit the specified number of pixel rows from the buffer. */
32  JMETHOD(void, put_pixel_rows, (j_decompress_ptr cinfo,
33				 djpeg_dest_ptr dinfo,
34				 JDIMENSION rows_supplied,
35				 char *data));
36  /* Finish up at the end of the image. */
37  JMETHOD(void, finish_output, (j_decompress_ptr cinfo,
38				djpeg_dest_ptr dinfo));
39
40  /* Target file spec; filled in by djpeg.c after object is created. */
41  FILE * output_file;
42
43  /* Output pixel-row buffer.  Created by module init or start_output.
44   * Width is cinfo->output_width * cinfo->output_components;
45   * height is buffer_height.
46   */
47  JSAMPARRAY buffer;
48  JDIMENSION buffer_height;
49};
50
51/* Module selection routines for I/O modules. */
52
53EXTERN(djpeg_dest_ptr) sanei_jpeg_jinit_write_ppm JPP((j_decompress_ptr cinfo));
54
55/* miscellaneous useful macros */
56