/*	MiscImageDecoderController.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 "MiscImageDecoderController.h"

@interface MiscImageDecoder:NSObject
{
	struct __SurfDecodeFlags {
		unsigned char	verboseMode:1; 				/*" YES if verbosity enabled "*/
		unsigned char	lastCorrupt:1; 				/*" YES if last image corrupt "*/
	} _SDFlags;

	NSWindowDepth imageDepth; 					/*" target decoding depth "*/
	id <MiscImageDecoderErrorDelegate> errorDelegate;		/*"Error Delegate"*/
}

/*"Allocating and Initializing"*/
+ sharedInstance;
- init;

/*"Querying Image Types"*/
+ (NSArray *)imageUnfilteredFileTypes;
+ (BOOL)canInitWithData:(NSData *)data;

/*"Decoding an Image"*/
- (NSBitmapImageRep *)decodeFromFile:(NSString *)filePath;
- (NSBitmapImageRep *)decodeFromData:(NSData *)data;

/*"Setting and Querying attributes"*/
- (void)setImageDepth:(NSWindowDepth)aDepth;
- (NSWindowDepth)imageDepth;
- (BOOL)lastImageCorrupt;
- (void)setLastImageCorrupt:(BOOL)aFlag;
- (BOOL)verboseMode;
- (void)setVerboseMode:(BOOL)aFlag;
- (void)setErrorDelegate:(id <MiscImageDecoderErrorDelegate>)aDelegate;
- (id <MiscImageDecoderErrorDelegate>)errorDelegate;

/*"Error Handling"*/
- (void)spewMessage:(NSString *)errMsg withSeverity:(MiscImageDecoderErrorSeverity)aSeverity;

@end
