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.