| 251 | } |
| 252 | |
| 253 | void tiff_set(ushort *ntag, ushort tag, ushort type, int count, int val) |
| 254 | { |
| 255 | struct libraw_tiff_tag *tt; |
| 256 | int c; |
| 257 | |
| 258 | tt = (struct libraw_tiff_tag *)(ntag + 1) + (*ntag)++; |
| 259 | tt->tag = tag; |
| 260 | tt->type = type; |
| 261 | tt->count = count; |
| 262 | if ((type < LIBRAW_EXIFTAG_TYPE_SHORT) && (count <= 4)) |
| 263 | for (c = 0; c < 4; c++) |
| 264 | tt->val.c[c] = val >> (c << 3); |
| 265 | else if (tagtypeIs(LIBRAW_EXIFTAG_TYPE_SHORT) && (count <= 2)) |
| 266 | for (c = 0; c < 2; c++) |
| 267 | tt->val.s[c] = val >> (c << 4); |
| 268 | else |
| 269 | tt->val.i = val; |
| 270 | } |
| 271 | #define TOFF(ptr) ((char *)(&(ptr)) - (char *)th) |
| 272 | |
| 273 | void tiff_head(int width, int height, struct tiff_hdr *th) |