#pragma once
#ifndef __TTWAIN_UTIL_H__
#define __TTWAIN_UTIL_H__
#include "ttwain.h"
#undef TNZAPI
#ifdef TNZ_IS_DEVICELIB
#define TNZ_EXPORT_API
#else
#define TNZ_IMPORT_API
#endif
#ifdef __cplusplus
extern "C" {
#endif
int TTWAIN_IsAvailable(void);
void TTWAIN_SetAvailable(TWAINAVAILABLE status);
char *TTWAIN_GetLastError(TUINT32 *rc, TUINT32 *cc);
int TTWAIN_GetResolution(float *min, float *max, float *step, float *def);
int TTWAIN_GetOpticalResolution(float *min, float *max, float *step, float *def);
int TTWAIN_GetBrightness(float *min, float *max, float *step, float *def);
int TTWAIN_GetContrast(float *min, float *max, float *step, float *def);
int TTWAIN_GetThreshold(float *min, float *max, float *step, float *def);
int TTWAIN_GetPhysicalWidthWAdf(float *width);
int TTWAIN_GetPhysicalHeightWAdf(float *height);
int TTWAIN_GetMinimumWidthWAdf(float *width);
int TTWAIN_GetMinimumHeightWAdf(float *height);
int TTWAIN_GetPhysicalWidthWoAdf(float *width);
int TTWAIN_GetPhysicalHeightWoAdf(float *height);
int TTWAIN_GetMinimumWidthWoAdf(float *width);
int TTWAIN_GetMinimumHeightWoAdf(float *height);
int TTWAIN_SupportsPixelType(TTWAIN_PIXTYPE pix);
int TTWAIN_SupportsFeeder(void);
int TTWAIN_SupportsCompressionType(TW_UINT16 comprType);
int TTWAIN_GetSupportedCaps(void);
int TTWAIN_GetFeeder(void);
int TTWAIN_IsFeederLoaded(void);
/* this function should return the current value */
int TTWAIN_GetCurrentPixelType(TTWAIN_PIXTYPE *pixType);
/* */
int TTWAIN_IsCapResolutionSupported(void);
int TTWAIN_IsCapOpticalResolutionSupported(void);
int TTWAIN_IsCapBrightnessSupported(void);
int TTWAIN_IsCapContrastSupported(void);
int TTWAIN_IsCapThresholdSupported(void);
int TTWAIN_IsCapPhysicalWidthSupported(void);
int TTWAIN_IsCapPhysicalHeightSupported(void);
int TTWAIN_IsCapMinimumWidthSupported(void);
int TTWAIN_IsCapMinimumHeightSupported(void);
int TTWAIN_IsCapPixelTypeSupported(void);
int TTWAIN_IsCapFeederSupported(void);
int TTWAIN_IsCapImageLayoutSupported(void);
int TTWAIN_IsCapOrientationSupported(void);
int TTWAIN_IsCapDeviceOnLineSupported(void);
int TTWAIN_IsCapBitDepthSupported(void);
int TTWAIN_IsCapBitOrderSupported(void);
int TTWAIN_IsCapCompressionSupported(void);
int TTWAIN_SetResolution(float resolution);
int TTWAIN_SetContrast(float contrast);
int TTWAIN_SetBrightness(float brightness);
int TTWAIN_SetThreshold(float threshold);
int TTWAIN_SetXScaling(float scale);
int TTWAIN_SetYScaling(float scale);
int TTWAIN_SetPixelType(TTWAIN_PIXTYPE pixtype);
int TTWAIN_SetBitDepth(USHORT bitDepth);
int TTWAIN_SetBitOrder(TTWAIN_BITORDER bitOrder);
int TTWAIN_SetImageLayout(float L, float T, float R, float B);
int TTWAIN_SetOrientation(USHORT orientation);
int TTWAIN_SetFeeder(int status); /* TRUE->enabled */
int TTWAIN_SetPage(void);
void TTWAIN_DumpCapabilities(void (*trace_fun)(const char *fmt, ...));
/* USER INTERFACE */
int TTWAIN_HasControllableUI(void);
/* Return 1 if source claims UI can be hidden (see SetUIStatus above)
Return 0 if source says UI *cannot* be hidden
Return -1 if source (pre TWAIN 1.6) cannot answer the question. */
int TTWAIN_GetUIStatus(void);
void TTWAIN_SetUIStatus(int status);
int TTWAIN_IsDeviceOnLine(void); /* -1 unknown, 0 no, 1 yes */
/* info about the twain driver */
char *TTWAIN_GetManufacturer(void); /* */
char *TTWAIN_GetProductFamily(void); /* return an internal static var*/
char *TTWAIN_GetProductName(void); /* don't free ret. value */
char *TTWAIN_GetVersion(void); /* */
char *TTWAIN_GetTwainVersion(void); /* */
int TTWAIN_Native2Raster(void *handle, void *the_ras, int *lx, int *ly);
int TTWAIN_SetXferMech(TTWAIN_TRANSFER_MECH mech, void *ptr, TUINT32 size,
int preferredLx, int preferredLy, TUINT32 numberOfImages);
/* NATIVE BUFFERED FILE
mech the transfer mechanism
ptr 0 memory buffer ?Not Impl. filename ?
size 0 size of the buffer ?Not Impl.?
preferredLx lx lx ?Not Impl.? lx?
preferredLy ly ly ?Not Impl.? ly?
numberOfImages 1,2,.... or -1 for all in the ADF
*/
#endif
#ifdef NOTES
here
/* The XScaling cap. should be negotiated before the YScaling, this is because
some Sources may set the YScaling capability whenever XScaling capability
is set, to maintain a square aspect ratio for Applications that do not
bother to negotiate YScaling capability. (note from Twain Spec 1.9 draft)
*/
#endif
#ifdef __cplusplus
}
#endif