#ifndef PSTAMP_H
#define PSTAMP_H

#include <stdio.h>
#include <string.h>
#include <strings.h>  // for strcasecmp
#include <unistd.h>   // for unlink
#include "pslib.h"
#include "psmodules.h"
#include "pstampErrorCodes.h"

typedef enum {
    PSTAMP_UNKNOWN = -1,
    PSTAMP_RAW,
    PSTAMP_CHIP,
    PSTAMP_WARP,
    PSTAMP_DIFF,
    PSTAMP_STACK
} pstampImageType;


// command modes for pstampparse 
typedef enum {
    PSP_MODE_UNKNOWN = 0,
    PSP_MODE_QUEUE_JOB,
    PSP_MODE_LIST_URI,
    PSP_MODE_LIST_JOB
} pspMode;

// error codes returned to users in results flie
// These must match the values in  PS-IPP-PStamp/lib/PS/IPP/PStamp/RequestFile.pm
typedef enum {
        PSTAMP_SUCCESS          = 0,
	PSTAMP_SYSTEM_ERROR     = 10,
	PSTAMP_NOT_IMPLEMENTED  = 11,
	PSTAMP_UNKNOWN_ERROR    = 12,
	PSTAMP_DUP_REQUEST      = 20,
	PSTAMP_INVALID_REQUEST  = 21,
	PSTAMP_UNKNOWN_PRODUCT  = 22,
	PSTAMP_NO_IMAGE_MATCH   = 23,
	PSTAMP_NOT_DESTREAKED   = 24,
	PSTAMP_NOT_AVAILABLE    = 25,
	PSTAMP_GONE             = 26,
	PSTAMP_NO_JOBS_QUEUED   = 27,
        PSTAMP_NO_OVERLAP       = 28
} pstampJobErrors;


#define PSTAMP_SELECT_IMAGE  1
#define PSTAMP_SELECT_MASK   2
#define PSTAMP_SELECT_WEIGHT 4

#define PSTAMP_CENTER_IN_PIXELS 1
#define PSTAMP_RANGE_IN_PIXELS  2

#define STAMP_REQUEST_EXTNAME "PS1_PS_REQUEST"
#define STAMP_REQUEST_VERSION "1"

#define STAMP_RESULTS_EXTNAME "PS1_PS_RESULTS"
#define STAMP_RESULTS_VERSION "1"



#endif
