Changeset 6354 for trunk/psLib/src/fits/psFitsTable.c
- Timestamp:
- Feb 7, 2006, 3:03:35 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/fits/psFitsTable.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/fits/psFitsTable.c
r6314 r6354 7 7 * @author Robert DeSonia, MHPCC 8 8 * 9 * @version $Revision: 1. 3$ $Name: not supported by cvs2svn $10 * @date $Date: 2006-02-0 3 00:11:58$9 * @version $Revision: 1.4 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2006-02-08 01:03:34 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 23 23 #include "psTrace.h" 24 24 #include "psVector.h" 25 #include "config.h" 25 26 26 27 #define MAX_STRING_LENGTH 256 // maximum length string for FITS routines … … 309 310 if (status == 0) { 310 311 311 #define READ_TABLE_ROW_CASE(FITSTYPE, NATIVETYPE, TYPE ) \312 #define READ_TABLE_ROW_CASE(FITSTYPE, NATIVETYPE, TYPE, VECTYPE) \ 312 313 case FITSTYPE: { \ 313 314 if (repeat == 1) { \ … … 322 323 "", (ps##TYPE)value); \ 323 324 } else { \ 324 psVector* value = psVectorAlloc(repeat,PS_DATA_##TYPE); \ 325 NATIVETYPE* value = psAlloc(sizeof(NATIVETYPE)*repeat); \ 326 psVector* vec = psVectorAlloc(repeat,PS_TYPE_##VECTYPE); \ 325 327 int anynul = 0; \ 326 328 fits_read_col(fits->fd, FITSTYPE, col,row+1, \ 327 1, repeat, NULL, value->data.U8, &anynul, &status); \ 328 psMetadataAdd(data,PS_LIST_TAIL, name, \ 329 PS_DATA_VECTOR, \ 330 "", value); \ 329 1, repeat, NULL, value, &anynul, &status); \ 330 for (int lcv = 0; lcv < repeat; lcv++) { \ 331 vec->data.VECTYPE[lcv] = value[lcv]; \ 332 } \ 333 psMetadataAdd(data,PS_LIST_TAIL, name, PS_DATA_VECTOR, "", vec); \ 331 334 psFree(value); \ 335 psFree(vec); \ 332 336 } \ 333 337 break; \ … … 338 342 case TSHORT: 339 343 case TLONGLONG: 340 READ_TABLE_ROW_CASE(TLONG, long, S32 )341 READ_TABLE_ROW_CASE(TFLOAT, float, F32 )342 READ_TABLE_ROW_CASE(TDOUBLE, double, F64 )343 READ_TABLE_ROW_CASE(TLOGICAL, bool, BOOL );344 READ_TABLE_ROW_CASE(TLONG, long, S32,S32) 345 READ_TABLE_ROW_CASE(TFLOAT, float, F32,F32) 346 READ_TABLE_ROW_CASE(TDOUBLE, double, F64,F64) 347 READ_TABLE_ROW_CASE(TLOGICAL, bool, BOOL,S8); 344 348 case TSTRING: { 345 349 char* value = psAlloc(repeat+1);
Note:
See TracChangeset
for help on using the changeset viewer.
