/*	MiscJPEGDecoder.h

	Copyright 1996 Netsurfer Inc.

	This notice may not be removed from this source code.
	The use and distribution of this software is governed by the
	terms of the MiscKit license agreement.  Refer to the license
	document included with the MiscKit distribution for the terms.

	Author: <bbum@friday.com>
	Converted to OpenStep, September 1996, Uwe Hoffmann.
*/

#import <AppKit/AppKit.h>

#import "MiscImageDecoder.h"

#import <MiscSupport/jpeglib.h>
#import <MiscSupport/jerror.h>
#import <MiscSupport/jconfig.h>

struct miscjpeg_error_mgr {
	struct jpeg_error_mgr pub;	// normal error handling fields
	jmp_buf setjmp_buffer;      	// longjmp() return spot
};

struct miscjpeg_decompress_struct {
	struct jpeg_decompress_struct pub;	// normal decompress_struct
	id jpegDecoder; 			// owning decoder
};

typedef struct miscjpeg_error_mgr *miscjpeg_error_ptr;
typedef struct miscjpeg_decompress_struct *miscjpeg_decompress_ptr;

@interface MiscJPEGDecoder:MiscImageDecoder
{
	struct miscjpeg_decompress_struct jpegDecompInfo;	/*"jpeg decoder struct"*/
	struct miscjpeg_error_mgr jpegErrMgr;			/*"jpeg error manager"*/
	unsigned rowsRead;					/*"rows read so far"*/
	unsigned readCount;					/*"# of rows to decode per pass (default 5)"*/
	unsigned totalRows;					/*"total rows in image"*/
	unsigned char **rowPtrBuf;				/*"row decoding buffer"*/

}

- (void)setReadCount:(unsigned)aNum;
- (unsigned)readCount;

@end
