IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 6224


Ignore:
Timestamp:
Jan 26, 2006, 5:42:45 PM (20 years ago)
Author:
jhoblitt
Message:

macroify rawScienceFramePrint() & p2PendingFramePrint()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/src/pxframes.c

    r6222 r6224  
    33#include "pxtools.h"
    44
    5 bool rawScienceFramePrint(FILE *stream, pxConfig *config, psArray *frames)
    6 {
    7     PS_ASSERT_PTR_NON_NULL(config, false);
    8     PS_ASSERT_PTR_NON_NULL(frames, false);
    9 
    10     psMetadata *output = psMetadataAlloc();
    11 
    12     for (int i = 0; i < frames->n; i++) {
    13         rawScienceFrame *frame = frames->data[i];
    14         PS_ASSERT_PTR_NON_NULL(frame, false);
    15         PS_ASSERT_PTR_NON_NULL(frame->images, false);
    16 
    17         for (int j = 0; j < frame->images->n; j++) {
    18             rawImfileRow *image = frame->images->data[j];
    19             fprintf (stream, "%s %s %s %s\n",
    20                 image->exp_id, image->class, image->class_id, image->url);
    21             psMetadata *md = rawImfileMetadataFromObject(image);
    22             psMetadataAddMetadata(output, PS_LIST_TAIL, "raw",  PS_META_DUPLICATE_OK, NULL, md);
    23         }
    24     }
    25 
    26     psString str = psMetadataConfigFormat(output);
    27     psFree(output);
    28     fprintf(stream, "%s\n", str);
    29     psFree(str);
    30 
    31     return true;
     5#define PX_FRAME_PRINT(frametype, imfiletype) \
     6bool frametype##Print(FILE *stream, pxConfig *config, psArray *frames) \
     7{\
     8    PS_ASSERT_PTR_NON_NULL(config, false); \
     9    PS_ASSERT_PTR_NON_NULL(frames, false); \
     10\
     11    psMetadata *output = psMetadataAlloc(); \
     12\
     13    for (int i = 0; i < frames->n; i++) { \
     14        frametype *frame = frames->data[i]; \
     15        PS_ASSERT_PTR_NON_NULL(frame, false); \
     16        PS_ASSERT_PTR_NON_NULL(frame->images, false); \
     17\
     18        for (int j = 0; j < frame->images->n; j++) { \
     19            imfiletype##Row *image = frame->images->data[j]; \
     20            fprintf (stream, "%s %s %s %s\n", \
     21                image->exp_id, image->class, image->class_id, image->url); \
     22            psMetadata *md = imfiletype##MetadataFromObject(image); \
     23            psMetadataAddMetadata(output, PS_LIST_TAIL, #imfiletype,  PS_META_DUPLICATE_OK, NULL, md); \
     24        } \
     25    } \
     26\
     27    psString str = psMetadataConfigFormat(output); \
     28    psFree(output); \
     29    fprintf(stream, "%s\n", str); \
     30    psFree(str); \
     31\
     32    return true; \
    3233}
    3334
    34 bool p2PendingFramePrint(FILE *stream, pxConfig *config, psArray *frames)
    35 {
    36     PS_ASSERT_PTR_NON_NULL(config, false);
    37     PS_ASSERT_PTR_NON_NULL(frames, false);
    38 
    39     fprintf (stdout, "# exp_id class class_id url\n");
    40 
    41     psMetadata *output = psMetadataAlloc();
    42     for (int i = 0; i < frames->n; i++) {
    43         p2PendingFrame *frame = frames->data[i];
    44         PS_ASSERT_PTR_NON_NULL(frame, false);
    45         PS_ASSERT_PTR_NON_NULL(frame->images, false);
    46 
    47         for (int j = 0; j < frame->images->n; j++) {
    48             p2PendingImfileRow *image = frame->images->data[j];
    49             fprintf (stream, "%s %s %s %s\n",
    50                 image->exp_id,
    51                 image->class,
    52                 image->class_id,
    53                 image->url
    54             );
    55             psMetadata *md = p2PendingImfileMetadataFromObject(image);
    56             psMetadataAddMetadata(output, PS_LIST_TAIL, "pending",  PS_META_DUPLICATE_OK, NULL, md);
    57         }
    58     }
    59 
    60     psString str = psMetadataConfigFormat(output);
    61     psFree(output);
    62     fprintf(stream, "%s\n", str);
    63     psFree(str);
    64 
    65     return true;
    66 }
     35PX_FRAME_PRINT(rawScienceFrame, rawImfile);
     36PX_FRAME_PRINT(p2PendingFrame, p2PendingImfile);
Note: See TracChangeset for help on using the changeset viewer.