39 #include "vircam_utils.h"
40 #include "vircam_fits.h"
85 const char *fctid =
"vircam_fits_load";
94 im = cpl_image_load(cpl_frame_get_filename(frame),type,0,(cpl_size)nexten);
96 cpl_msg_error(fctid,
"Unable to load %s[%" CPL_SIZE_FORMAT
"] -- %s\n",
97 cpl_frame_get_filename(frame),(cpl_size)nexten,
98 cpl_error_get_message());
105 p = cpl_malloc(
sizeof(vir_fits));
113 p->fname = cpl_strdup(cpl_frame_get_filename(frame));
121 if (cpl_propertylist_has(p->ehu,
"EXTNAME")) {
122 p->extname = cpl_strdup(cpl_propertylist_get_string(p->ehu,
"EXTNAME"));
127 nf = 11 + (int)log10((
double)nexten);
128 p->extname = cpl_malloc(nf);
129 (void)snprintf(p->extname,nf,
"DET1.CHIP%d",nexten);
131 nf = strlen(p->extname) + strlen(p->fname) + 3;
132 p->fullname = cpl_malloc(nf);
133 (void)snprintf(p->fullname,nf,
"%s[%s]",p->fname,p->extname);
169 p = cpl_malloc(
sizeof(vir_fits));
185 if (in->image != NULL)
186 p->image = cpl_image_duplicate(in->image);
191 if (in->fname != NULL)
192 p->fname = cpl_strdup(in->fname);
193 if (in->extname != NULL)
194 p->extname = cpl_strdup(in->extname);
195 if (in->fullname != NULL)
196 p->fullname = cpl_strdup(in->fullname);
197 p->nexten = in->nexten;
198 p->status = in->status;
243 p = cpl_malloc(cpl_frameset_get_size(f)*
sizeof(vir_fits *));
247 for (i = 0; i < cpl_frameset_get_size(f); i++) {
287 freepropertylist(p->phu);
288 freepropertylist(p->ehu);
290 freespace(p->extname);
291 freespace(p->fullname);
324 for (i = 0; i < n; i++)
426 p->phu = cpl_propertylist_load(p->fname,0);
467 p->ehu = cpl_propertylist_load(p->fname,(cpl_size)(p->nexten));
636 if (status == VIR_OK)
645 if (cpl_error_get_code() != CPL_ERROR_NONE) {
646 cpl_msg_error(
"",
"%s",cpl_error_get_message());
652 if (status == VIR_FATAL)
687 if (p == NULL || fname == NULL)
693 p->fname = cpl_strdup(fname);
726 cpl_propertylist *phu,
727 cpl_propertylist *ehu) {
737 p = cpl_malloc(
sizeof(vir_fits));
744 p->phu = cpl_propertylist_duplicate(phu);
745 else if (model != NULL)
750 p->ehu = cpl_propertylist_duplicate(ehu);
751 else if (model != NULL)
790 freepropertylist(p->phu);
791 freepropertylist(p->ehu);
793 freespace(p->extname);
794 freespace(p->fullname);
char * vircam_fits_get_filename(vir_fits *p)
vir_fits ** vircam_fits_load_list(cpl_frameset *f, cpl_type type, int exten)
vir_fits * vircam_fits_wrap(cpl_image *im, vir_fits *model, cpl_propertylist *phu, cpl_propertylist *ehu)
void vircam_fits_set_filename(vir_fits *p, char *fname)
int vircam_fits_get_status(vir_fits *p)
void vircam_fits_delete(vir_fits *p)
char * vircam_fits_get_fullname(vir_fits *p)
int vircam_fits_get_nexten(vir_fits *p)
cpl_image * vircam_fits_get_image(vir_fits *p)
int vircam_fits_set_error(vir_fits *p, int status)
vir_fits * vircam_fits_duplicate(vir_fits *in)
void vircam_fits_delete_list(vir_fits **p, int n)
cpl_propertylist * vircam_fits_get_phu(vir_fits *p)
void vircam_fits_unwrap(vir_fits *p)
vir_fits * vircam_fits_load(cpl_frame *frame, cpl_type type, int nexten)
cpl_propertylist * vircam_fits_get_ehu(vir_fits *p)
char * vircam_fits_get_extname(vir_fits *p)