ftp.nice.ch/pub/next/graphics/viewer/pCD.0.34.N.bs.tar.gz#/pCD0.3.4/Photo_CD.subproj/pcd.h

This is pcd.h in view mode; [Download] [Up]

typedef unsigned char uBYTE;
typedef unsigned long dim;

#define BaseW ((dim)768)
#define BaseH ((dim)512)

#define SECSIZE 0x800



#define SeHead   2
#define L_Head   (1+SeHead)

#define SeBase16 18
#define L_Base16 (1+SeBase16)

#define SeBase4  72
#define L_Base4  (1+SeBase4)

#define SeBase   288
#define L_Base   (1+SeBase)






enum ERRORS { E_NONE,E_READ,E_WRITE,E_INTERN,E_ARG,E_OPT,E_MEM,E_HUFF,
             E_SEQ,E_SEQ1,E_SEQ2,E_SEQ3,E_SEQ4,E_SEQ5,E_SEQ6,E_SEQ7,E_POS,E_IMP, E_TCANT };

enum TURNS  { T_NONE,T_RIGHT,T_LEFT };

enum SIZES  { S_UNSPEC,S_Base16,S_Base4,S_Base,S_4Base,S_16Base,S_Over };

/* Default taken when no size parameter given */
#define S_DEFAULT S_Base16

struct _implane
 {dim  mwidth,mheight,
       iwidth,iheight;
  uBYTE *im;
 };
typedef struct _implane implane;


enum ERRORS readplain();
void planealloc();
void interpolate();
void readhqt();
void decode();

/* copied from hpcdtoppm.h (0.4) */
enum   CORR   { C_UNSPEC,C_LINEAR,C_DARK,C_BRIGHT,C_NeXT };
/* color.c - copied from version 0.4 */
extern void         colconvert();
/* main_var04.c - this allows pCD.app to plug in color.c */
extern void         init_hpcd_04();
extern void         mainSetGammaCorr();  /* type CORR */
extern void         mainSetSharpit();    /* type BOOL */


static uBYTE sbuffer[SECSIZE];

static FILE *fin=0;
#define SEEK(x) { if (fseek(fin,((x) * SECSIZE),0)) error(E_READ);}

#define EREADBUF {if(READBUF < 1) error(E_READ);}

#define SKIP(n)  { if (fseek(fin,(n),1)) error(E_READ);}
#define SKIPr(n) { if (fseek(fin,(n),1)) return(E_READ);}

#define READBUF   fread(sbuffer,sizeof(sbuffer),1,fin)
/*  Alternate version of READBUF for some NeXT processing: */
#define READBUF_NeXT   fread(sbuffer,sizeof(sbuffer),1,NeXT_fin)

#define xTRIF(x,u,o,a,b,c) ((x)<(u)? (a) : ( (x)>(o)?(c):(b)  ))
#define xNORM(x) x=TRIF(x,0,255,0,x,255)
#define NORM(x) { if(x<0) x=0; else if (x>255) x=255;}

#define melde(x)

/* format of some of the records on a photo CD */
/*  ph0 = header overview (from Hugo Burm) */
struct ph0
{
	char id0[8];
	uBYTE www1[2];
	short num_thumbs;
	uBYTE www2[(SECSIZE-12)];
};

/* ph1 = not completely sure of the format of this yet */
struct ph1 
 {char id1[8];
  char ww1[14];
  char id2[20];
  char id3[4*16+4];
  short ww2;
  char id4[20];
  char ww3[2*16+1];
  char id5[4*16];
  char idx[11*16];
 } ;

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.