1 /* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ 2 /* EXIFPROBE - TIFF/JPEG/EXIF image file probe */ 3 /* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ 4 /* Copyright (C) 2002 by Duane H. Hesser. All rights reserved. */ 5 /* */ 6 /* See the file LICENSE.EXIFPROBE for terms of use. */ 7 /* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ 8 9 /* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ 10 /* @(#) $Id: maker_extern.h,v 1.3 2005/06/25 15:11:43 alex Exp $ */ 11 /* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */ 12 13 /* General definitions for makernotes */ 14 15 #ifndef MAKER_EXTERN_INCLUDED 16 #define MAKER_EXTERN_INCLUDED 17 18 #include "maker_datadefs.h" 19 20 /* ====================== Maker functions ========================== */ 21 22 /* Generic */ 23 extern void print_makertagid(struct ifd_entry *,int,char *,int,int); 24 extern void print_makertaginfo(struct ifd_entry *,char *,int,int,int); 25 extern int maker_value_is_offset(struct ifd_entry *,int,int); 26 extern char *maker_tagname(unsigned short,int,int); 27 extern int check_makernote(FILE*,unsigned long); 28 extern void print_scheme(FILE *,struct maker_scheme *); 29 extern struct maker_scheme *retrieve_makerscheme(); 30 extern void clear_makerscheme(); 31 extern int maker_number(char *); 32 extern int model_number(int,char *,char *); 33 34 extern struct maker_scheme *find_makerscheme(FILE *,unsigned long, 35 unsigned long, 36 unsigned short, 37 unsigned long, 38 int,int); 39 extern unsigned long print_makerentry(FILE *,unsigned short, 40 struct ifd_entry *, 41 unsigned long, 42 struct image_summary *, 43 char *,int,int,int); 44 extern void print_makervalue(struct ifd_entry *,int,int,char *); 45 extern unsigned long print_offset_makervalue(FILE *,unsigned short, 46 struct ifd_entry *, 47 unsigned long, 48 struct image_summary *, 49 char *,char *, 50 int,int,int,int); 51 52 extern void print_generic_offset_makervalue(FILE *,unsigned short, 53 struct ifd_entry *, 54 unsigned long, 55 char *,char *, 56 int,int,int,int); 57 58 extern void print_camera_makes(); 59 extern void print_camera_models(struct camera_id *,char *); 60 extern void find_maker_model(struct maker_scheme *,int,int); 61 extern void setnoteversion(int); 62 extern void setoptionnoteversion(int); 63 extern void setnotetagset(int); 64 extern int getnoteversion(); 65 extern int getnotetagset(); 66 67 68 /* Agfa */ 69 extern char *maker_agfa_tagname(unsigned short,int); 70 extern char *maker_agfa1_tagname(unsigned short); 71 extern void print_agfa_makervalue(struct ifd_entry *,int,int,char *); 72 extern void print_agfa1_makervalue(struct ifd_entry *,int,int,char *); 73 74 extern void print_agfa_offset_makervalue(FILE *,unsigned short, 75 struct ifd_entry *, 76 unsigned long, 77 struct image_summary *, 78 char *,char *, 79 int,int,int,int); 80 extern void agfa1_offset_makervalue(FILE *,unsigned short, 81 struct ifd_entry *, 82 unsigned long, 83 struct image_summary *, 84 char *,char*, 85 int,int,int,int); 86 extern void agfa1_interpret_value(struct ifd_entry *); 87 extern void agfa1_interpret_offset_makervalue(FILE *,unsigned short, 88 struct ifd_entry *, 89 unsigned long); 90 extern int agfa_model_number(char *,char *); 91 92 /* Asahi/Pentax */ 93 extern char *maker_asahi_tagname(unsigned short,int); 94 extern char *maker_asahi1_tagname(unsigned short,int); 95 extern char *maker_asahi2_tagname(unsigned short,int); 96 extern char *maker_asahi3_tagname(unsigned short,int); 97 extern void print_asahi_makervalue(struct ifd_entry *,int,int,char *); 98 extern void print_asahi1_makervalue(struct ifd_entry *,int,int,char *); 99 100 extern void print_asahi_offset_makervalue(FILE *,unsigned short, 101 struct ifd_entry *, 102 unsigned long, 103 struct image_summary *, 104 char *,char *, 105 int,int,int,int); 106 extern void asahi1_offset_makervalue(FILE *,unsigned short, 107 struct ifd_entry *, 108 unsigned long, 109 struct image_summary *, 110 char*,char *, 111 int,int,int,int); 112 extern void asahi2_offset_makervalue(FILE *,unsigned short, 113 struct ifd_entry *, 114 unsigned long, 115 struct image_summary *, 116 char*,char *, 117 int,int,int,int); 118 extern void asahi1_interpret_value(struct ifd_entry *); 119 extern void asahi2_interpret_value(struct ifd_entry *); 120 extern void asahi3_interpret_value(struct ifd_entry *); 121 extern int asahi_model_number(char *,char *); 122 extern int set_asahi_noteversion(); 123 extern int maker_asahi_value_is_offset(struct ifd_entry *,int ); 124 125 #include "canon_extern.h" 126 127 /* Casio */ 128 extern char *maker_casio_tagname(unsigned short,int); 129 extern char *maker_casio1_tagname(unsigned short,int); 130 extern char *maker_casio2_tagname(unsigned short,int); 131 extern int set_casio_noteversion(); 132 133 extern void print_casio_makervalue(struct ifd_entry *,int,int,char *); 134 extern void print_casio1_makervalue(struct ifd_entry *,int,int,char *); 135 136 extern void print_casio_offset_makervalue(FILE *,unsigned short, 137 struct ifd_entry *, 138 unsigned long, 139 struct image_summary *, 140 char *,char *, 141 int,int,int,int); 142 extern void casio1_offset_makervalue(FILE *,unsigned short, 143 struct ifd_entry *, 144 unsigned long, 145 struct image_summary *, 146 char *,char *, 147 int,int,int,int); 148 extern void casio2_offset_makervalue(FILE *,unsigned short, 149 struct ifd_entry *, 150 unsigned long, 151 struct image_summary *, 152 char *,char *, 153 int,int,int,int); 154 extern void casio1_interpret_value(struct ifd_entry *); 155 extern void casio2_interpret_value(struct ifd_entry *); 156 extern int casio_model_number(char *,char *); 157 extern int maker_casio_value_is_offset(struct ifd_entry *,int ); 158 159 /* Epson */ 160 extern char *maker_epson_tagname(unsigned short,int); 161 extern char *maker_epson1_tagname(unsigned short,int); 162 extern void print_epson_makervalue(struct ifd_entry *,int,int,char *); 163 extern void print_epson1_makervalue(struct ifd_entry *,int,int,char *); 164 165 extern void print_epson_offset_makervalue(FILE *,unsigned short, 166 struct ifd_entry *, 167 unsigned long, 168 struct image_summary *, 169 char *,char *, 170 int,int,int,int); 171 extern void epson1_offset_makervalue(FILE *,unsigned short, 172 struct ifd_entry *, 173 unsigned long, 174 struct image_summary *, 175 char *,char *, 176 int,int,int,int); 177 extern void epson1_interpret_value(struct ifd_entry *); 178 extern void epson1_interpret_offset_makervalue(FILE *,unsigned short, 179 struct ifd_entry *, 180 unsigned long); 181 extern int epson_model_number(char *,char *); 182 183 /* Fujifilm */ 184 extern char *maker_fujifilm_tagname(unsigned short,int); 185 extern char *maker_fujifilm1_tagname(unsigned short,int); 186 extern void print_fujifilm_makervalue(struct ifd_entry *,int,int,char *); 187 extern void print_fujifilm1_makervalue(struct ifd_entry *,int,int,char *); 188 189 extern void print_fujifilm_offset_makervalue(FILE *,unsigned short, 190 struct ifd_entry *, 191 unsigned long, 192 struct image_summary *, 193 char *,char *, 194 int,int,int,int); 195 extern void fujifilm1_offset_makervalue(FILE *,unsigned short, 196 struct ifd_entry *, 197 unsigned long, 198 struct image_summary *, 199 char *,char *, 200 int,int,int,int); 201 extern void fujifilm1_interpret_value(struct ifd_entry *); 202 extern int fujifilm_model_number(char *,char *); 203 204 /* HP */ 205 extern int hp_model_number(char *,char *); 206 207 /* Kodak */ 208 extern int kodak_model_number(char *,char *); 209 210 /* Konica */ 211 extern char *maker_konica_tagname(unsigned short,int); 212 /* extern char *maker_konica1_tagname(unsigned short,int); */ 213 extern void print_konica_makervalue(struct ifd_entry *,int,int,char *); 214 extern void print_konica1_makervalue(struct ifd_entry *,int,int,char *); 215 216 extern void print_konica_offset_makervalue(FILE *,unsigned short, 217 struct ifd_entry *, 218 unsigned long, 219 struct image_summary *, 220 char *,char *, 221 int,int,int,int); 222 extern void konica1_offset_makervalue(FILE *,unsigned short, 223 struct ifd_entry *, 224 unsigned long, 225 struct image_summary *, 226 char *,char *, 227 int,int,int,int); 228 extern int konica_model_number(char *,char *); 229 230 231 /* Kyocera */ 232 extern char *maker_kyocera_tagname(unsigned short,int); 233 extern void print_kyocera_makervalue(struct ifd_entry *,int,int,char *); 234 extern void print_kyocera1_makervalue(struct ifd_entry *,int,int,char *); 235 236 extern void print_kyocera_offset_makervalue(FILE *,unsigned short, 237 struct ifd_entry *, 238 unsigned long, 239 struct image_summary *, 240 char *,char *, 241 int,int,int,int); 242 extern void kyocera1_offset_makervalue(FILE *,unsigned short, 243 struct ifd_entry *, 244 unsigned long, 245 struct image_summary *, 246 char *,char *, 247 int,int,int,int); 248 extern int kyocera_model_number(char *,char *); 249 250 /* Leica */ 251 extern char *maker_leica_tagname(unsigned short,int); 252 extern char *maker_leica1_tagname(unsigned short,int); 253 extern void print_leica_makervalue(struct ifd_entry *,int,int,char *); 254 extern void print_leica1_makervalue(struct ifd_entry *,int,int,char *); 255 256 extern void print_leica_offset_makervalue(FILE *,unsigned short, 257 struct ifd_entry *, 258 unsigned long, 259 struct image_summary *, 260 char *,char *, 261 int,int,int,int); 262 extern void leica1_offset_makervalue(FILE *,unsigned short, 263 struct ifd_entry *, 264 unsigned long, 265 struct image_summary *, 266 char *,char *, 267 int,int,int,int); 268 extern void leica1_interpret_value(struct ifd_entry *); 269 extern int leica_model_number(char *,char *); 270 271 /* Minolta */ 272 extern char *maker_minolta_tagname(unsigned short,int); 273 extern char *maker_minolta1_tagname(unsigned short,int); 274 extern void print_minolta_makervalue(struct ifd_entry *,int,int,char *); 275 extern void print_minolta1_makervalue(struct ifd_entry *,int,int,char *); 276 277 extern void print_minolta_offset_makervalue(FILE *,unsigned short, 278 struct ifd_entry *, 279 unsigned long, 280 struct image_summary *, 281 char *,char *, 282 int,int,int,int); 283 extern void minolta1_offset_makervalue(FILE *,unsigned short, 284 struct ifd_entry *, 285 unsigned long, 286 struct image_summary *, 287 char *,char *, 288 int,int,int,int); 289 extern void minolta1_interpret_value(struct ifd_entry *,int model); 290 extern void minolta1_interpret_offset_makervalue(FILE *,unsigned short, 291 struct ifd_entry *, 292 unsigned long); 293 extern int minolta_model_number(char *,char *); 294 extern int maker_minolta_value_is_offset(struct ifd_entry *,int ); 295 extern unsigned long minolta_camerasetting(FILE *,unsigned short,int,char *, 296 struct ifd_entry *, 297 unsigned long,int); 298 299 /* Nikon */ 300 extern char *maker_nikon_tagname(unsigned short,int); 301 extern char *maker_nikon1_tagname(unsigned short,int); 302 extern char *maker_nikon2_tagname(unsigned short,int); 303 extern int set_nikon_noteversion(); 304 305 extern void print_nikon_makervalue(struct ifd_entry *,int,int,char *); 306 extern void print_nikon_offset_makervalue(FILE *,unsigned short, 307 struct ifd_entry *, 308 unsigned long, 309 struct image_summary *, 310 char *,char *, 311 int,int,int,int); 312 extern void nikon1_offset_makervalue(FILE *,unsigned short, 313 struct ifd_entry *, 314 unsigned long, 315 struct image_summary *, 316 char *,char *, 317 int,int,int,int); 318 extern void nikon2_offset_makervalue(FILE *,unsigned short, 319 struct ifd_entry *, 320 unsigned long, 321 struct image_summary *, 322 char *,char *, 323 int,int,int,int); 324 extern void nikon1_interpret_value(struct ifd_entry *); 325 extern void nikon2_interpret_value(struct ifd_entry *); 326 extern void nikon2_interpret_offset_makervalue(FILE *,unsigned short, 327 struct ifd_entry *, 328 unsigned long,char *, 329 char *,int); 330 extern void nikon_colorbalance(FILE *,struct ifd_entry *,unsigned short, 331 unsigned long,int); 332 extern int nikon_model_number(char *,char *); 333 extern int maker_nikon_value_is_offset(struct ifd_entry *,int ); 334 335 /* Olympus */ 336 extern char *maker_olympus_tagname(unsigned short,int); 337 extern char *maker_olympus1_tagname(unsigned short,int); 338 extern void print_olympus_makervalue(struct ifd_entry *,int,int,char *); 339 extern void print_olympus1_makervalue(struct ifd_entry *,int,int,char *); 340 341 extern void print_olympus_offset_makervalue(FILE *,unsigned short, 342 struct ifd_entry *, 343 unsigned long, 344 struct image_summary *, 345 char *,char *, 346 int,int,int,int); 347 extern void olympus1_offset_makervalue(FILE *,unsigned short, 348 struct ifd_entry *, 349 unsigned long, 350 struct image_summary *, 351 char *,char *, 352 int,int,int,int); 353 extern void olympus1_interpret_value(struct ifd_entry *); 354 extern void olympus1_interpret_offset_makervalue(FILE *,unsigned short, 355 struct ifd_entry *, 356 unsigned long); 357 extern int olympus_model_number(char *,char *); 358 359 extern void olympus_interpret_pe_value(struct ifd_entry *,unsigned short,char *); 360 extern void olympus2010_interpret_value(struct ifd_entry *,char *); 361 extern void olympus2020_interpret_value(struct ifd_entry *,char *); 362 extern void olympus2030_interpret_value(struct ifd_entry *,char *); 363 extern void olympus2040_interpret_value(struct ifd_entry *,char *); 364 extern void olympus2050_interpret_value(struct ifd_entry *,char *); 365 366 extern void olympus_offset_pe_value(FILE *,unsigned short,struct ifd_entry *, 367 unsigned long,unsigned short, 368 struct image_summary *, 369 char *,char*,int,int,int,int); 370 extern void olympus1_offset_pe_value(FILE *,unsigned short,struct ifd_entry *, 371 unsigned long,unsigned short, 372 struct image_summary *, 373 char *,char*,int,int,int,int); 374 extern void olympus2010_offset_value(FILE *,unsigned short,struct ifd_entry *, 375 unsigned long, 376 struct image_summary *, 377 char *,char*, 378 int,int,int,int); 379 extern void olympus2020_offset_value(FILE *,unsigned short,struct ifd_entry *, 380 unsigned long, 381 struct image_summary *, 382 char *,char*, 383 int,int,int,int); 384 extern void olympus2030_offset_value(FILE *,unsigned short,struct ifd_entry *, 385 unsigned long, 386 struct image_summary *, 387 char *,char*, 388 int,int,int,int); 389 extern void olympus2040_offset_value(FILE *,unsigned short,struct ifd_entry *, 390 unsigned long, 391 struct image_summary *, 392 char *,char*, 393 int,int,int,int); 394 extern void olympus2050_offset_value(FILE *,unsigned short,struct ifd_entry *, 395 unsigned long, 396 struct image_summary *, 397 char *,char*, 398 int,int,int,int); 399 extern void olympus1_interpret_offset_pe_value(FILE *,unsigned short, 400 struct ifd_entry *,unsigned long, 401 unsigned short); 402 extern void olympus2010_interpret_offset_value(FILE *,unsigned short, 403 struct ifd_entry *,unsigned long); 404 extern void olympus2020_interpret_offset_value(FILE *,unsigned short, 405 struct ifd_entry *,unsigned long); 406 extern void olympus2030_interpret_offset_value(FILE *,unsigned short, 407 struct ifd_entry *,unsigned long); 408 extern void olympus2040_interpret_offset_value(FILE *,unsigned short, 409 struct ifd_entry *,unsigned long); 410 extern void olympus2050_interpret_offset_value(FILE *,unsigned short, 411 struct ifd_entry *,unsigned long); 412 413 extern char *olympus_private_tagname(unsigned short,unsigned short); 414 extern char *olympus_private_2010_tagname(unsigned short); 415 extern char *olympus_private_2020_tagname(unsigned short); 416 extern char *olympus_private_2030_tagname(unsigned short); 417 extern char *olympus_private_2040_tagname(unsigned short); 418 extern char *olympus_private_2050_tagname(unsigned short); 419 420 extern int olympus_private_value_is_offset(unsigned short,unsigned short); 421 extern int olympus2020_value_is_offset(unsigned short); 422 423 /* Panasonic */ 424 extern char *maker_panasonic_tagname(unsigned short,int); 425 extern char *maker_panasonic1_tagname(unsigned short,int); 426 extern void print_panasonic_makervalue(struct ifd_entry *,int,int,char *); 427 extern void print_panasonic1_makervalue(struct ifd_entry *,int,int,char *); 428 429 extern void print_panasonic_offset_makervalue(FILE *,unsigned short, 430 struct ifd_entry *, 431 unsigned long, 432 struct image_summary *, 433 char *,char *, 434 int,int,int,int); 435 extern void panasonic1_offset_makervalue(FILE *,unsigned short, 436 struct ifd_entry *, 437 unsigned long, 438 struct image_summary *, 439 char *,char *, 440 int,int,int,int); 441 extern void panasonic1_interpret_value(struct ifd_entry *); 442 extern void panasonic1_interpret_offset_makervalue(FILE *,unsigned short, 443 struct ifd_entry *, 444 unsigned long); 445 extern int panasonic_model_number(char *,char *); 446 447 /* Ricoh */ 448 extern int ricoh_model_number(char *,char *); 449 450 /* Sanyo */ 451 extern char *maker_sanyo_tagname(unsigned short,int); 452 extern char *maker_sanyo1_tagname(unsigned short,int); 453 extern void print_sanyo_makervalue(struct ifd_entry *,int,int,char *); 454 extern void print_sanyo1_makervalue(struct ifd_entry *,int,int,char *); 455 456 extern void print_sanyo_offset_makervalue(FILE *,unsigned short, 457 struct ifd_entry *, 458 unsigned long, 459 struct image_summary *, 460 char *,char *, 461 int,int,int,int); 462 extern void sanyo1_offset_makervalue(FILE *,unsigned short, 463 struct ifd_entry *, 464 unsigned long, 465 struct image_summary *, 466 char *,char *, 467 int,int,int,int); 468 extern void sanyo1_interpret_value(struct ifd_entry *); 469 extern void sanyo1_interpret_offset_makervalue(FILE *,unsigned short, 470 struct ifd_entry *, 471 unsigned long); 472 extern int sanyo_model_number(char *,char *); 473 474 /* Sigma */ 475 extern char *maker_sigma_tagname(unsigned short,int); 476 extern char *maker_sigma1_tagname(unsigned short,int); 477 extern void print_sigma_makervalue(struct ifd_entry *,int,int,char *); 478 extern void print_sigma1_makervalue(struct ifd_entry *,int,int,char *); 479 480 extern void print_sigma_offset_makervalue(FILE *,unsigned short, 481 struct ifd_entry *, 482 unsigned long, 483 struct image_summary *, 484 char *,char *, 485 int,int,int,int); 486 extern void sigma1_offset_makervalue(FILE *,unsigned short, 487 struct ifd_entry *, 488 unsigned long, 489 struct image_summary *, 490 char *,char *, 491 int,int,int,int); 492 extern int sigma_model_number(char *,char *); 493 494 /* Sony */ 495 extern char *maker_sony_tagname(unsigned short,int); 496 /* extern char *maker_sony1_tagname(unsigned short,int); */ 497 extern void print_sony_makervalue(struct ifd_entry *,int,int,char *); 498 extern void print_sony1_makervalue(struct ifd_entry *,int,int,char *); 499 extern void print_sony_offset_makervalue(FILE *,unsigned short, 500 struct ifd_entry *, 501 unsigned long, 502 struct image_summary *, 503 char *,char *, 504 int,int,int,int); 505 extern void sony1_offset_makervalue(FILE *,unsigned short, 506 struct ifd_entry *, 507 unsigned long, 508 struct image_summary *, 509 char *,char *, 510 int,int,int,int); 511 extern int sony_model_number(char *,char *); 512 513 /* Toshiba */ 514 extern char *maker_toshiba_tagname(unsigned short,int); 515 /* extern char *maker_toshiba1_tagname(unsigned short,int); */ 516 extern void print_toshiba_makervalue(struct ifd_entry *,int,int,char *); 517 extern void print_toshiba1_makervalue(struct ifd_entry *,int,int,char *); 518 519 extern void print_toshiba_offset_makervalue(FILE *,unsigned short, 520 struct ifd_entry *, 521 unsigned long, 522 struct image_summary *, 523 char *,char *, 524 int,int,int,int); 525 extern void toshiba1_offset_makervalue(FILE *,unsigned short, 526 struct ifd_entry *, 527 unsigned long, 528 struct image_summary *, 529 char *,char *, 530 int,int,int,int); 531 extern void toshiba1_interpret_value(struct ifd_entry *); 532 extern int toshiba_model_number(char *,char *); 533 534 /* Traveler */ 535 extern int traveler_model_number(char *,char *); 536 #endif /* MAKER_EXTERN_INCLUDED */ 537