On Tuesday, February 10, 2015 at 3:30:50 PM UTC-7, Chris Torrence wrote:
> Hi Peter,
>
> Here's some sample code from the TIFF module, where it is creating the "info" structure:
>
> static IDL_STRUCT_TAG_DEF s_tags[] = {
> { "CHANNELS", 0, (void *) IDL_TYP_LONG },
> { "DIMENSIONS", dim_dims, (void *) IDL_TYP_LONG },
> { "HAS_PALETTE", 0, (void *) IDL_TYP_INT },
> { "IMAGE_INDEX", 0, (void *) IDL_TYP_LONG },
> { "NUM_IMAGES", 0, (void *) IDL_TYP_LONG },
> { "PIXEL_TYPE", 0, (void *) IDL_TYP_INT },
> { "TYPE", 0, (void *) IDL_TYP_STRING },
> { "BITS_PER_SAMPLE", 0, (void *) IDL_TYP_LONG },
> { "ORIENTATION", 0, (void *) IDL_TYP_LONG },
> { "PLANAR_CONFIG", 0, (void *) IDL_TYP_LONG },
> { "PHOTOMETRIC", 0, (void *) IDL_TYP_LONG },
> { "POSITION", dim_dims, (void *) IDL_TYP_FLOAT },
> { "RESOLUTION", dim_dims, (void *) IDL_TYP_FLOAT },
> { "UNITS", 0, (void *) IDL_TYP_LONG },
> { "TILE_SIZE", dim_dims, (void *) IDL_TYP_LONG },
> { "DESCRIPTION", 0, (void *) IDL_TYP_STRING },
> { "DOCUMENT_NAME", 0, (void *) IDL_TYP_STRING },
> { "DATE_TIME", 0, (void *) IDL_TYP_STRING },
> { "VERSION", 0, (void *) IDL_TYP_LONG },
> { 0 }
> };
>
> typedef struct {
> IDL_LONG channels;
> IDL_LONG dimensions[2];
> IDL_INT has_palette;
> IDL_LONG image_index;
> IDL_LONG num_images;
> IDL_INT pixel_type;
> IDL_STRING type_str;
> IDL_LONG bits_per_sample;
> IDL_LONG orientation;
> IDL_LONG planar_config;
> IDL_LONG photometric;
> float position[2];
> float resolution[2];
> IDL_LONG units;
> IDL_LONG tile_size[2];
> IDL_STRING description;
> IDL_STRING document_name;
> IDL_STRING date_time;
> IDL_LONG version;
> } ret_struct;
>
> s_def = IDL_MakeStruct(0, s_tags); /* create the struct */
> ret = (ret_struct *)
> IDL_MakeTempStructVector(s_def, 1, &vpTmp,IDL_FALSE);
>
>
> I'm not sure how much of this API is actually included in "idl_export.h", so you might be unsuccessful at getting this to compile. But hopefully it will give you a start!
>
> Cheers,
> Chris
Peter,
It looks like you just need to ensure that the tag names in your C IDL_STRUCT_TAG_DEF are uppercase only. The interpreter isn't going to handle the mixed case that you're using presently.
Jim P.
|