Changeset 11095
- Timestamp:
- Jan 14, 2007, 3:16:55 PM (19 years ago)
- File:
-
- 1 edited
-
trunk/ppImage/src/ppImageParseCamera.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppImage/src/ppImageParseCamera.c
r10969 r11095 16 16 return NULL; 17 17 } 18 19 // determine filter from the concepts 20 char *filter = psMetadataLookupStr (&status, input->fpa->concepts, "FPA.FILTER"); 18 21 19 22 #if 0 … … 82 85 } 83 86 } 87 84 88 if (options->doFlat) { 85 bool status = false; 86 pmFPAfileDefineFromArgs (&status, config, "PPIMAGE.FLAT", "FLAT"); 87 pmFPAfileDefineFromConf (&status, config, "PPIMAGE.FLAT"); 88 pmFPAfileDefineFromDetDB (&status, config, "PPIMAGE.FLAT", input->fpa, PM_DETREND_TYPE_FLAT); 89 if (!status) { 90 psError (PS_ERR_IO, false, "can't find a flat image source"); 91 return NULL; 92 } 93 } 89 // select FLAT.FILTERS from the recipe and test if the filter matches 90 // is the mdi saved with psList or string? 91 psMetadataItem *mdi = psMetadataLookup (recipe, "FLAT.FILTERS"); 92 if (mdi == NULL) { 93 // no valid filters for flat data for this camera 94 options->doFlat = false; 95 goto skip_flat; 96 } 97 // place entry on a list regardless of type 98 psList *filters = NULL; 99 if (mdi->type == PS_DATA_STRING) { 100 filters = psListAlloc(NULL); 101 psListAdd (filters, PS_LIST_HEAD, mdi); 102 } else { 103 if (mdi->type != PS_DATA_METADATA_MULTI) psAbort ("ppImage", "invalid type for FLAT.FILTERS"); 104 filter = psMemIncrRefCounter(mdi->data.list); 105 } 106 107 // search through list to find the current filter 108 psListIterator *iter = psListIteratorAlloc (filters, PS_LIST_HEAD, FALSE); 109 options->doFlat = false; 110 for (int i = 0; !options->doFlat && (i < filters->n); i++) { 111 psMetadataItem *item = psListGetAndIncrement (iter); 112 char *validFilter = item->data.V; 113 if (strcmp (validFilter, filter)) continue; 114 options->doFlat = true; 115 } 116 } 117 skip_flat: 118 if (options->doFlat) { 119 bool status = false; 120 pmFPAfileDefineFromArgs (&status, config, "PPIMAGE.FLAT", "FLAT"); 121 pmFPAfileDefineFromConf (&status, config, "PPIMAGE.FLAT"); 122 pmFPAfileDefineFromDetDB (&status, config, "PPIMAGE.FLAT", input->fpa, PM_DETREND_TYPE_FLAT); 123 if (!status) { 124 psError (PS_ERR_IO, false, "can't find a flat image source"); 125 return NULL; 126 } 127 } 128 94 129 if (options->doFringe) { 95 bool status = false; 96 pmFPAfileDefineFromArgs (&status, config, "PPIMAGE.FRINGE", "FRINGE"); 97 pmFPAfileDefineFromConf (&status, config, "PPIMAGE.FRINGE"); 98 pmFPAfileDefineFromDetDB (&status, config, "PPIMAGE.FRINGE", input->fpa, PM_DETREND_TYPE_FRINGE_IMAGE); 99 if (!status) { 100 psError (PS_ERR_IO, false, "can't find a fringe image source"); 101 return NULL; 102 } 130 // select FRINGE.FILTERS from the recipe and test if the filter matches 131 // is the mdi saved with psList or string? 132 psMetadataItem *mdi = psMetadataLookup (recipe, "FRINGE.FILTERS"); 133 if (mdi == NULL) { 134 // no valid filters for fringe data for this camera 135 options->doFringe = false; 136 goto skip_fringe; 137 } 138 // place entry on a list regardless of type 139 psList *filters = NULL; 140 if (mdi->type == PS_DATA_STRING) { 141 filters = psListAlloc(NULL); 142 psListAdd (filters, PS_LIST_HEAD, mdi); 143 } else { 144 if (mdi->type != PS_DATA_METADATA_MULTI) psAbort ("ppImage", "invalid type for FRINGE.FILTERS"); 145 filter = psMemIncrRefCounter(mdi->data.list); 146 } 147 148 // search through list to find the current filter 149 psListIterator *iter = psListIteratorAlloc (filters, PS_LIST_HEAD, FALSE); 150 options->doFringe = false; 151 for (int i = 0; !options->doFringe && (i < filters->n); i++) { 152 psMetadataItem *item = psListGetAndIncrement (iter); 153 char *validFilter = item->data.V; 154 if (strcmp (validFilter, filter)) continue; 155 options->doFringe = true; 156 } 157 } 158 skip_fringe: 159 if (options->doFringe) { 160 bool status = false; 161 pmFPAfileDefineFromArgs (&status, config, "PPIMAGE.FRINGE", "FRINGE"); 162 pmFPAfileDefineFromConf (&status, config, "PPIMAGE.FRINGE"); 163 pmFPAfileDefineFromDetDB (&status, config, "PPIMAGE.FRINGE", input->fpa, PM_DETREND_TYPE_FRINGE_IMAGE); 164 if (!status) { 165 psError (PS_ERR_IO, false, "can't find a fringe image source"); 166 return NULL; 167 } 103 168 } 104 169
Note:
See TracChangeset
for help on using the changeset viewer.
