|
From: <kin...@us...> - 2003-11-30 00:27:10
|
Update of /cvsroot/teem/teem/src/nrrd
In directory sc8-pr-cvs1:/tmp/cvs-serv1322/nrrd
Modified Files:
methodsNrrd.c nrrd.h write.c
Log Message:
added accessor methods for nrrdIoState: nrrdIoState{Set,Get}, nrrdIoStateEncoding{Set,Get}, nrrdIoStateFormat{Set,Get}
Index: methodsNrrd.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/methodsNrrd.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -C2 -d -r1.34 -r1.35
*** methodsNrrd.c 29 Nov 2003 08:16:07 -0000 1.34
--- methodsNrrd.c 30 Nov 2003 00:27:06 -0000 1.35
***************
*** 66,71 ****
nio->line = NULL;
nio->dataFile = NULL;
! nio->format = NULL;
! nio->encoding = NULL;
nrrdIoStateInit(nio);
}
--- 66,71 ----
nio->line = NULL;
nio->dataFile = NULL;
! nio->format = nrrdFormatUnknown;
! nio->encoding = nrrdEncodingUnknown;
nrrdIoStateInit(nio);
}
Index: nrrd.h
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/nrrd.h,v
retrieving revision 1.124
retrieving revision 1.125
diff -C2 -d -r1.124 -r1.125
*** nrrd.h 29 Nov 2003 08:16:07 -0000 1.124
--- nrrd.h 30 Nov 2003 00:27:06 -0000 1.125
***************
*** 363,366 ****
--- 363,367 ----
instead of lines. First the lines are
skipped, then the bytes */
+ seen[NRRD_FIELD_MAX+1], /* for error checking in header parsing */
detachedHeader, /* ON READ+WRITE: nrrd is split into distinct
header and data (for nrrd format only) */
***************
*** 401,408 ****
of the nrrdZlibStrategy enums, default is
nrrdZlibStrategyDefault. */
! bzip2BlockSize, /* block size used for compression,
roughly equivalent to better but slower
(1-9, -1 for default[9]). */
- seen[NRRD_FIELD_MAX+1]; /* for error checking in header parsing */
/* format and encoding. These are initialized to nrrdFormatUnknown
and nrrdEncodingUnknown, respectively. USE THESE VALUES for
--- 402,408 ----
of the nrrdZlibStrategy enums, default is
nrrdZlibStrategyDefault. */
! bzip2BlockSize; /* block size used for compression,
roughly equivalent to better but slower
(1-9, -1 for default[9]). */
/* format and encoding. These are initialized to nrrdFormatUnknown
and nrrdEncodingUnknown, respectively. USE THESE VALUES for
***************
*** 412,415 ****
--- 412,435 ----
} NrrdIoState;
+ /*
+ ******** nrrdIoState* enum
+ **
+ ** the various things it makes sense to get and set in nrrdIoState struct
+ ** via nrrdIoStateGet and nrrdIoStateSet
+ */
+ enum {
+ nrrdIoStateUnknown,
+ nrrdIoStateDetachedHeader,
+ nrrdIoStateBareText,
+ nrrdIoStateCharsPerLine,
+ nrrdIoStateValsPerLine,
+ nrrdIoStateSkipData,
+ nrrdIoStateKeepNrrdDataFileOpen,
+ nrrdIoStateZlibLevel,
+ nrrdIoStateZlibStrategy,
+ nrrdIoStateBzip2BlockSize,
+ nrrdIoStateLast
+ };
+
/******** defaults (nrrdDef..) and state (nrrdState..) */
/* defaultsNrrd.c */
***************
*** 633,636 ****
--- 653,664 ----
extern int nrrdRead(Nrrd *nrrd, FILE *file, NrrdIoState *io);
/* write.c */
+ extern int nrrdIoStateSet(NrrdIoState *io, int parm, int value);
+ extern int nrrdIoStateSetEncoding(NrrdIoState *io,
+ const NrrdEncoding *encoding);
+ extern int nrrdIoStateSetFormat(NrrdIoState *io,
+ const NrrdFormat *format);
+ extern int nrrdIoStateGet(NrrdIoState *io, int parm);
+ extern const NrrdEncoding *nrrdIoStateGetEncoding(NrrdIoState *io);
+ extern const NrrdFormat *nrrdIoStateBetFormat(NrrdIoState *io);
extern int nrrdSave(const char *filename, const Nrrd *nrrd, NrrdIoState *io);
extern int nrrdWrite(FILE *file, const Nrrd *nrrd, NrrdIoState *io);
Index: write.c
===================================================================
RCS file: /cvsroot/teem/teem/src/nrrd/write.c,v
retrieving revision 1.86
retrieving revision 1.87
diff -C2 -d -r1.86 -r1.87
*** write.c 29 Nov 2003 08:16:07 -0000 1.86
--- write.c 30 Nov 2003 00:27:06 -0000 1.87
***************
*** 28,31 ****
--- 28,209 ----
int
+ nrrdIoStateSet (NrrdIoState *nio, int parm, int value) {
+ char me[]="nrrdIoStateSet", err[AIR_STRLEN_MED];
+
+ if (!nio) {
+ sprintf(err, "%s: got NULL pointer", me);
+ biffAdd(NRRD, err); return 1;
+ }
+ if (!( AIR_IN_OP(nrrdIoStateUnknown, parm, nrrdIoStateLast) )) {
+ sprintf(err, "%s: identifier %d not in valid range [%d,%d]", me,
+ parm, nrrdIoStateUnknown+1, nrrdIoStateLast-1);
+ biffAdd(NRRD, err); return 1;
+ }
+ switch (parm) {
+ case nrrdIoStateDetachedHeader:
+ nio->detachedHeader = !!value;
+ break;
+ case nrrdIoStateBareText:
+ nio->bareText = !!value;
+ break;
+ case nrrdIoStateCharsPerLine:
+ if (value < 40) {
+ sprintf(err, "%s: %d charsPerLine is awfully small", me, value);
+ biffAdd(NRRD, err); return 1;
+ }
+ nio->charsPerLine = value;
+ break;
+ case nrrdIoStateValsPerLine:
+ if (value < 4) {
+ sprintf(err, "%s: %d valsPerLine is awfully small", me, value);
+ biffAdd(NRRD, err); return 1;
+ }
+ nio->valsPerLine = value;
+ break;
+ case nrrdIoStateSkipData:
+ nio->skipData = !!value;
+ break;
+ case nrrdIoStateKeepNrrdDataFileOpen:
+ nio->keepNrrdDataFileOpen = !!value;
+ break;
+ case nrrdIoStateZlibLevel:
+ if (!( AIR_IN_CL(-1, value, 9) )) {
+ sprintf(err, "%s: zlibLevel %d invalid", me, value);
+ biffAdd(NRRD, err); return 1;
+ }
+ nio->zlibLevel = value;
+ break;
+ case nrrdIoStateZlibStrategy:
+ if (!( AIR_IN_OP(nrrdZlibStrategyUnknown, value, nrrdZlibStrategyLast) )) {
+ sprintf(err, "%s: zlibStrategy %d invalid", me, value);
+ biffAdd(NRRD, err); return 1;
+ }
+ nio->zlibStrategy = value;
+ break;
+ case nrrdIoStateBzip2BlockSize:
+ if (!( AIR_IN_CL(-1, value, 9) )) {
+ sprintf(err, "%s: bzip2BlockSize %d invalid", me, value);
+ biffAdd(NRRD, err); return 1;
+ }
+ nio->bzip2BlockSize = value;
+ break;
+ default:
+ fprintf(stderr, "!%s: PANIC: didn't recognize parm %d\n", me, parm);
+ exit(1);
+ }
+ return 0;
+ }
+
+ int
+ nrrdIoStateSetEncoding (NrrdIoState *nio, const NrrdEncoding *encoding) {
+ char me[]="nrrdIoStateSetEncoding", err[AIR_STRLEN_MED];
+
+ if (!( nio && encoding )) {
+ sprintf(err, "%s: got NULL pointer", me);
+ if (nio) {
+ nio->encoding = nrrdEncodingUnknown;
+ }
+ biffAdd(NRRD, err); return 1;
+ }
+ if (!encoding->available()) {
+ sprintf(err, "%s: %s encoding isn't actually available", me,
+ encoding->name);
+ nio->encoding = nrrdEncodingUnknown;
+ biffAdd(NRRD, err); return 1;
+ }
+ nio->encoding = encoding;
+ return 0;
+ }
+
+ int
+ nrrdIoStateSetFormat (NrrdIoState *nio, const NrrdFormat *format) {
+ char me[]="nrrdIoStateSetFormat", err[AIR_STRLEN_MED];
+
+ if (!( nio && format )) {
+ sprintf(err, "%s: got NULL pointer", me);
+ if (nio) {
+ nio->format = nrrdFormatUnknown;
+ }
+ biffAdd(NRRD, err); return 1;
+ }
+ if (!format->available()) {
+ sprintf(err, "%s: %s format isn't actually available", me, format->name);
+ nio->format = nrrdFormatUnknown;
+ biffAdd(NRRD, err); return 1;
+ }
+ nio->format = format;
+ return 0;
+ }
+
+ /*
+ ** no biff
+ */
+ int
+ nrrdIoStateGet (NrrdIoState *nio, int parm) {
+ char me[]="nrrdIoStateGet";
+ int value;
+
+ if (!nio) {
+ /* got NULL pointer */
+ return -1;
+ }
+ if (!( AIR_IN_OP(nrrdIoStateUnknown, parm, nrrdIoStateLast) )) {
+ /* got bogus parameter identifier */
+ return -1;
+ }
+ switch (parm) {
+ case nrrdIoStateDetachedHeader:
+ value = !!nio->detachedHeader;
+ break;
+ case nrrdIoStateBareText:
+ value = !!nio->bareText;
+ break;
+ case nrrdIoStateCharsPerLine:
+ value = nio->charsPerLine;
+ break;
+ case nrrdIoStateValsPerLine:
+ value = nio->valsPerLine;
+ break;
+ case nrrdIoStateSkipData:
+ value = !!nio->skipData;
+ break;
+ case nrrdIoStateKeepNrrdDataFileOpen:
+ value = !!nio->keepNrrdDataFileOpen;
+ break;
+ case nrrdIoStateZlibLevel:
+ value = nio->zlibLevel;
+ break;
+ case nrrdIoStateZlibStrategy:
+ value = nio->zlibStrategy;
+ break;
+ case nrrdIoStateBzip2BlockSize:
+ value = nio->bzip2BlockSize;
+ break;
+ default:
+ fprintf(stderr, "!%s: PANIC: didn't recognize parm %d\n", me, parm);
+ exit(1);
+ }
+ return value;
+ }
+
+ /*
+ ** no biff
+ */
+ const NrrdEncoding *
+ nrrdIoStateGetEncoding (NrrdIoState *nio) {
+
+ return nio ? nio->encoding : nrrdEncodingUnknown;
+ }
+
+ /*
+ ** no biff
+ */
+ const NrrdFormat *
+ nrrdIoStateGetFormat (NrrdIoState *nio) {
+
+ return nio ? nio->format : nrrdFormatUnknown;
+ }
+
+ int
_nrrdFieldInteresting (const Nrrd *nrrd, NrrdIoState *nio, int field) {
int d, ret;
***************
*** 366,370 ****
*/
int
! _nrrdFormatMaybeGuess (const Nrrd *nrrd, NrrdIoState *nio, const char *filename) {
char me[]="_nrrdFormatMaybeGuess", err[AIR_STRLEN_MED], mesg[AIR_STRLEN_MED];
int fi, guessed, available, fits;
--- 544,549 ----
*/
int
! _nrrdFormatMaybeGuess (const Nrrd *nrrd, NrrdIoState *nio,
! const char *filename) {
char me[]="_nrrdFormatMaybeGuess", err[AIR_STRLEN_MED], mesg[AIR_STRLEN_MED];
int fi, guessed, available, fits;
|