1 /* 2 * 3 * Copyright (c) 2004-2010 Gabor Horvath <hgabor@rawtherapee.com> 4 * 5 * RawTherapee is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation, either version 3 of the License, or 8 * (at your option) any later version. 9 * 10 * RawTherapee is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with RawTherapee. If not, see <https://www.gnu.org/licenses/>. 17 */ 18 #ifndef _SONYMINOLTAATTRIBS_ 19 #define _SONYMINOLTAATTRIBS_ 20 21 #include <cmath> 22 23 #include "rtexif.h" 24 25 namespace rtexif 26 { 27 28 class SANoYesInterpreter : public ChoiceInterpreter<> 29 { 30 public: SANoYesInterpreter()31 SANoYesInterpreter () 32 { 33 choices[1] = "No"; 34 choices[16] = "Yes"; 35 } 36 }; 37 SANoYesInterpreter saNoYesInterpreter; 38 39 class SAOnOffInterpreter : public ChoiceInterpreter<> 40 { 41 public: SAOnOffInterpreter()42 SAOnOffInterpreter () 43 { 44 choices[0] = "Off"; 45 choices[1] = "On"; 46 choices[5] = "On"; 47 } 48 }; 49 SAOnOffInterpreter saOnOffInterpreter; 50 51 class SAOnOffInterpreter2 : public ChoiceInterpreter<> 52 { 53 public: SAOnOffInterpreter2()54 SAOnOffInterpreter2 () 55 { 56 choices[1] = "Off"; 57 choices[16] = "On"; 58 } 59 }; 60 SAOnOffInterpreter2 saOnOffInterpreter2; 61 62 class SAOnOffInterpreter3 : public ChoiceInterpreter<> 63 { 64 public: SAOnOffInterpreter3()65 SAOnOffInterpreter3 () 66 { 67 choices[1] = "Off"; 68 choices[16] = "On (Auto)"; 69 choices[17] = "On (Manual)"; 70 } 71 }; 72 SAOnOffInterpreter3 saOnOffInterpreter3; 73 74 class SAOnOffInterpreter4 : public ChoiceInterpreter<> 75 { 76 public: SAOnOffInterpreter4()77 SAOnOffInterpreter4 () 78 { 79 choices[0] = "n/a"; 80 choices[1] = "Off"; 81 choices[16] = "On"; 82 choices[255] = "None"; 83 } 84 }; 85 SAOnOffInterpreter4 saOnOffInterpreter4; 86 87 class SAOnOffInterpreter5 : public ChoiceInterpreter<> 88 { 89 public: SAOnOffInterpreter5()90 SAOnOffInterpreter5 () 91 { 92 choices[1] = "On"; 93 choices[2] = "Off"; 94 } 95 }; 96 SAOnOffInterpreter5 saOnOffInterpreter5; 97 98 class SAHighISONoiseReduction : public ChoiceInterpreter<> 99 { 100 public: SAHighISONoiseReduction()101 SAHighISONoiseReduction () 102 { 103 choices[0] = "Off"; 104 choices[1] = "Low"; 105 choices[2] = "Normal"; 106 choices[3] = "High"; 107 choices[256] = "Auto"; 108 choices[65535] = "n/a"; 109 } 110 }; 111 SAHighISONoiseReduction saHighISONoiseReduction; 112 113 class SAHighISONoiseReduction2 : public ChoiceInterpreter<> 114 { 115 public: SAHighISONoiseReduction2()116 SAHighISONoiseReduction2 () 117 { 118 choices[0] = "Normal"; 119 choices[1] = "High"; 120 choices[2] = "Low"; 121 choices[3] = "Off"; 122 choices[65535] = "n/a"; 123 } 124 }; 125 SAHighISONoiseReduction2 saHighISONoiseReduction2; 126 127 class SAHighISONoiseReduction3 : public ChoiceInterpreter<> 128 { 129 public: SAHighISONoiseReduction3()130 SAHighISONoiseReduction3 () 131 { 132 choices[0] = "Normal"; 133 choices[1] = "Low"; 134 choices[2] = "High"; 135 choices[3] = "Off"; 136 } 137 }; 138 SAHighISONoiseReduction3 saHighISONoiseReduction3; 139 140 class SAHighISONoiseReduction4 : public ChoiceInterpreter<> 141 { 142 public: SAHighISONoiseReduction4()143 SAHighISONoiseReduction4 () 144 { 145 choices[0] = "Off"; 146 choices[1] = "Low"; 147 choices[2] = "Normal"; 148 choices[3] = "High"; 149 } 150 }; 151 SAHighISONoiseReduction4 saHighISONoiseReduction4; 152 153 class SAHighISONoiseReduction5 : public ChoiceInterpreter<> 154 { 155 public: SAHighISONoiseReduction5()156 SAHighISONoiseReduction5 () 157 { 158 choices[16] = "Low"; 159 choices[19] = "Auto"; 160 } 161 }; 162 SAHighISONoiseReduction5 saHighISONoiseReduction5; 163 164 class SASmileShutterMode : public ChoiceInterpreter<> 165 { 166 public: SASmileShutterMode()167 SASmileShutterMode () 168 { 169 choices[17] = "Slight smile"; 170 choices[18] = "Normal smile"; 171 choices[19] = "Big smile"; 172 } 173 }; 174 SASmileShutterMode saSmileShutterMode; 175 176 class SAHDRLevel : public ChoiceInterpreter<> 177 { 178 public: SAHDRLevel()179 SAHDRLevel () 180 { 181 choices[33] = "1 EV"; 182 choices[34] = "1.5 EV"; 183 choices[35] = "2 EV"; 184 choices[36] = "2.5 EV"; 185 choices[37] = "3 EV"; 186 choices[38] = "3.5 EV"; 187 choices[39] = "4 EV"; 188 choices[40] = "5 EV"; 189 choices[41] = "6 EV"; 190 } 191 }; 192 SAHDRLevel saHDRLevel; 193 194 class SAViewingMode : public ChoiceInterpreter<> 195 { 196 public: SAViewingMode()197 SAViewingMode () 198 { 199 choices[0] = "n/a"; 200 choices[16] = "ViewFinder"; 201 choices[33] = "Focus Check Live View"; 202 choices[34] = "Quick AF Live View"; 203 } 204 }; 205 SAViewingMode saViewingMode; 206 207 class SAFlashAction : public ChoiceInterpreter<> 208 { 209 public: SAFlashAction()210 SAFlashAction () 211 { 212 choices[1] = "Did not fire"; 213 choices[2] = "Fired"; 214 } 215 }; 216 SAFlashAction saFlashAction; 217 218 class SALiveViewFocusMode : public ChoiceInterpreter<> 219 { 220 public: SALiveViewFocusMode()221 SALiveViewFocusMode () 222 { 223 choices[0] = "n/a"; 224 choices[1] = "AF"; 225 choices[16] = "Manual"; 226 } 227 }; 228 SALiveViewFocusMode saLiveViewFocusMode; 229 230 class SALensMount : public ChoiceInterpreter<> 231 { 232 public: SALensMount()233 SALensMount () 234 { 235 choices[1] = "Unknown"; 236 choices[16] = "A-Mount"; 237 choices[17] = "E-Mount"; 238 } 239 }; 240 SALensMount saLensMount; 241 242 class SASweepPanoramaSize : public ChoiceInterpreter<> 243 { 244 public: SASweepPanoramaSize()245 SASweepPanoramaSize () 246 { 247 choices[1] = "Standard"; 248 choices[2] = "Wide"; 249 } 250 }; 251 SASweepPanoramaSize saSweepPanoramaSize; 252 253 class SASweepPanoramaDirection : public ChoiceInterpreter<> 254 { 255 public: SASweepPanoramaDirection()256 SASweepPanoramaDirection () 257 { 258 choices[1] = "Right"; 259 choices[2] = "Left"; 260 choices[3] = "Up"; 261 choices[4] = "Down"; 262 } 263 }; 264 SASweepPanoramaDirection saSweepPanoramaDirection; 265 266 class SALiveViewAFSetting : public ChoiceInterpreter<> 267 { 268 public: SALiveViewAFSetting()269 SALiveViewAFSetting () 270 { 271 choices[0] = "n/a"; 272 choices[1] = "Phase-detect AF"; 273 choices[2] = "Contrast AF"; 274 } 275 }; 276 SALiveViewAFSetting saLiveViewAFSetting; 277 278 class SAPanoramaSize3D : public ChoiceInterpreter<> 279 { 280 public: SAPanoramaSize3D()281 SAPanoramaSize3D () 282 { 283 choices[0] = "n/a"; 284 choices[1] = "Standard"; 285 choices[2] = "Wide"; 286 choices[3] = "16:9"; 287 } 288 }; 289 SAPanoramaSize3D saPanoramaSize3D; 290 291 class SALiveViewMetering : public ChoiceInterpreter<> 292 { 293 public: SALiveViewMetering()294 SALiveViewMetering () 295 { 296 choices[0] = "n/a"; 297 choices[16] = "40 segment"; 298 choices[32] = "1200-zone Evaluative"; 299 } 300 }; 301 SALiveViewMetering saLiveViewMetering; 302 303 class SAWhiteBalanceInterpreter: public ChoiceInterpreter<> 304 { 305 public: SAWhiteBalanceInterpreter()306 SAWhiteBalanceInterpreter() 307 { 308 choices[ 0x0] = "Auto"; 309 choices[ 0x1] = "Color Temperature/Color Filter"; 310 choices[0x10] = "Daylight"; 311 choices[0x20] = "Cloudy"; 312 choices[0x30] = "Shade"; 313 choices[0x40] = "Tungsten"; 314 choices[0x50] = "Flash"; 315 choices[0x60] = "Fluorescent"; 316 choices[0x70] = "Custom"; 317 choices[0x80] = "Underwater"; 318 } 319 }; 320 SAWhiteBalanceInterpreter saWhiteBalanceInterpreter; 321 322 class SAWhiteBalanceSettingInterpreter: public ChoiceInterpreter<> 323 { 324 public: SAWhiteBalanceSettingInterpreter()325 SAWhiteBalanceSettingInterpreter() 326 { 327 choices[0x10] = "Auto (-3)"; 328 choices[0x11] = "Auto (-2)"; 329 choices[0x12] = "Auto (-1)"; 330 choices[0x13] = "Auto (0)"; 331 choices[0x14] = "Auto (+1)"; 332 choices[0x15] = "Auto (+2)"; 333 choices[0x16] = "Auto (+3)"; 334 choices[0x20] = "Daylight (-3)"; 335 choices[0x21] = "Daylight (-2)"; 336 choices[0x22] = "Daylight (-1)"; 337 choices[0x23] = "Daylight (0)"; 338 choices[0x24] = "Daylight (+1)"; 339 choices[0x25] = "Daylight (+2)"; 340 choices[0x26] = "Daylight (+3)"; 341 choices[0x30] = "Shade (-3)"; 342 choices[0x31] = "Shade (-2)"; 343 choices[0x32] = "Shade (-1)"; 344 choices[0x33] = "Shade (0)"; 345 choices[0x34] = "Shade (+1)"; 346 choices[0x35] = "Shade (+2)"; 347 choices[0x36] = "Shade (+3)"; 348 choices[0x40] = "Cloudy (-3)"; 349 choices[0x41] = "Cloudy (-2)"; 350 choices[0x42] = "Cloudy (-1)"; 351 choices[0x43] = "Cloudy (0)"; 352 choices[0x44] = "Cloudy (+1)"; 353 choices[0x45] = "Cloudy (+2)"; 354 choices[0x46] = "Cloudy (+3)"; 355 choices[0x50] = "Tungsten (-3)"; 356 choices[0x51] = "Tungsten (-2)"; 357 choices[0x52] = "Tungsten (-1)"; 358 choices[0x53] = "Tungsten (0)"; 359 choices[0x54] = "Tungsten (+1)"; 360 choices[0x55] = "Tungsten (+2)"; 361 choices[0x56] = "Tungsten (+3)"; 362 choices[0x60] = "Fluorescent (-3)"; 363 choices[0x61] = "Fluorescent (-2)"; 364 choices[0x62] = "Fluorescent (-1)"; 365 choices[0x63] = "Fluorescent (0)"; 366 choices[0x64] = "Fluorescent (+1)"; 367 choices[0x65] = "Fluorescent (+2)"; 368 choices[0x66] = "Fluorescent (+3)"; 369 choices[0x70] = "Flash (-3)"; 370 choices[0x71] = "Flash (-2)"; 371 choices[0x72] = "Flash (-1)"; 372 choices[0x73] = "Flash (0)"; 373 choices[0x74] = "Flash (+1)"; 374 choices[0x75] = "Flash (+2)"; 375 choices[0x76] = "Flash (+3)"; 376 choices[0xa3] = "Custom"; 377 choices[0xf3] = "Color Temperature/Color Filter"; 378 } 379 }; 380 SAWhiteBalanceSettingInterpreter saWhiteBalanceSettingInterpreter; 381 382 class SASceneModeInterpreter : public ChoiceInterpreter<> 383 { 384 public: SASceneModeInterpreter()385 SASceneModeInterpreter () 386 { 387 choices[0] = "Standard"; 388 choices[1] = "Portrait"; 389 choices[2] = "Text"; 390 choices[3] = "Night Scene"; 391 choices[4] = "Sunset"; 392 choices[5] = "Sports"; 393 choices[6] = "Landscape"; 394 choices[7] = "Night Portrait"; 395 choices[8] = "Macro"; 396 choices[9] = "Super Macro"; 397 choices[16] = "Auto"; 398 choices[17] = "Night View/Portrait"; 399 choices[18] = "Sweep Panorama"; 400 choices[19] = "Handheld Night Shot"; 401 choices[20] = "Anti Motion Blur"; 402 choices[21] = "Cont. Priority AE"; 403 choices[22] = "Auto+"; 404 choices[23] = "3D Sweep Panorama"; 405 choices[24] = "Superior Auto"; 406 choices[25] = "High Sensitivity"; 407 choices[26] = "Fireworks"; 408 choices[27] = "Food"; 409 choices[28] = "Pet"; 410 choices[33] = "HDR"; 411 choices[65535] = "n/a"; 412 } 413 }; 414 SASceneModeInterpreter saSceneModeInterpreter; 415 416 class SAZoneMatchingInterpreter : public ChoiceInterpreter<> 417 { 418 public: SAZoneMatchingInterpreter()419 SAZoneMatchingInterpreter () 420 { 421 choices[0] = "ISO Setting Used"; 422 choices[1] = "High Key"; 423 choices[2] = "Low Key"; 424 } 425 }; 426 SAZoneMatchingInterpreter saZoneMatchingInterpreter; 427 428 class SADynamicRangeOptimizerInterpreter : public ChoiceInterpreter<> 429 { 430 public: SADynamicRangeOptimizerInterpreter()431 SADynamicRangeOptimizerInterpreter () 432 { 433 choices[0] = "Off"; 434 choices[1] = "Standard"; 435 choices[2] = "Advanced"; 436 choices[3] = "Auto"; 437 choices[8] = "Advanced Lv1"; 438 choices[9] = "Advanced Lv2"; 439 choices[10] = "Advanced Lv3"; 440 choices[11] = "Advanced Lv4"; 441 choices[12] = "Advanced Lv5"; 442 choices[16] = "Lv1"; 443 choices[17] = "Lv2"; 444 choices[18] = "Lv3"; 445 choices[19] = "Lv4"; 446 choices[20] = "Lv5"; 447 } 448 }; 449 SADynamicRangeOptimizerInterpreter saDynamicRangeOptimizerInterpreter; 450 451 class SAColorModeInterpreter : public ChoiceInterpreter<> 452 { 453 public: SAColorModeInterpreter()454 SAColorModeInterpreter () 455 { 456 choices[0] = "Standard"; 457 choices[1] = "Vivid"; 458 choices[2] = "Portrait"; 459 choices[3] = "Landscape"; 460 choices[4] = "Sunset"; 461 choices[5] = "Night View/Portrait"; 462 choices[6] = "B&W"; 463 choices[7] = "Adobe RGB"; 464 choices[12] = "Neutral"; 465 choices[13] = "Clear"; 466 choices[14] = "Deep"; 467 choices[15] = "Light"; 468 choices[16] = "Autumn Leaves"; 469 choices[17] = "Sepia"; 470 choices[100] = "Neutral"; 471 choices[101] = "Clear"; 472 choices[102] = "Deep"; 473 choices[103] = "Light"; 474 choices[104] = "Night View"; 475 choices[105] = "Autumn Leaves"; 476 } 477 }; 478 SAColorModeInterpreter saColorModeInterpreter; 479 480 class SAExposureModeInterpreter : public ChoiceInterpreter<> 481 { 482 public: SAExposureModeInterpreter()483 SAExposureModeInterpreter () 484 { 485 choices[0] = "Program AE"; 486 choices[1] = "Portrait"; 487 choices[2] = "Beach"; 488 choices[3] = "Sports"; 489 choices[4] = "Snow"; 490 choices[5] = "Landscape"; 491 choices[6] = "Auto"; 492 choices[7] = "Aperture-priority AE"; 493 choices[8] = "Shutter speed priority AE"; 494 choices[9] = "Night Scene / Twilight"; 495 choices[10] = "Hi-Speed Shutter"; 496 choices[11] = "Twilight Portrait"; 497 choices[12] = "Soft Snap/Portrait"; 498 choices[13] = "Fireworks"; 499 choices[14] = "Smile Shutter"; 500 choices[15] = "Manual"; 501 choices[18] = "High Sensitivity"; 502 choices[19] = "Macro"; 503 choices[20] = "Advanced Sports Shooting"; 504 choices[29] = "Underwater"; 505 choices[33] = "Food"; 506 choices[34] = "Sweep Panorama"; 507 choices[35] = "Handheld Night Shot"; 508 choices[36] = "Anti Motion Blur"; 509 choices[37] = "Pet"; 510 choices[38] = "Backlight Correction HDR"; 511 choices[39] = "Superior Auto"; 512 choices[40] = "Background Defocus"; 513 choices[41] = "Soft Skin"; 514 choices[42] = "3D Image"; 515 choices[65535] = "n/a"; 516 } 517 }; 518 SAExposureModeInterpreter saExposureModeInterpreter; 519 520 class SAQualityInterpreter : public ChoiceInterpreter<> 521 { 522 public: SAQualityInterpreter()523 SAQualityInterpreter () 524 { 525 choices[0] = "Normal"; 526 choices[1] = "Fine"; 527 } 528 }; 529 SAQualityInterpreter saQualityInterpreter; 530 531 class SAAntiBlurInterpreter : public ChoiceInterpreter<> 532 { 533 public: SAAntiBlurInterpreter()534 SAAntiBlurInterpreter () 535 { 536 choices[0] = "Off"; 537 choices[1] = "On (Continuous)"; 538 choices[2] = "On (Shooting)"; 539 choices[65535] = "n/a"; 540 } 541 }; 542 SAAntiBlurInterpreter saAntiBlurInterpreter; 543 544 class SALensIDInterpreter : public IntLensInterpreter<int> 545 { 546 public: SALensIDInterpreter()547 SALensIDInterpreter () 548 { 549 choices = { 550 {0, "Minolta AF 28-85mm f/3.5-4.5 New"}, 551 {1, "Minolta AF 80-200mm f/2.8 HS-APO G"}, 552 {2, "Minolta AF 28-70mm f/2.8 G"}, 553 {3, "Minolta AF 28-80mm f/4-5.6"}, 554 {4, "Minolta AF 85mm f/1.4G"}, 555 {5, "Minolta AF 35-70mm f/3.5-4.5 [II]"}, 556 {6, "Minolta AF 24-85mm f/3.5-4.5 [New]"}, 557 {7, "Minolta AF 100-300mm f/4.5-5.6 APO [New] or 100-400mm or Sigma Lens"}, 558 {7, "Minolta AF 100-400mm f/4.5-6.7 APO"}, 559 {7, "Sigma AF 100-300mm f/4 EX DG IF"}, 560 {8, "Minolta AF 70-210mm f/4.5-5.6 [II]"}, 561 {9, "Minolta AF 50mm f/3.5 Macro"}, 562 {10, "Minolta AF 28-105mm f/3.5-4.5 [New]"}, 563 {11, "Minolta AF 300mm f/4 HS-APO G"}, 564 {12, "Minolta AF 100mm f/2.8 Soft Focus"}, 565 {13, "Minolta AF 75-300mm f/4.5-5.6 (New or II)"}, 566 {14, "Minolta AF 100-400mm f/4.5-6.7 APO"}, 567 {15, "Minolta AF 400mm f/4.5 HS-APO G"}, 568 {16, "Minolta AF 17-35mm f/3.5 G"}, 569 {17, "Minolta AF 20-35mm f/3.5-4.5"}, 570 {18, "Minolta AF 28-80mm f/3.5-5.6 II"}, 571 {19, "Minolta AF 35mm f/1.4 G"}, 572 {20, "Minolta/Sony 135mm f/2.8 [T4.5] STF"}, 573 {22, "Minolta AF 35-80mm f/4-5.6 II"}, 574 {23, "Minolta AF 200mm f/4 Macro APO G"}, 575 {24, "Minolta/Sony AF 24-105mm f/3.5-4.5 (D) or Sigma or Tamron Lens"}, 576 {24, "Sigma 18-50mm f/2.8"}, 577 {24, "Sigma 17-70mm f/2.8-4.5 DC Macro"}, 578 {24, "Sigma 20-40mm f/2.8 EX DG Aspherical IF"}, 579 {24, "Sigma 18-200mm f/3.5-6.3 DC"}, 580 {24, "Sigma DC 18-125mm f/4-5,6 D"}, 581 {24, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro"}, 582 {24, "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"}, 583 {25, "Minolta AF 100-300mm f/4.5-5.6 APO (D) or Sigma Lens"}, 584 {25, "Sigma 100-300mm f/4 EX (APO (D) or D IF)"}, 585 {25, "Sigma 70mm f/2.8 EX DG Macro"}, 586 {25, "Sigma 20mm f/1.8 EX DG Aspherical RF"}, 587 {25, "Sigma 30mm f/1.4 EX DC"}, 588 {25, "Sigma 24mm f/1.8 EX DG ASP Macro"}, 589 {27, "Minolta AF 85mm f/1.4 G (D)"}, 590 {28, "Minolta/Sony AF 100mm f/2.8 Macro (D) or Tamron Lens"}, 591 {28, "Tamron SP AF 90mm f/2.8 Di Macro"}, 592 {28, "Tamron SP AF 180mm f/3.5 Di LD [IF] Macro"}, 593 {29, "Minolta/Sony AF 75-300mm f/4.5-5.6 (D)"}, 594 {30, "Minolta AF 28-80mm f/3.5-5.6 (D) or Sigma Lens"}, 595 {30, "Sigma AF 10-20mm f/4-5.6 EX DC"}, 596 {30, "Sigma AF 12-24mm f/4.5-5.6 EX DG"}, 597 {30, "Sigma 28-70mm EX DG f/2.8"}, 598 {30, "Sigma 55-200mm f/4-5.6 DC"}, 599 {31, "Minolta/Sony AF 50mm f/2.8 Macro (D) or f/3.5"}, 600 {31, "Minolta/Sony AF 50mm f/3.5 Macro"}, 601 {32, "Minolta/Sony AF 300mm f/2.8 G or 1.5x Teleconverter"}, 602 {33, "Minolta/Sony AF 70-200mm f/2.8 G"}, 603 {35, "Minolta AF 85mm f/1.4 G (D) Limited"}, 604 {36, "Minolta AF 28-100mm f/3.5-5.6 (D)"}, 605 {38, "Minolta AF 17-35mm f/2.8-4 (D)"}, 606 {39, "Minolta AF 28-75mm f/2.8 (D)"}, 607 {40, "Minolta/Sony AF DT 18-70mm f/3.5-5.6 (D)"}, 608 {41, "Minolta/Sony AF DT 11-18mm f/4.5-5.6 (D) or Tamron Lens"}, 609 {41, "Tamron SP AF 11-18mm f/4.5-5.6 Di II LD Aspherical IF"}, 610 {42, "Minolta/Sony AF DT 18-200mm f/3.5-6.3 (D)"}, 611 {43, "Sony 35mm f/1.4 G (SAL35F14G)"}, 612 {44, "Sony 50mm f/1.4 (SAL50F14)"}, 613 {45, "Carl Zeiss Planar T* 85mm f/1.4 ZA (SAL85F14Z)"}, 614 {46, "Carl Zeiss Vario-Sonnar T* DT 16-80mm f/3.5-4.5 ZA (SAL1680Z)"}, 615 {47, "Carl Zeiss Sonnar T* 135mm f/1.8 ZA (SAL135F18Z)"}, 616 {48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM (SAL2470Z) or Other Lens"}, 617 {48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM II (SAL2470Z2)"}, 618 {48, "Tamron SP 24-70mm f/2.8 Di USD"}, 619 {49, "Sony DT 55-200mm f/4-5.6 (SAL55200)"}, 620 {50, "Sony DT 18-250mm f/3.5-6.3 (SAL18250)"}, 621 {51, "Sony DT 16-105mm f/3.5-5.6 (SAL16105)"}, 622 {52, "Sony 70-300mm f/4.5-5.6 G SSM (SAL70300G) or G SSM II or Tamron Lens"}, 623 {52, "Sony 70-300mm f/4.5-5.6 G SSM II (SAL70300G2)"}, 624 {52, "Tamron SP 70-300mm f/4-5.6 Di USD"}, 625 {53, "Sony 70-400mm f/4-5.6 G SSM (SAL70400G)"}, 626 {54, "Carl Zeiss Vario-Sonnar T* 16-35mm f/2.8 ZA SSM (SAL1635Z) or ZA SSM II"}, 627 {54, "Carl Zeiss Vario-Sonnar T* 16-35mm f/2.8 ZA SSM II (SAL1635Z2)"}, 628 {55, "Sony DT 18-55mm f/3.5-5.6 SAM (SAL1855) or SAM II"}, 629 {55, "Sony DT 18-55mm f/3.5-5.6 SAM II (SAL18552)"}, 630 {56, "Sony DT 55-200mm f/4-5.6 SAM (SAL55200-2)"}, 631 {57, "Sony DT 50mm f/1.8 SAM (SAL50F18) or Tamron Lens or Commlite CM-EF-NEX adapter"}, 632 {57, "Tamron SP AF 60mm f/2 Di II LD [IF] Macro 1:1"}, 633 {57, "Tamron 18-270mm f/3.5-6.3 Di II PZD"}, 634 {58, "Sony DT 30mm f/2.8 Macro SAM (SAL30M28)"}, 635 {59, "Sony 28-75mm f/2.8 SAM (SAL2875)"}, 636 {60, "Carl Zeiss Distagon T* 24mm f/2 ZA SSM (SAL24F20Z)"}, 637 {61, "Sony 85mm f/2.8 SAM (SAL85F28)"}, 638 {62, "Sony DT 35mm f/1.8 SAM (SAL35F18)"}, 639 {63, "Sony DT 16-50mm f/2.8 SSM (SAL1650)"}, 640 {64, "Sony 500mm f/4 G SSM (SAL500F40G)"}, 641 {65, "Sony DT 18-135mm f/3.5-5.6 SAM (SAL18135)"}, 642 {66, "Sony 300mm f/2.8 G SSM II (SAL300F28G2)"}, 643 {67, "Sony 70-200mm f/2.8 G SSM II (SAL70200G2)"}, 644 {68, "Sony DT 55-300mm f/4.5-5.6 SAM (SAL55300)"}, 645 {69, "Sony 70-400mm f/4-5.6 G SSM II (SAL70400G2)"}, 646 {70, "Carl Zeiss Planar T* 50mm f/1.4 ZA SSM (SAL50F14Z)"}, 647 {128, "Tamron or Sigma Lens (128)"}, 648 {128, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro"}, 649 {128, "Tamron AF 28-300mm f/3.5-6.3 XR Di LD Aspherical [IF] Macro"}, 650 {128, "Tamron AF 28-200mm f/3.8-5.6 XR Di Aspherical [IF] Macro"}, 651 {128, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF"}, 652 {128, "Sigma AF 50-150mm f/2.8 EX DC APO HSM II"}, 653 {128, "Sigma 10-20mm f/3.5 EX DC HSM"}, 654 {128, "Sigma 70-200mm f/2.8 II EX DG APO MACRO HSM"}, 655 {128, "Sigma 10mm f/2.8 EX DC HSM Fisheye"}, 656 {128, "Sigma 50mm f/1.4 EX DG HSM"}, 657 {128, "Sigma 85mm f/1.4 EX DG HSM"}, 658 {128, "Sigma 24-70mm f/2.8 IF EX DG HSM"}, 659 {128, "Sigma 18-250mm f/3.5-6.3 DC OS HSM"}, 660 {128, "Sigma 17-50mm f/2.8 EX DC HSM"}, 661 {128, "Sigma 17-70mm f/2.8-4 DC Macro HSM"}, 662 {128, "Sigma 150mm f/2.8 EX DG OS HSM APO Macro"}, 663 {128, "Sigma 150-500mm f/5-6.3 APO DG OS HSM"}, 664 {128, "Tamron AF 28-105mm f/4-5.6 [IF]"}, 665 {128, "Sigma 35mm f/1.4 DG HSM"}, 666 {128, "Sigma 18-35mm f/1.8 DC HSM"}, 667 {128, "Sigma 50-500mm f/4.5-6.3 APO DG OS HSM"}, 668 {128, "Sigma 24-105mm f/4 DG HSM | A"}, 669 {128, "Sigma 30mm f/1.4"}, 670 {128, "Sigma 35mm f/1.4 DG HSM | A"}, 671 {128, "Sigma 105mm f/2.8 EX DG OS HSM Macro"}, 672 {128, "Sigma 180mm f/2.8 EX DG OS HSM APO Macro"}, 673 {128, "Sigma 18-300mm f/3.5-6.3 DC Macro HSM | C"}, 674 {128, "Sigma 18-50mm f/2.8-4.5 DC HSM"}, 675 {129, "Tamron Lens (129)"}, 676 {129, "Tamron 200-400mm f/5.6 LD"}, 677 {129, "Tamron 70-300mm f/4-5.6 LD"}, 678 {131, "Tamron 20-40mm f/2.7-3.5 SP Aspherical IF"}, 679 {135, "Vivitar 28-210mm f/3.5-5.6"}, 680 {136, "Tokina EMZ M100 AF 100mm f/3.5"}, 681 {137, "Cosina 70-210mm f/2.8-4 AF"}, 682 {138, "Soligor 19-35mm f/3.5-4.5"}, 683 {139, "Tokina AF 28-300mm f/4-6.3"}, 684 {142, "Cosina AF 70-300mm f/4.5-5.6 MC"}, 685 {146, "Voigtlander Macro APO-Lanthar 125mm f/2.5 SL"}, 686 {194, "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical [IF]"}, 687 {202, "Tamron SP AF 70-200mm f/2.8 Di LD [IF] Macro"}, 688 {203, "Tamron SP 70-200mm f/2.8 Di USD"}, 689 {204, "Tamron SP 24-70mm f/2.8 Di USD"}, 690 {212, "Tamron 28-300mm f/3.5-6.3 Di PZD"}, 691 {213, "Tamron 16-300mm f/3.5-6.3 Di II PZD Macro"}, 692 {214, "Tamron SP 150-600mm f/5-6.3 Di USD"}, 693 {215, "Tamron SP 15-30mm f/2.8 Di USD"}, 694 {216, "Tamron SP 45mm f/1.8 Di USD"}, 695 {217, "Tamron SP 35mm f/1.8 Di USD"}, 696 {218, "Tamron SP 90mm f/2.8 Di Macro 1:1 USD (F017)"}, 697 {220, "Tamron SP 150-600mm f/5-6.3 Di USD G2"}, 698 {224, "Tamron SP 90mm f/2.8 Di Macro 1:1 USD (F004)"}, 699 {255, "Tamron Lens (255)"}, 700 {255, "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical"}, 701 {255, "Tamron AF 18-250mm f/3.5-6.3 XR Di II LD"}, 702 {255, "Tamron AF 55-200mm f/4-5.6 Di II LD Macro"}, 703 {255, "Tamron AF 70-300mm f/4-5.6 Di LD Macro 1:2"}, 704 {255, "Tamron SP AF 200-500mm f/5.0-6.3 Di LD IF"}, 705 {255, "Tamron SP AF 10-24mm f/3.5-4.5 Di II LD Aspherical IF"}, 706 {255, "Tamron SP AF 70-200mm f/2.8 Di LD IF Macro"}, 707 {255, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical IF"}, 708 {255, "Tamron AF 90-300mm f/4.5-5.6 Telemacro"}, 709 {1868, "Sigma MC-11 SA-E Mount Converter with not-supported Sigma lens"}, 710 {2550, "Minolta AF 50mm f/1.7"}, 711 {2551, "Minolta AF 35-70mm f/4 or Other Lens"}, 712 {2551, "Sigma UC AF 28-70mm f/3.5-4.5"}, 713 {2551, "Sigma AF 28-70mm f/2.8"}, 714 {2551, "Sigma M-AF 70-200mm f/2.8 EX Aspherical"}, 715 {2551, "Quantaray M-AF 35-80mm f/4-5.6"}, 716 {2551, "Tokina 28-70mm f/2.8-4.5 AF"}, 717 {2552, "Minolta AF 28-85mm f/3.5-4.5 or Other Lens"}, 718 {2552, "Tokina 19-35mm f/3.5-4.5"}, 719 {2552, "Tokina 28-70mm f/2.8 AT-X"}, 720 {2552, "Tokina 80-400mm f/4.5-5.6 AT-X AF II 840"}, 721 {2552, "Tokina AF PRO 28-80mm f/2.8 AT-X 280"}, 722 {2552, "Tokina AT-X PRO [II] AF 28-70mm f/2.6-2.8 270"}, 723 {2552, "Tamron AF 19-35mm f/3.5-4.5"}, 724 {2552, "Angenieux AF 28-70mm f/2.6"}, 725 {2552, "Tokina AT-X 17 AF 17mm f/3.5"}, 726 {2552, "Tokina 20-35mm f/3.5-4.5 II AF"}, 727 {2553, "Minolta AF 28-135mm f/4-4.5 or Other Lens"}, 728 {2553, "Sigma ZOOM-alpha 35-135mm f/3.5-4.5"}, 729 {2553, "Sigma 28-105mm f/2.8-4 Aspherical"}, 730 {2553, "Sigma 28-105mm f/4-5.6 UC"}, 731 {2553, "Tokina AT-X 242 AF 24-200mm f/3.5-5.6"}, 732 {2554, "Minolta AF 35-105mm f/3.5-4.5"}, 733 {2555, "Minolta AF 70-210mm f/4 Macro or Sigma Lens"}, 734 {2555, "Sigma 70-210mm f/4-5.6 APO"}, 735 {2555, "Sigma M-AF 70-200mm f/2.8 EX APO"}, 736 {2555, "Sigma 75-200mm f/2.8-3.5"}, 737 {2556, "Minolta AF 135mm f/2.8"}, 738 {2557, "Minolta/Sony AF 28mm f/2.8"}, 739 {2558, "Minolta AF 24-50mm f/4"}, 740 {2560, "Minolta AF 100-200mm f/4.5"}, 741 {2561, "Minolta AF 75-300mm f/4.5-5.6 or Sigma Lens"}, 742 {2561, "Sigma 70-300mm f/4-5.6 DL Macro"}, 743 {2561, "Sigma 300mm f/4 APO Macro"}, 744 {2561, "Sigma AF 500mm f/4.5 APO"}, 745 {2561, "Sigma AF 170-500mm f/5-6.3 APO Aspherical"}, 746 {2561, "Tokina AT-X AF 300mm f/4"}, 747 {2561, "Tokina AT-X AF 400mm f/5.6 SD"}, 748 {2561, "Tokina AF 730 II 75-300mm f/4.5-5.6"}, 749 {2561, "Sigma 800mm f/5.6 APO"}, 750 {2561, "Sigma AF 400mm f/5.6 APO Macro"}, 751 {2561, "Sigma 1000mm f/8 APO"}, 752 {2562, "Minolta AF 50mm f/1.4 [New]"}, 753 {2563, "Minolta AF 300mm f/2.8 APO or Sigma Lens"}, 754 {2563, "Sigma AF 50-500mm f/4-6.3 EX DG APO"}, 755 {2563, "Sigma AF 170-500mm f/5-6.3 APO Aspherical"}, 756 {2563, "Sigma AF 500mm f/4.5 EX DG APO"}, 757 {2563, "Sigma 400mm f/5.6 APO"}, 758 {2564, "Minolta AF 50mm f/2.8 Macro or Sigma Lens"}, 759 {2564, "Sigma 50mm f/2.8 EX Macro"}, 760 {2565, "Minolta AF 600mm f/4 APO"}, 761 {2566, "Minolta AF 24mm f/2.8 or Sigma Lens"}, 762 {2566, "Sigma 17-35mm f/2.8-4 EX Aspherical"}, 763 {2572, "Minolta/Sony AF 500mm f/8 Reflex"}, 764 {2578, "Minolta/Sony AF 16mm f/2.8 Fisheye or Sigma Lens"}, 765 {2578, "Sigma 8mm f/4 EX [DG] Fisheye"}, 766 {2578, "Sigma 14mm f/3.5"}, 767 {2578, "Sigma 15mm f/2.8 Fisheye"}, 768 {2579, "Minolta/Sony AF 20mm f/2.8 or Tokina Lens"}, 769 {2579, "Tokina AT-X Pro DX 11-16mm f/2.8"}, 770 {2581, "Minolta AF 100mm f/2.8 Macro [New] or Sigma or Tamron Lens"}, 771 {2581, "Sigma AF 90mm f/2.8 Macro"}, 772 {2581, "Sigma AF 105mm f/2.8 EX [DG] Macro"}, 773 {2581, "Sigma 180mm f/5.6 Macro"}, 774 {2581, "Sigma 180mm f/3.5 EX DG Macro"}, 775 {2581, "Tamron 90mm f/2.8 Macro"}, 776 {2585, "Minolta AF 35-105mm f/3.5-4.5 New or Tamron Lens"}, 777 {2585, "Beroflex 35-135mm f/3.5-4.5"}, 778 {2585, "Tamron 24-135mm f/3.5-5.6"}, 779 {2588, "Minolta AF 70-210mm f/3.5-4.5"}, 780 {2589, "Minolta AF 80-200mm f/2.8 APO or Tokina Lens"}, 781 {2589, "Tokina 80-200mm f/2.8"}, 782 {2590, "Minolta AF 200mm f/2.8 G APO + Minolta AF 1.4x APO or Other Lens + 1.4x"}, 783 {2590, "Minolta AF 600mm f/4 HS-APO G + Minolta AF 1.4x APO"}, 784 {2591, "Minolta AF 35mm f/1.4"}, 785 {2592, "Minolta AF 85mm f/1.4 G (D)"}, 786 {2593, "Minolta AF 200mm f/2.8 APO"}, 787 {2594, "Minolta AF 3x-1x f/1.7-2.8 Macro"}, 788 {2596, "Minolta AF 28mm f/2"}, 789 {2597, "Minolta AF 35mm f/2 [New]"}, 790 {2598, "Minolta AF 100mm f/2"}, 791 {2601, "Minolta AF 200mm f/2.8 G APO + Minolta AF 2x APO or Other Lens + 2x"}, 792 {2601, "Minolta AF 600mm f/4 HS-APO G + Minolta AF 2x APO"}, 793 {2604, "Minolta AF 80-200mm f/4.5-5.6"}, 794 {2605, "Minolta AF 35-80mm f/4-5.6"}, 795 {2606, "Minolta AF 100-300mm f/4.5-5.6"}, 796 {2607, "Minolta AF 35-80mm f/4-5.6"}, 797 {2608, "Minolta AF 300mm f/2.8 HS-APO G"}, 798 {2609, "Minolta AF 600mm f/4 HS-APO G"}, 799 {2612, "Minolta AF 200mm f/2.8 HS-APO G"}, 800 {2613, "Minolta AF 50mm f/1.7 New"}, 801 {2615, "Minolta AF 28-105mm f/3.5-4.5 xi"}, 802 {2616, "Minolta AF 35-200mm f/4.5-5.6 xi"}, 803 {2618, "Minolta AF 28-80mm f/4-5.6 xi"}, 804 {2619, "Minolta AF 80-200mm f/4.5-5.6 xi"}, 805 {2620, "Minolta AF 28-70mm f/2.8 G"}, 806 {2621, "Minolta AF 100-300mm f/4.5-5.6 xi"}, 807 {2624, "Minolta AF 35-80mm f/4-5.6 Power Zoom"}, 808 {2628, "Minolta AF 80-200mm f/2.8 HS-APO G"}, 809 {2629, "Minolta AF 85mm f/1.4 New"}, 810 {2631, "Minolta AF 100-300mm f/4.5-5.6 APO"}, 811 {2632, "Minolta AF 24-50mm f/4 New"}, 812 {2638, "Minolta AF 50mm f/2.8 Macro New"}, 813 {2639, "Minolta AF 100mm f/2.8 Macro"}, 814 {2641, "Minolta/Sony AF 20mm f/2.8 New"}, 815 {2642, "Minolta AF 24mm f/2.8 New"}, 816 {2644, "Minolta AF 100-400mm f/4.5-6.7 APO"}, 817 {2662, "Minolta AF 50mm f/1.4 New"}, 818 {2667, "Minolta AF 35mm f/2 New"}, 819 {2668, "Minolta AF 28mm f/2 New"}, 820 {2672, "Minolta AF 24-105mm f/3.5-4.5 (D)"}, 821 {3046, "Metabones Canon EF Speed Booster"}, 822 {4567, "Tokina 70-210mm f/4-5.6"}, 823 {4568, "Tokina AF 35-200mm f/4-5.6 Zoom SD"}, 824 {4570, "Tamron AF 35-135mm f/3.5-4.5"}, 825 {4571, "Vivitar 70-210mm f/4.5-5.6"}, 826 {4574, "2x Teleconverter or Tamron or Tokina Lens"}, 827 {4574, "Tamron SP AF 90mm f/2.5"}, 828 {4574, "Tokina RF 500mm f/8.0 x2"}, 829 {4574, "Tokina 300mm f/2.8 x2"}, 830 {4575, "1.4x Teleconverter"}, 831 {4585, "Tamron SP AF 300mm f/2.8 LD IF"}, 832 {4586, "Tamron SP AF 35-105mm f/2.8 LD Aspherical IF"}, 833 {4587, "Tamron AF 70-210mm f/2.8 SP LD"}, 834 {4812, "Metabones Canon EF Speed Booster Ultra"}, 835 {6118, "Canon EF Adapter"}, 836 {6528, "Sigma 16mm f/2.8 Filtermatic Fisheye"}, 837 {6553, "E-Mount, T-Mount, Other Lens or no lens"}, 838 {6553, "Arax MC 35mm f/2.8 Tilt+Shift"}, 839 {6553, "Arax MC 80mm f/2.8 Tilt+Shift"}, 840 {6553, "Zenitar MF 16mm f/2.8 Fisheye M42"}, 841 {6553, "Samyang 500mm Mirror f/8.0"}, 842 {6553, "Pentacon Auto 135mm f/2.8"}, 843 {6553, "Pentacon Auto 29mm f/2.8"}, 844 {6553, "Helios 44-2 58mm f/2.0"}, 845 {18688, "Sigma MC-11 SA-E Mount Converter with not-supported Sigma lens"}, 846 {25501, "Minolta AF 50mm f/1.7"}, 847 {25511, "Minolta AF 35-70mm f/4 or Other Lens"}, 848 {25511, "Sigma UC AF 28-70mm f/3.5-4.5"}, 849 {25511, "Sigma AF 28-70mm f/2.8"}, 850 {25511, "Sigma M-AF 70-200mm f/2.8 EX Aspherical"}, 851 {25511, "Quantaray M-AF 35-80mm f/4-5.6"}, 852 {25511, "Tokina 28-70mm f/2.8-4.5 AF"}, 853 {25521, "Minolta AF 28-85mm f/3.5-4.5 or Other Lens"}, 854 {25521, "Tokina 19-35mm f/3.5-4.5"}, 855 {25521, "Tokina 28-70mm f/2.8 AT-X"}, 856 {25521, "Tokina 80-400mm f/4.5-5.6 AT-X AF II 840"}, 857 {25521, "Tokina AF PRO 28-80mm f/2.8 AT-X 280"}, 858 {25521, "Tokina AT-X PRO [II] AF 28-70mm f/2.6-2.8 270"}, 859 {25521, "Tamron AF 19-35mm f/3.5-4.5"}, 860 {25521, "Angenieux AF 28-70mm f/2.6"}, 861 {25521, "Tokina AT-X 17 AF 17mm f/3.5"}, 862 {25521, "Tokina 20-35mm f/3.5-4.5 II AF"}, 863 {25531, "Minolta AF 28-135mm f/4-4.5 or Other Lens"}, 864 {25531, "Sigma ZOOM-alpha 35-135mm f/3.5-4.5"}, 865 {25531, "Sigma 28-105mm f/2.8-4 Aspherical"}, 866 {25531, "Sigma 28-105mm f/4-5.6 UC"}, 867 {25531, "Tokina AT-X 242 AF 24-200mm f/3.5-5.6"}, 868 {25541, "Minolta AF 35-105mm f/3.5-4.5"}, 869 {25551, "Minolta AF 70-210mm f/4 Macro or Sigma Lens"}, 870 {25551, "Sigma 70-210mm f/4-5.6 APO"}, 871 {25551, "Sigma M-AF 70-200mm f/2.8 EX APO"}, 872 {25551, "Sigma 75-200mm f/2.8-3.5"}, 873 {25561, "Minolta AF 135mm f/2.8"}, 874 {25571, "Minolta/Sony AF 28mm f/2.8"}, 875 {25581, "Minolta AF 24-50mm f/4"}, 876 {25601, "Minolta AF 100-200mm f/4.5"}, 877 {25611, "Minolta AF 75-300mm f/4.5-5.6 or Sigma Lens"}, 878 {25611, "Sigma 70-300mm f/4-5.6 DL Macro"}, 879 {25611, "Sigma 300mm f/4 APO Macro"}, 880 {25611, "Sigma AF 500mm f/4.5 APO"}, 881 {25611, "Sigma AF 170-500mm f/5-6.3 APO Aspherical"}, 882 {25611, "Tokina AT-X AF 300mm f/4"}, 883 {25611, "Tokina AT-X AF 400mm f/5.6 SD"}, 884 {25611, "Tokina AF 730 II 75-300mm f/4.5-5.6"}, 885 {25611, "Sigma 800mm f/5.6 APO"}, 886 {25611, "Sigma AF 400mm f/5.6 APO Macro"}, 887 {25611, "Sigma 1000mm f/8 APO"}, 888 {25621, "Minolta AF 50mm f/1.4 [New]"}, 889 {25631, "Minolta AF 300mm f/2.8 APO or Sigma Lens"}, 890 {25631, "Sigma AF 50-500mm f/4-6.3 EX DG APO"}, 891 {25631, "Sigma AF 170-500mm f/5-6.3 APO Aspherical"}, 892 {25631, "Sigma AF 500mm f/4.5 EX DG APO"}, 893 {25631, "Sigma 400mm f/5.6 APO"}, 894 {25641, "Minolta AF 50mm f/2.8 Macro or Sigma Lens"}, 895 {25641, "Sigma 50mm f/2.8 EX Macro"}, 896 {25651, "Minolta AF 600mm f/4 APO"}, 897 {25661, "Minolta AF 24mm f/2.8 or Sigma Lens"}, 898 {25661, "Sigma 17-35mm f/2.8-4 EX Aspherical"}, 899 {25721, "Minolta/Sony AF 500mm f/8 Reflex"}, 900 {25781, "Minolta/Sony AF 16mm f/2.8 Fisheye or Sigma Lens"}, 901 {25781, "Sigma 8mm f/4 EX [DG] Fisheye"}, 902 {25781, "Sigma 14mm f/3.5"}, 903 {25781, "Sigma 15mm f/2.8 Fisheye"}, 904 {25791, "Minolta/Sony AF 20mm f/2.8 or Tokina Lens"}, 905 {25791, "Tokina AT-X Pro DX 11-16mm f/2.8"}, 906 {25811, "Minolta AF 100mm f/2.8 Macro [New] or Sigma or Tamron Lens"}, 907 {25811, "Sigma AF 90mm f/2.8 Macro"}, 908 {25811, "Sigma AF 105mm f/2.8 EX [DG] Macro"}, 909 {25811, "Sigma 180mm f/5.6 Macro"}, 910 {25811, "Sigma 180mm f/3.5 EX DG Macro"}, 911 {25811, "Tamron 90mm f/2.8 Macro"}, 912 {25851, "Beroflex 35-135mm f/3.5-4.5"}, 913 {25858, "Minolta AF 35-105mm f/3.5-4.5 New or Tamron Lens"}, 914 {25858, "Tamron 24-135mm f/3.5-5.6"}, 915 {25881, "Minolta AF 70-210mm f/3.5-4.5"}, 916 {25891, "Minolta AF 80-200mm f/2.8 APO or Tokina Lens"}, 917 {25891, "Tokina 80-200mm f/2.8"}, 918 {25901, "Minolta AF 200mm f/2.8 G APO + Minolta AF 1.4x APO or Other Lens + 1.4x"}, 919 {25901, "Minolta AF 600mm f/4 HS-APO G + Minolta AF 1.4x APO"}, 920 {25911, "Minolta AF 35mm f/1.4"}, 921 {25921, "Minolta AF 85mm f/1.4 G (D)"}, 922 {25931, "Minolta AF 200mm f/2.8 APO"}, 923 {25941, "Minolta AF 3x-1x f/1.7-2.8 Macro"}, 924 {25961, "Minolta AF 28mm f/2"}, 925 {25971, "Minolta AF 35mm f/2 [New]"}, 926 {25981, "Minolta AF 100mm f/2"}, 927 {26011, "Minolta AF 200mm f/2.8 G APO + Minolta AF 2x APO or Other Lens + 2x"}, 928 {26011, "Minolta AF 600mm f/4 HS-APO G + Minolta AF 2x APO"}, 929 {26041, "Minolta AF 80-200mm f/4.5-5.6"}, 930 {26051, "Minolta AF 35-80mm f/4-5.6"}, 931 {26061, "Minolta AF 100-300mm f/4.5-5.6"}, 932 {26071, "Minolta AF 35-80mm f/4-5.6"}, 933 {26081, "Minolta AF 300mm f/2.8 HS-APO G"}, 934 {26091, "Minolta AF 600mm f/4 HS-APO G"}, 935 {26121, "Minolta AF 200mm f/2.8 HS-APO G"}, 936 {26131, "Minolta AF 50mm f/1.7 New"}, 937 {26151, "Minolta AF 28-105mm f/3.5-4.5 xi"}, 938 {26161, "Minolta AF 35-200mm f/4.5-5.6 xi"}, 939 {26181, "Minolta AF 28-80mm f/4-5.6 xi"}, 940 {26191, "Minolta AF 80-200mm f/4.5-5.6 xi"}, 941 {26201, "Minolta AF 28-70mm f/2.8 G"}, 942 {26211, "Minolta AF 100-300mm f/4.5-5.6 xi"}, 943 {26241, "Minolta AF 35-80mm f/4-5.6 Power Zoom"}, 944 {26281, "Minolta AF 80-200mm f/2.8 HS-APO G"}, 945 {26291, "Minolta AF 85mm f/1.4 New"}, 946 {26311, "Minolta AF 100-300mm f/4.5-5.6 APO"}, 947 {26321, "Minolta AF 24-50mm f/4 New"}, 948 {26381, "Minolta AF 50mm f/2.8 Macro New"}, 949 {26391, "Minolta AF 100mm f/2.8 Macro"}, 950 {26411, "Minolta/Sony AF 20mm f/2.8 New"}, 951 {26421, "Minolta AF 24mm f/2.8 New"}, 952 {26441, "Minolta AF 100-400mm f/4.5-6.7 APO"}, 953 {26621, "Minolta AF 50mm f/1.4 New"}, 954 {26671, "Minolta AF 35mm f/2 New"}, 955 {26681, "Minolta AF 28mm f/2 New"}, 956 {26721, "Minolta AF 24-105mm f/3.5-4.5 (D)"}, 957 {30464, "Metabones Canon EF Speed Booster"}, 958 {45671, "Tokina 70-210mm f/4-5.6"}, 959 {45681, "Tokina AF 35-200mm f/4-5.6 Zoom SD"}, 960 {45701, "Tamron AF 35-135mm f/3.5-4.5"}, 961 {45711, "Vivitar 70-210mm f/4.5-5.6"}, 962 {45741, "2x Teleconverter or Tamron or Tokina Lens"}, 963 {45741, "Tamron SP AF 90mm f/2.5"}, 964 {45741, "Tokina RF 500mm f/8.0 x2"}, 965 {45741, "Tokina 300mm f/2.8 x2"}, 966 {45751, "1.4x Teleconverter"}, 967 {45851, "Tamron SP AF 300mm f/2.8 LD IF"}, 968 {45861, "Tamron SP AF 35-105mm f/2.8 LD Aspherical IF"}, 969 {45871, "Tamron AF 70-210mm f/2.8 SP LD"}, 970 {48128, "Metabones Canon EF Speed Booster Ultra"}, 971 {61184, "Canon EF Adapter"}, 972 {65280, "Sigma 16mm f/2.8 Filtermatic Fisheye"}, 973 {65535, "E-Mount, T-Mount, Other Lens or no lens"}, 974 {65535, "Arax MC 35mm f/2.8 Tilt+Shift"}, 975 {65535, "Arax MC 80mm f/2.8 Tilt+Shift"}, 976 {65535, "Zenitar MF 16mm f/2.8 Fisheye M42"}, 977 {65535, "Samyang 500mm Mirror f/8.0"}, 978 {65535, "Pentacon Auto 135mm f/2.8"}, 979 {65535, "Pentacon Auto 29mm f/2.8"}, 980 {65535, "Helios 44-2 58mm f/2.0"} 981 }; 982 } 983 toString(const Tag * t) const984 std::string toString (const Tag* t) const override 985 { 986 int lensID = t->toInt(); 987 Tag *lensInfoTag = t->getParent()->getRoot()->findTag ("LensInfo"); 988 Tag *apertureTag = t->getParent()->getRoot()->findTag ("MaxApertureValue"); 989 Tag *focalLengthTag = t->getParent()->getRoot()->findTag ("FocalLength"); 990 double maxApertureAtFocal = 0.; 991 double focalLength = 0.; 992 993 if ( apertureTag ) { 994 maxApertureAtFocal = pow (2.0, apertureTag->toDouble() / 2.0); 995 } 996 997 if ( focalLengthTag ) { 998 focalLength = focalLengthTag->toDouble(); 999 } 1000 1001 double *liArray = nullptr; 1002 1003 if (lensInfoTag) { 1004 liArray = lensInfoTag->toDoubleArray(); 1005 } 1006 1007 std::string retval = guess ( lensID, focalLength, maxApertureAtFocal, liArray); 1008 1009 if (liArray) { 1010 delete [] liArray; 1011 } 1012 1013 return retval; 1014 } 1015 }; 1016 SALensIDInterpreter saLensIDInterpreter; 1017 1018 class SALensID2Interpreter : public IntLensInterpreter< int > 1019 { 1020 public: SALensID2Interpreter()1021 SALensID2Interpreter () 1022 { 1023 choices.insert (p_t (0, "Unknown E-mount lens or other lens")); 1024 choices.insert (p_t (0, "Sigma 19mm f/2.8 [EX] DN")); 1025 choices.insert (p_t (0, "Sigma 30mm f/2.8 [EX] DN")); 1026 choices.insert (p_t (0, "Sigma 60mm f/2.8 DN")); 1027 choices.insert (p_t (0, "Sony E 18-200mm f/3.5-6.3 OSS LE")); 1028 choices.insert (p_t (0, "Tamron 18-200mm f/3.5-6.3 Di III VC")); 1029 choices.insert (p_t (0, "Tokina FiRIN 20mm f/2 FE AF")); 1030 choices.insert (p_t (0, "Tokina FiRIN 20mm f/2 FE MF")); 1031 choices.insert (p_t (0, "Zeiss Touit 12mm f/2.8")); 1032 choices.insert (p_t (0, "Zeiss Touit 32mm f/1.8")); 1033 choices.insert (p_t (0, "Zeiss Touit 50mm f/2.8 Macro")); 1034 choices.insert (p_t (0, "Zeiss Loxia 50mm f/2")); 1035 choices.insert (p_t (0, "Zeiss Loxia 35mm f/2")); 1036 choices.insert (p_t (1, "Sony LA-EA1 or Sigma MC-11 Adapter")); 1037 choices.insert (p_t (2, "Sony LA-EA2 Adapter")); 1038 choices.insert (p_t (3, "Sony LA-EA3 Adapter")); 1039 choices.insert (p_t (6, "Sony LA-EA4 Adapter")); 1040 choices.insert (p_t (44, "Metabones Canon EF Smart Adapter")); 1041 choices.insert (p_t (78, "Metabones Canon EF Smart Adapter Mark III or Other Adapter")); 1042 choices.insert (p_t (184, "Metabones Canon EF Speed Booster Ultra")); 1043 choices.insert (p_t (234, "Metabones Canon EF Smart Adapter Mark IV")); 1044 choices.insert (p_t (239, "Metabones Canon EF Speed Booster")); 1045 choices.insert (p_t (32784, "Sony E 16mm f/2.8")); 1046 choices.insert (p_t (32785, "Sony E 18-55mm f/3.5-5.6 OSS")); 1047 choices.insert (p_t (32786, "Sony E 55-210mm f/4.5-6.3 OSS")); 1048 choices.insert (p_t (32787, "Sony E 18-200mm f/3.5-6.3 OSS")); 1049 choices.insert (p_t (32788, "Sony E 30mm f/3.5 Macro")); 1050 choices.insert (p_t (32789, "Sony E 24mm f/1.8 ZA or Samyang AF 50mm f/1.4")); 1051 choices.insert (p_t (32789, "Samyang AF 50mm f/1.4")); 1052 choices.insert (p_t (32790, "Sony E 50mm f/1.8 OSS or Samyang AF 14mm f/2.8")); 1053 choices.insert (p_t (32790, "Samyang AF 14mm f/2.8")); 1054 choices.insert (p_t (32791, "Sony E 16-70mm f/4 ZA OSS")); 1055 choices.insert (p_t (32792, "Sony E 10-18mm f/4 OSS")); 1056 choices.insert (p_t (32793, "Sony E PZ 16-50mm f/3.5-5.6 OSS")); 1057 choices.insert (p_t (32794, "Sony FE 35mm f/2.8 ZA or Samyang Lens")); 1058 choices.insert (p_t (32794, "Samyang AF 24mm f/2.8")); 1059 choices.insert (p_t (32794, "Samyang AF 35mm f/2.8")); 1060 choices.insert (p_t (32795, "Sony FE 24-70mm f/4 ZA OSS")); 1061 choices.insert (p_t (32796, "Sony FE 85mm f/1.8 or Viltrox PFU RBMH 85mm f/1.8")); 1062 choices.insert (p_t (32796, "Viltrox PFU RBMH 85mm f/1.8")); 1063 choices.insert (p_t (32797, "Sony E 18-200mm f/3.5-6.3 OSS LE")); 1064 choices.insert (p_t (32798, "Sony E 20mm f/2.8")); 1065 choices.insert (p_t (32799, "Sony E 35mm f/1.8 OSS")); 1066 choices.insert (p_t (32800, "Sony E PZ 18-105mm f/4 G OSS")); 1067 choices.insert (p_t (32801, "Sony FE 12-24mm f/4 G")); 1068 choices.insert (p_t (32802, "Sony FE 90mm f/2.8 Macro G OSS")); 1069 choices.insert (p_t (32803, "Sony E 18-50mm f/4-5.6")); 1070 choices.insert (p_t (32804, "Sony FE 24mm f/1.4 GM")); 1071 choices.insert (p_t (32805, "Sony FE 24-105mm f/4 G OSS")); 1072 choices.insert (p_t (32807, "Sony E PZ 18-200mm f/3.5-6.3 OSS")); 1073 choices.insert (p_t (32808, "Sony FE 55mm f/1.8 ZA")); 1074 choices.insert (p_t (32810, "Sony FE 70-200mm f/4 G OSS")); 1075 choices.insert (p_t (32811, "Sony FE 16-35mm f/4 ZA OSS")); 1076 choices.insert (p_t (32812, "Sony FE 50mm f/2.8 Macro")); 1077 choices.insert (p_t (32813, "Sony FE 28-70mm f/3.5-5.6 OSS")); 1078 choices.insert (p_t (32814, "Sony FE 35mm f/1.4 ZA")); 1079 choices.insert (p_t (32815, "Sony FE 24-240mm f/3.5-6.3 OSS")); 1080 choices.insert (p_t (32816, "Sony FE 28mm f/2")); 1081 choices.insert (p_t (32817, "Sony FE PZ 28-135mm f/4 G OSS")); 1082 choices.insert (p_t (32819, "Sony FE 100mm f/2.8 STF GM OSS")); 1083 choices.insert (p_t (32820, "Sony E PZ 18-110mm f/4 G OSS")); 1084 choices.insert (p_t (32821, "Sony FE 24-70mm f/2.8 GM")); 1085 choices.insert (p_t (32822, "Sony FE 50mm f/1.4 ZA")); 1086 choices.insert (p_t (32823, "Sony FE 85mm f/1.4 GM or Samyang AF 85mm f/1.4")); 1087 choices.insert (p_t (32823, "Samyang AF 85mm f/1.4")); 1088 choices.insert (p_t (32824, "Sony FE 50mm f/1.8")); 1089 choices.insert (p_t (32826, "Sony FE 21mm f/2.8 (SEL28F20 + SEL075UWC)")); 1090 choices.insert (p_t (32827, "Sony FE 16mm f/3.5 Fisheye (SEL28F20 + SEL057FEC)")); 1091 choices.insert (p_t (32828, "Sony FE 70-300mm f/4.5-5.6 G OSS")); 1092 choices.insert (p_t (32829, "Sony FE 100-400mm f/4.5-5.6 GM OSS")); 1093 choices.insert (p_t (32830, "Sony FE 70-200mm f/2.8 GM OSS")); 1094 choices.insert (p_t (32831, "Sony FE 16-35mm f/2.8 GM")); 1095 choices.insert (p_t (32848, "Sony FE 400mm f/2.8 GM OSS")); 1096 choices.insert (p_t (32849, "Sony E 18-135mm f/3.5-5.6 OSS")); 1097 choices.insert (p_t (32850, "Sony FE 135mm f/1.8 GM")); 1098 choices.insert (p_t (32851, "Sony FE 200-600mm f/5.6-6.3 G OSS")); 1099 choices.insert (p_t (32852, "Sony FE 600mm f/4 GM OSS")); 1100 choices.insert (p_t (32853, "Sony E 16-55mm f/2.8 G")); 1101 choices.insert (p_t (32854, "Sony E 70-350mm f/4.5-6.3 G OSS")); 1102 choices.insert (p_t (32858, "Sony FE 35mm f/1.8")); 1103 choices.insert (p_t (33072, "Sony FE 70-200mm f/2.8 GM OSS + 1.4X Teleconverter")); 1104 choices.insert (p_t (33073, "Sony FE 70-200mm f/2.8 GM OSS + 2X Teleconverter")); 1105 choices.insert (p_t (33076, "Sony FE 100mm f/2.8 STF GM OSS (macro mode)")); 1106 choices.insert (p_t (33077, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 1.4X Teleconverter")); 1107 choices.insert (p_t (33078, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 2X Teleconverter")); 1108 choices.insert (p_t (33079, "Sony FE 400mm f/2.8 GM OSS + 1.4X Teleconverter")); 1109 choices.insert (p_t (33080, "Sony FE 400mm f/2.8 GM OSS + 2X Teleconverter")); 1110 choices.insert (p_t (33081, "Sony FE 200-600mm f/5.6-6.3 G OSS + 1.4X Teleconverter")); 1111 choices.insert (p_t (33082, "Sony FE 200-600mm f/5.6-6.3 G OSS + 2X Teleconverter")); 1112 choices.insert (p_t (33083, "Sony FE 600mm f/4 GM OSS + 1.4X Teleconverter")); 1113 choices.insert (p_t (33084, "Sony FE 600mm f/4 GM OSS + 2X Teleconverter")); 1114 choices.insert (p_t (49201, "Zeiss Touit 12mm f/2.8")); 1115 choices.insert (p_t (49202, "Zeiss Touit 32mm f/1.8")); 1116 choices.insert (p_t (49203, "Zeiss Touit 50mm f/2.8 Macro")); 1117 choices.insert (p_t (49216, "Zeiss Batis 25mm f/2")); 1118 choices.insert (p_t (49217, "Zeiss Batis 85mm f/1.8")); 1119 choices.insert (p_t (49218, "Zeiss Batis 18mm f/2.8")); 1120 choices.insert (p_t (49219, "Zeiss Batis 135mm f/2.8")); 1121 choices.insert (p_t (49220, "Zeiss Batis 40mm f/2 CF")); 1122 choices.insert (p_t (49232, "Zeiss Loxia 50mm f/2")); 1123 choices.insert (p_t (49233, "Zeiss Loxia 35mm f/2")); 1124 choices.insert (p_t (49234, "Zeiss Loxia 21mm f/2.8")); 1125 choices.insert (p_t (49235, "Zeiss Loxia 85mm f/2.4")); 1126 choices.insert (p_t (49236, "Zeiss Loxia 25mm f/2.4")); 1127 choices.insert (p_t (49457, "Tamron 28-75mm f/2.8 Di III RXD")); 1128 choices.insert (p_t (49458, "Tamron 17-28mm f/2.8 Di III RXD")); 1129 choices.insert (p_t (49459, "Tamron 35mm f/2.8 Di III OSD M1:2")); 1130 choices.insert (p_t (49460, "Tamron 24mm f/2.8 Di III OSD M1:2")); 1131 choices.insert (p_t (49712, "Tokina FiRIN 20mm f/2 FE AF")); 1132 choices.insert (p_t (49713, "Tokina FiRIN 100mm f/2.8 FE MACRO")); 1133 choices.insert (p_t (50480, "Sigma 30mm f/1.4 DC DN | C")); 1134 choices.insert (p_t (50481, "Sigma 50mm f/1.4 DG HSM | A")); 1135 choices.insert (p_t (50482, "Sigma 18-300mm f/3.5-6.3 DC MACRO OS HSM | C + MC-11")); 1136 choices.insert (p_t (50483, "Sigma 18-35mm f/1.8 DC HSM | A + MC-11")); 1137 choices.insert (p_t (50484, "Sigma 24-35mm f/2 DG HSM | A + MC-11")); 1138 choices.insert (p_t (50485, "Sigma 24mm f/1.4 DG HSM | A + MC-11")); 1139 choices.insert (p_t (50486, "Sigma 150-600mm f/5-6.3 DG OS HSM | C + MC-11")); 1140 choices.insert (p_t (50487, "Sigma 20mm f/1.4 DG HSM | A + MC-11")); 1141 choices.insert (p_t (50488, "Sigma 35mm f/1.4 DG HSM | A")); 1142 choices.insert (p_t (50489, "Sigma 150-600mm f/5-6.3 DG OS HSM | S + MC-11")); 1143 choices.insert (p_t (50490, "Sigma 120-300mm f/2.8 DG OS HSM | S + MC-11")); 1144 choices.insert (p_t (50492, "Sigma 24-105mm f/4 DG OS HSM | A + MC-11")); 1145 choices.insert (p_t (50493, "Sigma 17-70mm f/2.8-4 DC MACRO OS HSM | C + MC-11")); 1146 choices.insert (p_t (50495, "Sigma 50-100mm f/1.8 DC HSM | A + MC-11")); 1147 choices.insert (p_t (50499, "Sigma 85mm f/1.4 DG HSM | A")); 1148 choices.insert (p_t (50501, "Sigma 100-400mm f/5-6.3 DG OS HSM | C + MC-11")); 1149 choices.insert (p_t (50503, "Sigma 16mm f/1.4 DC DN | C")); 1150 choices.insert (p_t (50507, "Sigma 105mm f/1.4 DG HSM | A")); 1151 choices.insert (p_t (50508, "Sigma 56mm f/1.4 DC DN | C")); 1152 choices.insert (p_t (50512, "Sigma 70-200mm f/2.8 DG OS HSM | S + MC-11")); 1153 choices.insert (p_t (50513, "Sigma 70mm f/2.8 DG MACRO | A")); 1154 choices.insert (p_t (50514, "Sigma 45mm f/2.8 DG DN | C")); 1155 choices.insert (p_t (50515, "Sigma 35mm f/1.2 DG DN | A")); 1156 choices.insert (p_t (50516, "Sigma 14-24mm f/2.8 DG DN | A")); 1157 choices.insert (p_t (50992, "Voigtlander SUPER WIDE-HELIAR 15mm f/4.5 III")); 1158 choices.insert (p_t (50993, "Voigtlander HELIAR-HYPER WIDE 10mm f/5.6")); 1159 choices.insert (p_t (50994, "Voigtlander ULTRA WIDE-HELIAR 12mm f/5.6 III")); 1160 choices.insert (p_t (50995, "Voigtlander MACRO APO-LANTHAR 65mm f/2 Aspherical")); 1161 choices.insert (p_t (50996, "Voigtlander NOKTON 40mm f/1.2 Aspherical")); 1162 choices.insert (p_t (50997, "Voigtlander NOKTON classic 35mm f/1.4")); 1163 choices.insert (p_t (50998, "Voigtlander MACRO APO-LANTHAR 110mm f/2.5")); 1164 choices.insert (p_t (50999, "Voigtlander COLOR-SKOPAR 21mm f/3.5 Aspherical")); 1165 choices.insert (p_t (51000, "Voigtlander NOKTON 50mm f/1.2 Aspherical")); 1166 choices.insert (p_t (51001, "Voigtlander NOKTON 21mm f/1.4 Aspherical")); 1167 choices.insert (p_t (51002, "Voigtlander APO-LANTHAR 50mm f/2 Aspherical")); 1168 choices.insert (p_t (51504, "Samyang AF 50mm f/1.4")); 1169 choices.insert (p_t (51505, "Samyang AF 14mm f/2.8 or Samyang AF 35mm f/2.8")); 1170 choices.insert (p_t (51505, "Samyang AF 35mm f/2.8")); 1171 choices.insert (p_t (51507, "Samyang AF 35mm f/1.4")); 1172 choices.insert (p_t (51508, "Samyang AF 45mm f/1.8")); 1173 choices.insert (p_t (51510, "Samyang AF 18mm f/2.8")); 1174 } 1175 toString(const Tag * t) const1176 std::string toString (const Tag* t) const override 1177 { 1178 int lensID = t->toInt(); 1179 Tag *lensInfoTag = t->getParent()->getRoot()->findTag ("LensInfo"); 1180 Tag *apertureTag = t->getParent()->getRoot()->findTag ("MaxApertureValue"); 1181 Tag *focalLengthTag = t->getParent()->getRoot()->findTag ("FocalLength"); 1182 double maxApertureAtFocal = 0.; 1183 double focalLength = 0.; 1184 1185 if ( apertureTag ) { 1186 maxApertureAtFocal = pow (2.0, apertureTag->toDouble() / 2.0); 1187 } 1188 1189 if ( focalLengthTag ) { 1190 focalLength = focalLengthTag->toDouble(); 1191 } 1192 1193 double *liArray = nullptr; 1194 1195 if (lensInfoTag) { 1196 liArray = lensInfoTag->toDoubleArray(); 1197 } 1198 1199 std::string retval = guess ( lensID, focalLength, maxApertureAtFocal, liArray); 1200 1201 if (liArray) { 1202 delete [] liArray; 1203 } 1204 1205 return retval; 1206 } 1207 }; 1208 SALensID2Interpreter saLensID2Interpreter; 1209 1210 class MATeleconverterInterpreter : public ChoiceInterpreter<> 1211 { 1212 public: MATeleconverterInterpreter()1213 MATeleconverterInterpreter () 1214 { 1215 choices[0x0] = "None"; 1216 choices[0x4] = "Minolta/Sony AF 1.4x APO (D) (0x04)"; 1217 choices[0x5] = "Minolta/Sony AF 2x APO (D) (0x05)"; 1218 choices[0x48] = "Minolta/Sony AF 2x APO (D)"; 1219 choices[0x50] = "Minolta AF 2x APO II"; 1220 choices[0x60] = "Minolta AF 2x APO"; 1221 choices[0x88] = "Minolta/Sony AF 1.4x APO (D)"; 1222 choices[0x90] = "Minolta AF 1.4x APO II"; 1223 choices[0xa0] = "Minolta AF 1.4x APO"; 1224 } 1225 }; 1226 MATeleconverterInterpreter maTeleconverterInterpreter; 1227 1228 class MAQualityInterpreter : public ChoiceInterpreter<> 1229 { 1230 public: MAQualityInterpreter()1231 MAQualityInterpreter () 1232 { 1233 choices[0] = "RAW"; 1234 choices[1] = "Super Fine"; 1235 choices[2] = "Fine"; 1236 choices[3] = "Standard"; 1237 choices[4] = "Economy"; 1238 choices[5] = "Extra Fine"; 1239 choices[6] = "RAW + JPEG"; 1240 choices[7] = "Compressed RAW"; 1241 choices[8] = "Compressed RAW + JPEG"; 1242 } 1243 }; 1244 MAQualityInterpreter maQualityInterpreter; 1245 1246 class MAImageSizeInterpreter : public ChoiceInterpreter<> 1247 { 1248 public: MAImageSizeInterpreter()1249 MAImageSizeInterpreter () 1250 { 1251 choices[1] = "1600x1200"; 1252 choices[2] = "1280x960"; 1253 choices[3] = "640x480"; 1254 choices[5] = "2560x1920"; 1255 choices[6] = "2272x1704"; 1256 choices[7] = "2048x1536"; 1257 } 1258 }; 1259 MAImageSizeInterpreter maImageSizeInterpreter; 1260 1261 class SAQualityInterpreter2 : public ChoiceInterpreter<> 1262 { 1263 public: SAQualityInterpreter2()1264 SAQualityInterpreter2 () 1265 { 1266 choices[0] = "Raw"; 1267 choices[2] = "cRAW"; 1268 choices[16] = "Extra fine"; 1269 choices[32] = "Fine"; 1270 choices[34] = "RAW + JPEG"; 1271 choices[35] = "cRAW + JPEG"; 1272 choices[48] = "Standard"; 1273 } 1274 }; 1275 SAQualityInterpreter2 saQualityInterpreter2; 1276 1277 class SAQualityInterpreter3 : public ChoiceInterpreter<> 1278 { 1279 public: SAQualityInterpreter3()1280 SAQualityInterpreter3 () 1281 { 1282 choices[2] = "RAW"; 1283 choices[4] = "RAW + JPEG"; 1284 choices[6] = "Fine"; 1285 choices[7] = "Standard"; 1286 } 1287 }; 1288 SAQualityInterpreter3 saQualityInterpreter3; 1289 1290 class SADriveMode : public ChoiceInterpreter<> 1291 { 1292 public: SADriveMode()1293 SADriveMode () 1294 { 1295 choices[1] = "Single Frame"; 1296 choices[2] = "Continuous High"; 1297 choices[4] = "Self-timer 10 sec"; 1298 choices[5] = "Self-timer 2 sec, Mirror Lock-up"; 1299 choices[6] = "Single-frame Bracketing"; 1300 choices[7] = "Continuous Bracketing"; 1301 choices[10] = "Remote Commander"; 1302 choices[11] = "Mirror Lock-up"; 1303 choices[18] = "Continuous Low"; 1304 choices[24] = "White Balance Bracketing Low"; 1305 choices[25] = "D-Range Optimizer Bracketing Low"; 1306 choices[40] = "White Balance Bracketing High"; 1307 choices[41] = "D-Range Optimizer Bracketing High"; 1308 } 1309 }; 1310 SADriveMode saDriveMode; 1311 1312 class SADriveMode2 : public ChoiceInterpreter<> 1313 { 1314 public: SADriveMode2()1315 SADriveMode2 () 1316 { 1317 choices[1] = "Single Frame"; 1318 choices[2] = "Continuous High"; 1319 choices[4] = "Self-timer 10 sec"; 1320 choices[5] = "Self-timer 2 sec, Mirror Lock-up"; 1321 choices[7] = "Continuous Bracketing"; 1322 choices[10] = "Remote Commander"; 1323 choices[11] = "Continuous Self-timer"; 1324 } 1325 }; 1326 SADriveMode2 saDriveMode2; 1327 1328 class SADriveMode3 : public ChoiceInterpreter<> 1329 { 1330 public: SADriveMode3()1331 SADriveMode3 () 1332 { 1333 choices[16] = "Single Frame"; 1334 choices[33] = "Continuous High"; 1335 choices[34] = "Continuous Low"; 1336 choices[48] = "Speed Priority Continuous"; 1337 choices[81] = "Self-timer 10 sec"; 1338 choices[82] = "Self-timer 2 sec, Mirror Lock-up"; 1339 choices[113] = "Continuous Bracketing 0.3 EV"; 1340 choices[117] = "Continuous Bracketing 0.7 EV"; 1341 choices[145] = "White Balance Bracketing Low"; 1342 choices[146] = "White Balance Bracketing High"; 1343 choices[192] = "Remote Commander"; 1344 choices[209] = "Continuous - HDR"; 1345 choices[210] = "Continuous - Multi Frame NR"; 1346 choices[211] = "Continuous - Handheld Night Shot"; 1347 choices[212] = "Continuous - Anti Motion Blur"; 1348 choices[213] = "Continuous - Sweep Panorama"; 1349 choices[214] = "Continuous - 3D Sweep Panorama"; 1350 } 1351 }; 1352 SADriveMode3 saDriveMode3; 1353 1354 class SAFocusMode: public ChoiceInterpreter<> 1355 { 1356 public: SAFocusMode()1357 SAFocusMode () 1358 { 1359 choices[0] = "Manual"; 1360 choices[1] = "AF-S"; 1361 choices[2] = "AF-C"; 1362 choices[3] = "AF-A"; 1363 choices[4] = "Permanent-AF"; 1364 choices[65535] = "n/a"; 1365 } 1366 }; 1367 SAFocusMode saFocusMode; 1368 1369 class SAFocusMode2: public ChoiceInterpreter<> 1370 { 1371 public: SAFocusMode2()1372 SAFocusMode2 () 1373 { 1374 choices[0] = "Manual"; 1375 choices[1] = "AF-S"; 1376 choices[2] = "AF-C"; 1377 choices[3] = "AF-A"; 1378 choices[65535] = "n/a"; 1379 } 1380 }; 1381 SAFocusMode2 saFocusMode2; 1382 1383 class SAFocusModeSetting3: public ChoiceInterpreter<> 1384 { 1385 public: SAFocusModeSetting3()1386 SAFocusModeSetting3 () 1387 { 1388 choices[17] = "AF-S"; 1389 choices[18] = "AF-C"; 1390 choices[19] = "AF-A"; 1391 choices[32] = "Manual"; 1392 choices[48] = "DMF"; 1393 choices[65535] = "n/a"; 1394 } 1395 }; 1396 SAFocusModeSetting3 saFocusModeSetting3; 1397 1398 class SAAFMode: public ChoiceInterpreter<> 1399 { 1400 public: SAAFMode()1401 SAAFMode() 1402 { 1403 choices[0] = "Default"; 1404 choices[1] = "Multi AF"; 1405 choices[2] = "Center AF"; 1406 choices[3] = "Spot AF"; 1407 choices[4] = "Flexible Spot AF"; 1408 choices[6] = "Touch AF"; 1409 choices[14] = "Tracking"; 1410 choices[15] = "Face Tracking"; 1411 choices[65535] = "n/a"; 1412 } 1413 }; 1414 SAAFMode saAFMode; 1415 1416 class SAAFAreaMode: public ChoiceInterpreter<> 1417 { 1418 public: SAAFAreaMode()1419 SAAFAreaMode () 1420 { 1421 choices[0] = "Wide"; 1422 choices[1] = "Local"; 1423 choices[2] = "Spot"; 1424 } 1425 }; 1426 SAAFAreaMode saAFAreaMode; 1427 1428 class SAAFAreaMode2: public ChoiceInterpreter<> 1429 { 1430 public: SAAFAreaMode2()1431 SAAFAreaMode2 () 1432 { 1433 choices[1] = "Wide"; 1434 choices[2] = "Spot"; 1435 choices[3] = "Local"; 1436 choices[4] = "Flexible"; 1437 } 1438 }; 1439 SAAFAreaMode2 saAFAreaMode2; 1440 1441 class SAAFPointSelected: public ChoiceInterpreter<> 1442 { 1443 public: SAAFPointSelected()1444 SAAFPointSelected () 1445 { 1446 choices[1] = "Center"; 1447 choices[2] = "Top"; 1448 choices[3] = "Top-Right"; 1449 choices[4] = "Right"; 1450 choices[5] = "Bottom-Right"; 1451 choices[6] = "Bottom"; 1452 choices[7] = "Bottom-Left"; 1453 choices[8] = "Left"; 1454 choices[9] = "Top-Left"; 1455 choices[10] = "Far Right"; 1456 choices[11] = "Far Left"; 1457 } 1458 }; 1459 SAAFPointSelected saAFPointSelected; 1460 1461 class SACameraInfoAFPointSelected: public ChoiceInterpreter<> 1462 { 1463 public: SACameraInfoAFPointSelected()1464 SACameraInfoAFPointSelected () 1465 { 1466 choices[0] = "Auto"; 1467 choices[1] = "Center"; 1468 choices[2] = "Top"; 1469 choices[3] = "Upper-Right"; 1470 choices[4] = "Right"; 1471 choices[5] = "Lower-Right"; 1472 choices[6] = "Bottom"; 1473 choices[7] = "Lower-Left"; 1474 choices[8] = "Left"; 1475 choices[9] = "Upper-Left"; 1476 choices[10] = "Far Right"; 1477 choices[11] = "Far Left"; 1478 choices[12] = "Upper-middle"; 1479 choices[13] = "Near Right"; 1480 choices[14] = "Lower-middle"; 1481 choices[15] = "Near Left"; 1482 } 1483 }; 1484 SACameraInfoAFPointSelected saCameraInfoAFPointSelected; 1485 1486 class SACameraInfoAFPoint: public ChoiceInterpreter<> 1487 { 1488 public: SACameraInfoAFPoint()1489 SACameraInfoAFPoint () 1490 { 1491 choices[0] = "Upper-Left"; 1492 choices[1] = "Left"; 1493 choices[2] = "Lower-Left"; 1494 choices[3] = "Far Left"; 1495 choices[4] = "Top (horizontal)"; 1496 choices[5] = "Near Right"; 1497 choices[6] = "Center (horizontal)"; 1498 choices[7] = "Near Left"; 1499 choices[8] = "Bottom (horizontal)"; 1500 choices[9] = "Top (vertical)"; 1501 choices[10] = "Center (vertical)"; 1502 choices[11] = "Bottom (vertical)"; 1503 choices[12] = "Far Right"; 1504 choices[13] = "Upper-Right"; 1505 choices[14] = "Right"; 1506 choices[15] = "Lower-Right"; 1507 choices[16] = "Upper-middle"; 1508 choices[17] = "Lower-middle"; 1509 choices[255] = "(none)"; 1510 } 1511 }; 1512 SACameraInfoAFPoint saCameraInfoAFPoint; 1513 1514 class SAAFPointSelected2: public ChoiceInterpreter<> 1515 { 1516 public: SAAFPointSelected2()1517 SAAFPointSelected2 () 1518 { 1519 choices[1] = "Center"; 1520 choices[2] = "Top"; 1521 choices[3] = "Top-Right"; 1522 choices[4] = "Right"; 1523 choices[5] = "Bottom-Right"; 1524 choices[6] = "Bottom"; 1525 choices[7] = "Bottom-Left"; 1526 choices[8] = "Left"; 1527 choices[9] = "Top-Left"; 1528 } 1529 }; 1530 SAAFPointSelected2 saAFPointSelected2; 1531 1532 class SAMeteringMode0_3: public ChoiceInterpreter<> 1533 { 1534 public: SAMeteringMode0_3()1535 SAMeteringMode0_3 () 1536 { 1537 choices[0] = "Multi-segment"; 1538 choices[2] = "Center-weighted Average"; 1539 choices[3] = "Spot"; 1540 } 1541 }; 1542 SAMeteringMode0_3 saMeteringMode0_3; 1543 1544 class SAMeteringMode1_3: public ChoiceInterpreter<> 1545 { 1546 public: SAMeteringMode1_3()1547 SAMeteringMode1_3 () 1548 { 1549 choices[1] = "Multi-segment"; 1550 choices[2] = "Center-weighted Average"; 1551 choices[3] = "Spot"; 1552 } 1553 }; 1554 SAMeteringMode1_3 saMeteringMode1_3; 1555 1556 class SAMeteringMode1_4: public ChoiceInterpreter<> 1557 { 1558 public: SAMeteringMode1_4()1559 SAMeteringMode1_4 () 1560 { 1561 choices[1] = "Multi-segment"; 1562 choices[2] = "Center-weighted Average"; 1563 choices[4] = "Spot"; 1564 } 1565 }; 1566 SAMeteringMode1_4 saMeteringMode1_4; 1567 1568 class SADynamicRangeOptimizerMode: public ChoiceInterpreter<> 1569 { 1570 public: SADynamicRangeOptimizerMode()1571 SADynamicRangeOptimizerMode () 1572 { 1573 choices[0] = "Off"; 1574 choices[1] = "Standard"; 1575 choices[2] = "Advanced Auto"; 1576 choices[3] = "Advanced Level"; 1577 choices[4097] = "Auto"; 1578 } 1579 }; 1580 SADynamicRangeOptimizerMode saDynamicRangeOptimizerMode; 1581 1582 class SADynamicRangeOptimizerSetting: public ChoiceInterpreter<> 1583 { 1584 public: SADynamicRangeOptimizerSetting()1585 SADynamicRangeOptimizerSetting () 1586 { 1587 choices[1] = "Off"; 1588 choices[2] = "On (Auto)"; 1589 choices[3] = "On (Manual)"; 1590 } 1591 }; 1592 SADynamicRangeOptimizerSetting saDynamicRangeOptimizerSetting; 1593 1594 class SACreativeStyle: public ChoiceInterpreter<> 1595 { 1596 public: SACreativeStyle()1597 SACreativeStyle () 1598 { 1599 choices[1] = "Standard"; 1600 choices[2] = "Vivid"; 1601 choices[3] = "Portrait"; 1602 choices[4] = "Landscape"; 1603 choices[5] = "Sunset"; 1604 choices[6] = "Night View/Portrait"; 1605 choices[8] = "B&W"; 1606 choices[9] = "Adobe RGB"; 1607 choices[11] = "Neutral"; 1608 choices[12] = "Clear"; 1609 choices[13] = "Deep"; 1610 choices[14] = "Light"; 1611 choices[15] = "Autumn Leaves"; 1612 choices[16] = "Sepia"; 1613 } 1614 }; 1615 SACreativeStyle saCreativeStyle; 1616 1617 class SACreativeStyle2: public ChoiceInterpreter<> 1618 { 1619 public: SACreativeStyle2()1620 SACreativeStyle2 () 1621 { 1622 choices[1] = "Standard"; 1623 choices[2] = "Vivid"; 1624 choices[3] = "Portrait"; 1625 choices[4] = "Landscape"; 1626 choices[5] = "Sunset"; 1627 choices[6] = "Night View/Portrait"; 1628 choices[8] = "B&W"; 1629 } 1630 }; 1631 SACreativeStyle2 saCreativeStyle2; 1632 1633 class SACreativeStyleSetting: public ChoiceInterpreter<> 1634 { 1635 public: SACreativeStyleSetting()1636 SACreativeStyleSetting () 1637 { 1638 choices[16] = "Standard"; 1639 choices[32] = "Vivid"; 1640 choices[64] = "Portrait"; 1641 choices[80] = "Landscape"; 1642 choices[96] = "B&W"; 1643 choices[160] = "Sunset"; 1644 } 1645 }; 1646 SACreativeStyleSetting saCreativeStyleSetting; 1647 1648 class SAFlashControl: public ChoiceInterpreter<> 1649 { 1650 public: SAFlashControl()1651 SAFlashControl () 1652 { 1653 choices[1] = "ADI Flash"; 1654 choices[2] = "Pre-flash TTL"; 1655 } 1656 }; 1657 SAFlashControl saFlashControl; 1658 1659 class SAFlashMode: public ChoiceInterpreter<> 1660 { 1661 public: SAFlashMode()1662 SAFlashMode () 1663 { 1664 choices[0] = "ADI"; 1665 choices[1] = "TTL"; 1666 } 1667 }; 1668 SAFlashMode saFlashMode; 1669 1670 class SAFlashMode2: public ChoiceInterpreter<> 1671 { 1672 public: SAFlashMode2()1673 SAFlashMode2 () 1674 { 1675 choices[1] = "Flash Off"; 1676 choices[16] = "Autoflash"; 1677 choices[17] = "Fill-flash"; 1678 choices[18] = "Slow Sync"; 1679 choices[19] = "Rear Sync"; 1680 choices[20] = "Wireless"; 1681 } 1682 }; 1683 SAFlashMode2 saFlashMode2; 1684 1685 class SAExposureProgram: public ChoiceInterpreter<> 1686 { 1687 public: SAExposureProgram()1688 SAExposureProgram () 1689 { 1690 choices[0] = "Auto"; 1691 choices[1] = "Manual"; 1692 choices[2] = "Program AE"; 1693 choices[3] = "Aperture-priority AE"; 1694 choices[4] = "Shutter speed priority AE"; 1695 choices[8] = "Program Shift A"; 1696 choices[9] = "Program Shift S"; 1697 choices[16] = "Portrait"; 1698 choices[17] = "Sports"; 1699 choices[18] = "Sunset"; 1700 choices[19] = "Night Portrait"; 1701 choices[20] = "Landscape"; 1702 choices[21] = "Macro"; 1703 choices[35] = "Auto No Flash"; 1704 } 1705 }; 1706 SAExposureProgram saExposureProgram; 1707 1708 class SAExposureProgram2: public ChoiceInterpreter<> 1709 { 1710 public: SAExposureProgram2()1711 SAExposureProgram2 () 1712 { 1713 choices[1] = "Program AE"; 1714 choices[2] = "Aperture-priority AE"; 1715 choices[3] = "Shutter speed priority AE"; 1716 choices[4] = "Manual"; 1717 choices[5] = "Cont. Priority AE"; 1718 choices[16] = "Auto"; 1719 choices[17] = "Auto (no flash)"; 1720 choices[18] = "Auto+"; 1721 choices[49] = "Portrait"; 1722 choices[50] = "Landscape"; 1723 choices[51] = "Macro"; 1724 choices[52] = "Sports"; 1725 choices[53] = "Sunset"; 1726 choices[54] = "Night view"; 1727 choices[55] = "Night view/portrait"; 1728 choices[56] = "Handheld Night Shot"; 1729 choices[57] = "3D Sweep Panorama"; 1730 choices[64] = "Auto 2"; 1731 choices[65] = "Auto 2 (no flash)"; 1732 choices[80] = "Sweep Panorama"; 1733 choices[96] = "Anti Motion Blur"; 1734 choices[128] = "Toy Camera"; 1735 choices[129] = "Pop Color"; 1736 choices[130] = "Posterization"; 1737 choices[131] = "Posterization B/W"; 1738 choices[132] = "Retro Photo"; 1739 choices[133] = "High-key"; 1740 choices[134] = "Partial Color Red"; 1741 choices[135] = "Partial Color Green"; 1742 choices[136] = "Partial Color Blue"; 1743 choices[137] = "Partial Color Yellow"; 1744 choices[138] = "High Contrast Monochrome"; 1745 } 1746 }; 1747 SAExposureProgram2 saExposureProgram2; 1748 1749 class SARotation: public ChoiceInterpreter<> 1750 { 1751 public: SARotation()1752 SARotation () 1753 { 1754 choices[0] = "Horizontal"; 1755 choices[1] = "Rotate 90 CW"; 1756 choices[2] = "Rotate 270 CW"; 1757 choices[3] = "None"; 1758 } 1759 }; 1760 SARotation saRotation; 1761 1762 class SASonyImageSize: public ChoiceInterpreter<> 1763 { 1764 public: SASonyImageSize()1765 SASonyImageSize () 1766 { 1767 choices[1] = "Large"; 1768 choices[2] = "Medium"; 1769 choices[3] = "Small"; 1770 } 1771 }; 1772 SASonyImageSize saSonyImageSize; 1773 1774 class SASonyImageSize3: public ChoiceInterpreter<> 1775 { 1776 public: SASonyImageSize3()1777 SASonyImageSize3 () 1778 { 1779 choices[21] = "Large (3:2)"; 1780 choices[22] = "Medium (3:2)"; 1781 choices[23] = "Small (3:2)"; 1782 choices[25] = "Large (16:9)"; 1783 choices[26] = "Medium (16:9) "; 1784 choices[27] = "Small (16:9)"; 1785 } 1786 }; 1787 SASonyImageSize3 saSonyImageSize3; 1788 1789 class SAAspectRatio: public ChoiceInterpreter<> 1790 { 1791 public: SAAspectRatio()1792 SAAspectRatio () 1793 { 1794 choices[1] = "3:2"; 1795 choices[2] = "16:9"; 1796 } 1797 }; 1798 SAAspectRatio saAspectRatio; 1799 1800 class SAAspectRatio2: public ChoiceInterpreter<> 1801 { 1802 public: SAAspectRatio2()1803 SAAspectRatio2 () 1804 { 1805 choices[4] = "3:2"; 1806 choices[8] = "16:9"; 1807 } 1808 }; 1809 SAAspectRatio2 saAspectRatio2; 1810 1811 class SAExposureLevelIncrements: public ChoiceInterpreter<> 1812 { 1813 public: SAExposureLevelIncrements()1814 SAExposureLevelIncrements () 1815 { 1816 choices[33] = "1/3 EV"; 1817 choices[50] = "1/2 EV"; 1818 } 1819 }; 1820 SAExposureLevelIncrements saExposureLevelIncrements; 1821 1822 class SAAFIlluminator: public ChoiceInterpreter<> 1823 { 1824 public: SAAFIlluminator()1825 SAAFIlluminator () 1826 { 1827 choices[0] = "Off"; 1828 choices[1] = "Auto"; 1829 choices[65535] = "n/a"; 1830 } 1831 }; 1832 SAAFIlluminator saAFIlluminator; 1833 1834 class SAColorSpace1_2: public ChoiceInterpreter<> 1835 { 1836 public: SAColorSpace1_2()1837 SAColorSpace1_2 () 1838 { 1839 choices[1] = "sRGB"; 1840 choices[2] = "AdobeRGB"; 1841 } 1842 }; 1843 SAColorSpace1_2 saColorSpace1_2; 1844 1845 class SAColorSpace0_5: public ChoiceInterpreter<> 1846 { 1847 public: SAColorSpace0_5()1848 SAColorSpace0_5 () 1849 { 1850 choices[0] = "sRGB"; 1851 choices[1] = "AdobeRGB"; 1852 choices[5] = "AdobeRGB"; 1853 } 1854 }; 1855 SAColorSpace0_5 saColorSpace0_5; 1856 1857 class SAColorSpace5_6: public ChoiceInterpreter<> 1858 { 1859 public: SAColorSpace5_6()1860 SAColorSpace5_6 () 1861 { 1862 choices[5] = "AdobeRGB"; 1863 choices[6] = "sRGB"; 1864 } 1865 }; 1866 SAColorSpace5_6 saColorSpace5_6; 1867 1868 class SAReleaseModeInterpreter: public ChoiceInterpreter<> 1869 { 1870 public: SAReleaseModeInterpreter()1871 SAReleaseModeInterpreter () 1872 { 1873 choices[0] = "Normal"; 1874 choices[2] = "Continuous"; 1875 choices[5] = "Exposure Bracketing"; 1876 choices[6] = "White Balance Bracketing"; 1877 choices[8] = "DRO Bracketing"; 1878 choices[65535] = "n/a"; 1879 } 1880 }; 1881 SAReleaseModeInterpreter saReleaseModeInterpreter; 1882 1883 class SAImageStyleInterpreter: public ChoiceInterpreter<> 1884 { 1885 public: SAImageStyleInterpreter()1886 SAImageStyleInterpreter () 1887 { 1888 choices[1] = "Standard"; 1889 choices[2] = "Vivid"; 1890 choices[3] = "Portrait"; 1891 choices[4] = "Landscape"; 1892 choices[5] = "Sunset"; 1893 choices[7] = "Night View/Portrait"; 1894 choices[8] = "B&W"; 1895 choices[9] = "Adobe RGB"; 1896 choices[11] = "Neutral"; 1897 choices[129] = "StyleBox1"; 1898 choices[130] = "StyleBox2"; 1899 choices[131] = "StyleBox3"; 1900 choices[132] = "StyleBox4"; 1901 choices[133] = "StyleBox5"; 1902 choices[134] = "StyleBox6"; 1903 } 1904 }; 1905 SAImageStyleInterpreter saImageStyleInterpreter; 1906 1907 class SAPictureEffectInterpreter: public ChoiceInterpreter<> 1908 { 1909 public: SAPictureEffectInterpreter()1910 SAPictureEffectInterpreter() 1911 { 1912 choices[0] = "Off"; 1913 choices[1] = "Toy Camera"; 1914 choices[2] = "Pop Color"; 1915 choices[3] = "Posterization"; 1916 choices[4] = "Posterization B/W"; 1917 choices[5] = "Retro Photo"; 1918 choices[6] = "Soft High Key"; 1919 choices[7] = "Partial Color (red)"; 1920 choices[8] = "Partial Color (green)"; 1921 choices[9] = "Partial Color (blue)"; 1922 choices[10] = "Partial Color (yellow)"; 1923 choices[13] = "High Contrast Monochrome"; 1924 choices[16] = "Toy Camera (normal)"; 1925 choices[17] = "Toy Camera (cool)"; 1926 choices[18] = "Toy Camera (warm)"; 1927 choices[19] = "Toy Camera (green)"; 1928 choices[20] = "Toy Camera (magenta)"; 1929 choices[32] = "Soft Focus (low)"; 1930 choices[33] = "Soft Focus"; 1931 choices[34] = "Soft Focus (high)"; 1932 choices[48] = "Miniature (auto)"; 1933 choices[49] = "Miniature (top)"; 1934 choices[50] = "Miniature (middle horizontal)"; 1935 choices[51] = "Miniature (bottom)"; 1936 choices[52] = "Miniature (left)"; 1937 choices[53] = "Miniature (middle vertical)"; 1938 choices[54] = "Miniature (right)"; 1939 choices[64] = "HDR Painting (low)"; 1940 choices[65] = "HDR Painting"; 1941 choices[66] = "HDR Painting (high)"; 1942 choices[80] = "Rich-tone Monochrome"; 1943 choices[97] = "Water Color"; 1944 choices[98] = "Water Color 2"; 1945 choices[112] = "Illustration (low)"; 1946 choices[113] = "Illustration"; 1947 choices[114] = "Illustration (high)"; 1948 } 1949 }; 1950 SAPictureEffectInterpreter saPictureEffectInterpreter; 1951 1952 class SACameraInfoFocusStatusInterpreter : public ChoiceInterpreter<> 1953 { 1954 public: SACameraInfoFocusStatusInterpreter()1955 SACameraInfoFocusStatusInterpreter() 1956 { 1957 choices[0] = "Manual - Not confirmed (0)"; 1958 choices[4] = "Manual - Not confirmed (4)"; 1959 choices[16] = "AF-C - Confirmed"; 1960 choices[24] = "AF-C - Not Confirmed"; 1961 choices[64] = "AF-S - Confirmed"; 1962 } 1963 }; 1964 SACameraInfoFocusStatusInterpreter saCameraInfoFocusStatusInterpreter; 1965 1966 class SAExposureTimeInterpreter : public Interpreter 1967 { 1968 public: SAExposureTimeInterpreter()1969 SAExposureTimeInterpreter () {} toString(const Tag * t) const1970 std::string toString (const Tag* t) const override 1971 { 1972 double a = t->toDouble(); 1973 1974 if (a > 0) { 1975 char buffer[32]; 1976 sprintf (buffer, "%.4f", a); 1977 return buffer; 1978 } else { 1979 return "n/a"; 1980 } 1981 } toDouble(const Tag * t,int ofs)1982 double toDouble (const Tag* t, int ofs) override 1983 { 1984 // Get the value; Depending on the camera model, this parameter can be a BYTE or a SHORT 1985 TagType astype = t->getType(); 1986 int a = 0; 1987 1988 if (astype == BYTE) { 1989 a = t->getValue()[ofs]; 1990 } else if (astype == SHORT) { 1991 a = (int)sget2 (t->getValue() + ofs, t->getOrder()); 1992 } 1993 1994 // Decode the value 1995 if (a > 0) { 1996 return pow (2., 6. - (double (a) / 8.)); 1997 } else { 1998 return 0.; 1999 } 2000 } toInt(const Tag * t,int ofs,TagType astype)2001 int toInt (const Tag* t, int ofs, TagType astype) override 2002 { 2003 // Get the value; Depending on the camera model, this parameter can be a BYTE or a SHORT 2004 int a = 0; 2005 2006 if (astype == INVALID || astype == AUTO) { 2007 astype = t->getType(); 2008 } 2009 2010 if (astype == BYTE) { 2011 a = t->getValue()[ofs]; 2012 } else if (astype == SHORT) { 2013 a = (int)sget2 (t->getValue() + ofs, t->getOrder()); 2014 } 2015 2016 // Decode the value 2017 if (a) { 2018 return int (powf (2.f, 6.f - (float (a) / 8.f)) + 0.5f); 2019 } else { 2020 return 0; 2021 } 2022 } 2023 }; 2024 SAExposureTimeInterpreter saExposureTimeInterpreter; 2025 2026 class SAFNumberInterpreter : public Interpreter 2027 { 2028 public: SAFNumberInterpreter()2029 SAFNumberInterpreter () {} toString(const Tag * t) const2030 std::string toString (const Tag* t) const override 2031 { 2032 double a = double (t->toDouble()); 2033 2034 if (a) { 2035 char buffer[32]; 2036 sprintf (buffer, "%.1f", a / 100. ); 2037 return buffer; 2038 } else { 2039 return "n/a"; 2040 } 2041 } toDouble(const Tag * t,int ofs)2042 double toDouble (const Tag* t, int ofs) override 2043 { 2044 // Get the value; Depending on the camera model, this parameter can be a BYTE or a SHORT 2045 TagType astype = t->getType(); 2046 int a = 0; 2047 2048 if (astype == BYTE) { 2049 a = t->getValue()[ofs]; 2050 } else if (astype == SHORT) { 2051 a = (int)sget2 (t->getValue() + ofs, t->getOrder()); 2052 } 2053 2054 // Decode the value 2055 if (a > 0) { 2056 return pow (2., (double (a) / 8. - 1.) / 2.); 2057 } else { 2058 return 0.; 2059 } 2060 } toInt(const Tag * t,int ofs,TagType astype)2061 int toInt (const Tag* t, int ofs, TagType astype) override 2062 { 2063 // Get the value; Depending on the camera model, this parameter can be a BYTE or a SHORT 2064 int a = 0; 2065 2066 if (astype == INVALID || astype == AUTO) { 2067 astype = t->getType(); 2068 } 2069 2070 if (astype == BYTE) { 2071 a = t->getValue()[ofs]; 2072 } else if (astype == SHORT) { 2073 a = (int)sget2 (t->getValue() + ofs, t->getOrder()); 2074 } 2075 2076 // Decode the value 2077 if (a) { 2078 return int (powf (2.f, (float (a) / 8.f - 1.f) / 2.f) + 0.5f); 2079 } else { 2080 return 0; 2081 } 2082 } 2083 }; 2084 SAFNumberInterpreter saFNumberInterpreter; 2085 2086 class SAISOSettingInterpreter : public Interpreter 2087 { 2088 public: SAISOSettingInterpreter()2089 SAISOSettingInterpreter () {} toString(const Tag * t) const2090 std::string toString (const Tag* t) const override 2091 { 2092 int a = t->toInt(); 2093 2094 if (a) { 2095 char buffer[32]; 2096 sprintf (buffer, "%d", a ); 2097 return buffer; 2098 } else { 2099 return "Auto"; 2100 } 2101 } toInt(const Tag * t,int ofs,TagType astype)2102 int toInt (const Tag* t, int ofs, TagType astype) override 2103 { 2104 // Get the value; Depending on the camera model, this parameter can be a BYTE or a SHORT 2105 int a = 0; 2106 2107 if (astype == INVALID || astype == AUTO) { 2108 astype = t->getType(); 2109 } 2110 2111 if (astype == BYTE) { 2112 a = t->getValue()[ofs]; 2113 } else if (astype == SHORT) { 2114 a = (int)sget2 (t->getValue() + ofs, t->getOrder()); 2115 } 2116 2117 // Decode the value 2118 if (a && a != 254) { // 254 = 'Auto' for CameraSettings3, but we might say the same for CameraSettings & CameraSettings2 (?) 2119 return int (expf ((double (a) / 8.f - 6.f) * logf (2.f)) * 100.f + 0.5f); 2120 } else { 2121 return 0; 2122 } 2123 } 2124 }; 2125 SAISOSettingInterpreter saISOSettingInterpreter; 2126 2127 class SAExposureCompSetInterpreter : public Interpreter 2128 { 2129 public: SAExposureCompSetInterpreter()2130 SAExposureCompSetInterpreter () {} toString(const Tag * t) const2131 std::string toString (const Tag* t) const override 2132 { 2133 double a = t->toDouble(); 2134 char buffer[32]; 2135 sprintf (buffer, "%.2f", a ); 2136 return buffer; 2137 } toDouble(const Tag * t,int ofs)2138 double toDouble (const Tag* t, int ofs) override 2139 { 2140 // Get the value 2141 int a = t->getValue()[ofs]; 2142 // Decode the value 2143 return (double (a) - 128.) / 24.; 2144 } 2145 }; 2146 SAExposureCompSetInterpreter saExposureCompSetInterpreter; 2147 2148 class SAAFMicroAdjValueInterpreter : public Interpreter 2149 { 2150 public: SAAFMicroAdjValueInterpreter()2151 SAAFMicroAdjValueInterpreter() {} toString(const Tag * t) const2152 std::string toString (const Tag* t) const override 2153 { 2154 char buffer[32]; 2155 sprintf (buffer, "%d", t->getValue()[0] - 20); 2156 return buffer; 2157 } toInt(const Tag * t,int ofs,TagType astype)2158 int toInt (const Tag* t, int ofs, TagType astype) override 2159 { 2160 return t->getValue()[0] - 20; 2161 } 2162 }; 2163 SAAFMicroAdjValueInterpreter saAFMicroAdjValueInterpreter; 2164 2165 class SAAFMicroAdjModeInterpreter : public Interpreter 2166 { 2167 public: SAAFMicroAdjModeInterpreter()2168 SAAFMicroAdjModeInterpreter() {} toString(const Tag * t) const2169 std::string toString (const Tag* t) const override 2170 { 2171 int a = t->getValue()[0] & 0x80; 2172 2173 if (a == 0x80) { 2174 return "On"; 2175 } 2176 2177 return "Off"; 2178 } toInt(const Tag * t,int ofs,TagType astype)2179 int toInt (const Tag* t, int ofs, TagType astype) override 2180 { 2181 return (t->getValue()[0] & 0x80) == 0x80 ? 1 : 0; 2182 } 2183 }; 2184 2185 SAAFMicroAdjModeInterpreter saAFMicroAdjModeInterpreter; 2186 2187 class SAAFMicroAdjRegisteredLensesInterpreter : public Interpreter 2188 { 2189 public: SAAFMicroAdjRegisteredLensesInterpreter()2190 SAAFMicroAdjRegisteredLensesInterpreter() {} toString(const Tag * t) const2191 std::string toString (const Tag* t) const override 2192 { 2193 char buffer[32]; 2194 sprintf (buffer, "%d", t->getValue()[0] & 0x7f); 2195 return buffer; 2196 } toInt(const Tag * t,int ofs,TagType astype)2197 int toInt (const Tag* t, int ofs, TagType astype) override 2198 { 2199 return t->getValue()[0] & 0x7f; 2200 } 2201 }; 2202 SAAFMicroAdjRegisteredLensesInterpreter saAFMicroAdjRegisteredLensesInterpreter; 2203 2204 class SAFocusStatusInterpreter : public Interpreter 2205 { 2206 public: SAFocusStatusInterpreter()2207 SAFocusStatusInterpreter () {} toString(const Tag * t) const2208 std::string toString (const Tag* t) const override 2209 { 2210 std::string retval; 2211 int a = t->toInt(); 2212 2213 if (a == 0) { 2214 retval = "Not confirmed"; 2215 } else if (a == 4) { 2216 retval = "Not confirmed, Tracking"; 2217 } else { 2218 if (a & 1) { 2219 retval = "Confirmed"; 2220 } 2221 2222 if (a & 2) { 2223 if (!retval.empty()) { 2224 retval += ", "; 2225 } 2226 2227 retval += "Failed"; 2228 } 2229 2230 if (a & 4) 2231 if (!retval.empty()) { 2232 retval += ", "; 2233 } 2234 2235 retval += "Tracking"; 2236 } 2237 2238 return retval; 2239 } 2240 }; 2241 SAFocusStatusInterpreter saFocusStatusInterpreter; 2242 2243 class SAColorTemperatureSettingInterpreter : public Interpreter 2244 { 2245 public: SAColorTemperatureSettingInterpreter()2246 SAColorTemperatureSettingInterpreter () {} toString(const Tag * t) const2247 std::string toString (const Tag* t) const override 2248 { 2249 char buffer[32]; 2250 sprintf (buffer, "%d", t->toInt()); 2251 return buffer; 2252 } toInt(const Tag * t,int ofs,TagType astype)2253 int toInt (const Tag* t, int ofs, TagType astype) override 2254 { 2255 int a = 0; 2256 2257 if (astype == INVALID || astype == AUTO) { 2258 astype = t->getType(); 2259 } 2260 2261 if (astype == BYTE) { 2262 a = t->getValue()[ofs]; 2263 } else if (astype == SHORT) { 2264 a = (int)sget2 (t->getValue() + ofs, t->getOrder()); 2265 } 2266 2267 return a * 100; 2268 } 2269 }; 2270 SAColorTemperatureSettingInterpreter saColorTemperatureSettingInterpreter; 2271 2272 const TagAttrib minoltaAttribs[] = { 2273 {0, AC_WRITE, 0, nullptr, 0x0000, AUTO, "MakerNoteVersion", &stdInterpreter}, 2274 {0, AC_WRITE, 0, nullptr, 0x0001, AUTO, "MinoltaCameraSettingsOld", &stdInterpreter}, 2275 {0, AC_WRITE, 0, nullptr, 0x0003, AUTO, "MinoltaCameraSettings", &stdInterpreter}, 2276 {0, AC_WRITE, 0, nullptr, 0x0004, AUTO, "MinoltaCameraSettings7D", &stdInterpreter}, 2277 {0, AC_WRITE, 0, nullptr, 0x0018, AUTO, "ImageStabilization", &stdInterpreter}, 2278 {0, AC_WRITE, 0, nullptr, 0x0040, AUTO, "CompressedImageSize", &stdInterpreter}, 2279 {1, AC_WRITE, 0, nullptr, 0x0081, AUTO, "PreviewImage", &stdInterpreter}, 2280 {1, AC_WRITE, 0, nullptr, 0x0088, AUTO, "PreviewImageStart", &stdInterpreter}, 2281 {1, AC_WRITE, 0, nullptr, 0x0089, AUTO, "PreviewImageLength", &stdInterpreter}, 2282 {0, AC_WRITE, 0, nullptr, 0x0100, AUTO, "SceneMode", &saSceneModeInterpreter}, 2283 {0, AC_WRITE, 0, nullptr, 0x0101, AUTO, "ColorMode", &saColorModeInterpreter}, 2284 {0, AC_WRITE, 0, nullptr, 0x0102, AUTO, "MinoltaQuality", &maQualityInterpreter}, 2285 {0, AC_WRITE, 0, nullptr, 0x0103, AUTO, "MinoltaImageSize", &maImageSizeInterpreter}, 2286 {0, AC_WRITE, 0, nullptr, 0x0104, AUTO, "FlashExposureComp", &stdInterpreter}, 2287 {0, AC_WRITE, 0, nullptr, 0x0105, AUTO, "Teleconverter", &maTeleconverterInterpreter}, 2288 {0, AC_WRITE, 0, nullptr, 0x0107, AUTO, "ImageStabilization", &saOnOffInterpreter}, 2289 {0, AC_WRITE, 0, nullptr, 0x010a, AUTO, "ZoneMatching", &saZoneMatchingInterpreter}, 2290 {0, AC_WRITE, 0, nullptr, 0x010b, AUTO, "ColorTemperature", &stdInterpreter}, 2291 {0, AC_WRITE, 0, nullptr, 0x010c, AUTO, "LensID", &saLensIDInterpreter}, 2292 {0, AC_WRITE, 0, nullptr, 0x0113, AUTO, "ImageStabilization", &saOnOffInterpreter}, 2293 {0, AC_WRITE, 0, nullptr, 0x0114, AUTO, "MinoltaCameraSettings", &stdInterpreter}, 2294 {1, AC_WRITE, 0, nullptr, 0x0e00, AUTO, "PrintIM", &stdInterpreter}, 2295 {0, AC_WRITE, 0, nullptr, 0x0f00, AUTO, "MinoltaCameraSettings2", &stdInterpreter}, 2296 { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} 2297 }; 2298 2299 const TagAttrib sonyAttribs[] = { 2300 {0, AC_WRITE, 0, sonyCameraInfoAttribs, 0x0010, AUTO, "CameraInfo", &stdInterpreter}, 2301 {0, AC_WRITE, 0, nullptr, 0x0102, AUTO, "Quality", &maQualityInterpreter}, 2302 {0, AC_WRITE, 0, nullptr, 0x0104, AUTO, "FlashExposureComp", &stdInterpreter}, 2303 {0, AC_WRITE, 0, nullptr, 0x0106, AUTO, "TeleConverter", &maTeleconverterInterpreter}, 2304 {0, AC_WRITE, 0, sonyCameraSettingsAttribs, 0x0114, AUTO, "SonyCameraSettings", &stdInterpreter}, 2305 {0, AC_WRITE, 0, nullptr, 0x0115, AUTO, "WhiteBalance", &saWhiteBalanceInterpreter}, 2306 {1, AC_WRITE, 0, nullptr, 0x0e00, AUTO, "PrintIM", &stdInterpreter}, 2307 {1, AC_WRITE, 0, nullptr, 0x2001, AUTO, "PreviewImage", &stdInterpreter}, 2308 {0, AC_WRITE, 0, nullptr, 0x2009, AUTO, "HighISONoiseReduction", &saHighISONoiseReduction}, 2309 {0, AC_WRITE, 0, nullptr, 0x200a, AUTO, "AutoHDR", &stdInterpreter}, 2310 {0, AC_WRITE, 0, nullptr, 0x200b, AUTO, "MultiFrameNoiseReduction", &stdInterpreter}, 2311 {0, AC_WRITE, 0, nullptr, 0x200e, AUTO, "PictureEffect", &saPictureEffectInterpreter}, 2312 {0, AC_WRITE, 0, nullptr, 0x2011, AUTO, "VignettingCorrection", &stdInterpreter}, 2313 {0, AC_WRITE, 0, nullptr, 0x2012, AUTO, "LateralChromaticAberration", &stdInterpreter}, 2314 {0, AC_WRITE, 0, nullptr, 0x2013, AUTO, "DistortionCorrection", &stdInterpreter}, 2315 {0, AC_WRITE, 0, nullptr, 0xb020, AUTO, "ColorReproduction", &stdInterpreter}, 2316 {0, AC_WRITE, 0, nullptr, 0xb021, AUTO, "ColorTemperature", &stdInterpreter}, 2317 {0, AC_WRITE, 0, nullptr, 0xb022, AUTO, "ColorCompensationFilter", &stdInterpreter}, 2318 {0, AC_WRITE, 0, nullptr, 0xb023, AUTO, "SceneMode", &saSceneModeInterpreter}, 2319 {0, AC_WRITE, 0, nullptr, 0xb024, AUTO, "ZoneMatching", &saZoneMatchingInterpreter}, 2320 {0, AC_WRITE, 0, nullptr, 0xb025, AUTO, "DynamicRangeOptimizer", &saDynamicRangeOptimizerInterpreter}, 2321 {0, AC_WRITE, 0, nullptr, 0xb026, AUTO, "ImageStabilization", &saOnOffInterpreter}, 2322 {0, AC_WRITE, 0, nullptr, 0xb027, AUTO, "LensID", &saLensIDInterpreter}, 2323 {0, AC_WRITE, 0, minoltaAttribs, 0xb028, AUTO, "MinoltaMakerNote", &stdInterpreter}, 2324 {0, AC_WRITE, 0, nullptr, 0xb029, AUTO, "ColorMode", &saColorModeInterpreter}, 2325 {0, AC_WRITE, 0, nullptr, 0xb040, AUTO, "Macro", &saOnOffInterpreter}, 2326 {0, AC_WRITE, 0, nullptr, 0xb041, AUTO, "ExposureMode", &saExposureModeInterpreter}, 2327 {0, AC_WRITE, 0, nullptr, 0xb042, AUTO, "FocusMode", &saFocusMode}, 2328 {0, AC_WRITE, 0, nullptr, 0xb043, AUTO, "AFMode", &saAFMode}, 2329 {0, AC_WRITE, 0, nullptr, 0xb044, AUTO, "AFIlluminator", &saAFIlluminator}, 2330 {0, AC_WRITE, 0, nullptr, 0xb047, AUTO, "Quality", &saQualityInterpreter}, 2331 {0, AC_WRITE, 0, nullptr, 0xb048, AUTO, "FlashLevel", &stdInterpreter}, 2332 {0, AC_WRITE, 0, nullptr, 0xb049, AUTO, "ReleaseMode", &saReleaseModeInterpreter}, 2333 {0, AC_WRITE, 0, nullptr, 0xb04a, AUTO, "SequenceNumber", &stdInterpreter}, 2334 {0, AC_WRITE, 0, nullptr, 0xb04b, AUTO, "AntiBlur", &saAntiBlurInterpreter}, 2335 {0, AC_WRITE, 0, nullptr, 0xb04e, AUTO, "LongExposureNoiseReduction", &saOnOffInterpreter}, 2336 {0, AC_WRITE, 0, nullptr, 0xb04f, AUTO, "DynamicRangeOptimizer", &stdInterpreter}, 2337 {0, AC_WRITE, 0, nullptr, 0xb050, AUTO, "HighISONoiseReduction2", &saHighISONoiseReduction2}, 2338 {0, AC_WRITE, 0, nullptr, 0xb052, AUTO, "IntelligentAuto", &stdInterpreter}, 2339 {0, AC_WRITE, 0, sonyTag9405Attribs, 0x9405, AUTO, "Tag9405", &stdInterpreter}, 2340 { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} 2341 }; 2342 2343 const TagAttrib sonyTag9405Attribs[] = { 2344 {0, AC_WRITE, 0, nullptr, 0x005d, AUTO, "LensFormat", &stdInterpreter}, // 9405b start here 2345 {0, AC_WRITE, 0, nullptr, 0x005e, AUTO, "LensMount", &stdInterpreter}, 2346 {0, AC_WRITE, 0, nullptr, 0x0060, SHORT, "LensType2", &stdInterpreter}, 2347 {0, AC_WRITE, 0, nullptr, 0x0062, SHORT, "LensType", &stdInterpreter}, 2348 {0, AC_WRITE, 0, nullptr, 0x0603, AUTO, "LensFormat", &stdInterpreter}, // 9405a start here 2349 {0, AC_WRITE, 0, nullptr, 0x0604, AUTO, "LensMount", &stdInterpreter}, 2350 {0, AC_WRITE, 0, nullptr, 0x0605, SHORT, "LensType2", &stdInterpreter}, 2351 {0, AC_WRITE, 0, nullptr, 0x0608, SHORT, "LensType", &stdInterpreter}, 2352 { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} 2353 }; 2354 2355 const TagAttrib sonyCameraInfoAttribs[] = { 2356 {0, AC_WRITE, 0, nullptr, 14, SHORT, "FocalLength", &saExposureTimeInterpreter}, 2357 {0, AC_WRITE, 0, nullptr, 16, SHORT, "FocalLengthTeleZoom", &saExposureTimeInterpreter}, 2358 {0, AC_WRITE, 0, nullptr, 25, AUTO, "FocusStatus", &saCameraInfoFocusStatusInterpreter}, 2359 {0, AC_WRITE, 0, nullptr, 28, AUTO, "AFPointSelected", &saCameraInfoAFPointSelected}, 2360 {0, AC_WRITE, 0, nullptr, 29, AUTO, "FocusMode", &saFocusMode2}, 2361 {0, AC_WRITE, 0, nullptr, 32, AUTO, "AFPoint", &saCameraInfoAFPoint}, 2362 { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} 2363 }; 2364 2365 const TagAttrib sonyCameraInfo2Attribs[] = { 2366 {0, AC_WRITE, 0, nullptr, 304, AUTO, "AFMicroAdjValue", &saAFMicroAdjValueInterpreter}, 2367 {0, AC_WRITE, 0, nullptr, 305, AUTO, "AFMicroAdjMode", &saAFMicroAdjModeInterpreter}, 2368 {0, AC_WRITE, 0, nullptr, 305, AUTO, "AFMicroAdjRegisteredLenses", &saAFMicroAdjRegisteredLensesInterpreter}, 2369 { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} 2370 }; 2371 2372 const TagAttrib sonyCameraSettingsAttribs[] = { 2373 {0, AC_WRITE, 0, nullptr, 0, AUTO, "ExposureTime", &saExposureTimeInterpreter}, 2374 {0, AC_WRITE, 0, nullptr, 1, AUTO, "FNumber", &saFNumberInterpreter}, 2375 {0, AC_WRITE, 0, nullptr, 4, AUTO, "DriveMode", &saDriveMode}, 2376 {0, AC_WRITE, 0, nullptr, 6, AUTO, "WhiteBalanceFineTune", &stdInterpreter}, 2377 {0, AC_WRITE, 0, nullptr, 16, AUTO, "FocusModeSetting", &saFocusMode}, 2378 {0, AC_WRITE, 0, nullptr, 17, AUTO, "AFAreaMode", &saAFAreaMode}, 2379 {0, AC_WRITE, 0, nullptr, 18, AUTO, "AFPointSelected", &saAFPointSelected}, 2380 {0, AC_WRITE, 0, nullptr, 21, AUTO, "MeteringMode", &saMeteringMode1_4}, 2381 {0, AC_WRITE, 0, nullptr, 22, AUTO, "ISOSetting", &saISOSettingInterpreter}, 2382 {0, AC_WRITE, 0, nullptr, 24, AUTO, "DynamicRangeOptimizerMode", &saDynamicRangeOptimizerMode}, 2383 {0, AC_WRITE, 0, nullptr, 25, AUTO, "DynamicRangeOptimizerLevel", &stdInterpreter}, 2384 {0, AC_WRITE, 0, nullptr, 26, AUTO, "CreativeStyle", &saCreativeStyle}, 2385 {0, AC_WRITE, 0, nullptr, 28, AUTO, "Sharpness", &stdInterpreter}, 2386 {0, AC_WRITE, 0, nullptr, 29, AUTO, "Contrast", &stdInterpreter}, 2387 {0, AC_WRITE, 0, nullptr, 30, AUTO, "Saturation", &stdInterpreter}, 2388 {0, AC_WRITE, 0, nullptr, 31, AUTO, "ZoneMatchingValue", &stdInterpreter}, 2389 {0, AC_WRITE, 0, nullptr, 34, AUTO, "Brightness", &stdInterpreter}, 2390 {0, AC_WRITE, 0, nullptr, 35, AUTO, "FlashMode", &saFlashMode}, 2391 {0, AC_WRITE, 0, nullptr, 40, AUTO, "PrioritySetupShutterRelease", &stdInterpreter}, 2392 {0, AC_WRITE, 0, nullptr, 41, AUTO, "AFIlluminator", &saAFIlluminator}, 2393 {0, AC_WRITE, 0, nullptr, 42, AUTO, "AFWithShutter", &saOnOffInterpreter}, 2394 {0, AC_WRITE, 0, nullptr, 43, AUTO, "LongExposureNoiseReduction", &saOnOffInterpreter}, 2395 {0, AC_WRITE, 0, nullptr, 44, AUTO, "HighISONoiseReduction", &saHighISONoiseReduction3}, 2396 {0, AC_WRITE, 0, nullptr, 45, AUTO, "ImageStyle", &saImageStyleInterpreter}, 2397 {0, AC_WRITE, 0, nullptr, 60, AUTO, "ExposureProgram", &saExposureProgram}, 2398 {0, AC_WRITE, 0, nullptr, 61, AUTO, "ImageStabilization", &saOnOffInterpreter}, 2399 {0, AC_WRITE, 0, nullptr, 63, AUTO, "Rotation", &saRotation}, 2400 {0, AC_WRITE, 0, nullptr, 77, AUTO, "FocusMode", &saFocusMode}, 2401 {0, AC_WRITE, 0, nullptr, 83, AUTO, "FocusStatus", &saFocusStatusInterpreter}, 2402 {0, AC_WRITE, 0, nullptr, 84, AUTO, "SonyImageSize", &saSonyImageSize}, 2403 {0, AC_WRITE, 0, nullptr, 85, AUTO, "AspectRatio", &saAspectRatio}, 2404 {0, AC_WRITE, 0, nullptr, 86, AUTO, "Quality", &saQualityInterpreter2}, 2405 {0, AC_WRITE, 0, nullptr, 88, AUTO, "ExposureLevelIncrements", &saExposureLevelIncrements}, 2406 { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} 2407 }; 2408 2409 const TagAttrib sonyCameraSettingsAttribs2[] = { 2410 {0, AC_WRITE, 0, nullptr, 0, AUTO, "ExposureTime", &saExposureTimeInterpreter}, 2411 {0, AC_WRITE, 0, nullptr, 1, AUTO, "FNumber", &saFNumberInterpreter}, 2412 {0, AC_WRITE, 0, nullptr, 11, AUTO, "ColorTemperatureSetting", &saColorTemperatureSettingInterpreter}, 2413 {0, AC_WRITE, 0, nullptr, 15, AUTO, "FocusMode", &saFocusMode2}, 2414 {0, AC_WRITE, 0, nullptr, 16, AUTO, "AFAreaMode", &saAFAreaMode}, 2415 {0, AC_WRITE, 0, nullptr, 17, AUTO, "AFPointSelected", &saAFPointSelected2}, 2416 {0, AC_WRITE, 0, nullptr, 19, AUTO, "MeteringMode", &saMeteringMode1_4}, 2417 {0, AC_WRITE, 0, nullptr, 20, AUTO, "ISOSetting", &saISOSettingInterpreter}, 2418 {0, AC_WRITE, 0, nullptr, 22, AUTO, "DynamicRangeOptimizerMode", &saDynamicRangeOptimizerMode}, 2419 {0, AC_WRITE, 0, nullptr, 23, AUTO, "DynamicRangeOptimizerLevel", &stdInterpreter}, 2420 {0, AC_WRITE, 0, nullptr, 24, AUTO, "CreativeStyle", &saCreativeStyle2}, 2421 {0, AC_WRITE, 0, nullptr, 25, AUTO, "Sharpness", &stdInterpreter}, 2422 {0, AC_WRITE, 0, nullptr, 26, AUTO, "Contrast", &stdInterpreter}, 2423 {0, AC_WRITE, 0, nullptr, 27, AUTO, "Saturation", &stdInterpreter}, 2424 {0, AC_WRITE, 0, nullptr, 35, AUTO, "FlashMode", &saFlashMode}, 2425 {0, AC_WRITE, 0, nullptr, 38, AUTO, "HighISONoiseReduction", &saHighISONoiseReduction4}, 2426 {0, AC_WRITE, 0, nullptr, 60, AUTO, "ExposureProgram", &saExposureProgram}, 2427 {0, AC_WRITE, 0, nullptr, 63, AUTO, "Rotation", &saRotation}, 2428 {0, AC_WRITE, 0, nullptr, 83, AUTO, "FocusStatus", &saFocusStatusInterpreter}, 2429 {0, AC_WRITE, 0, nullptr, 84, AUTO, "SonyImageSize", &saSonyImageSize}, 2430 {0, AC_WRITE, 0, nullptr, 85, AUTO, "AspectRatio", &saAspectRatio}, 2431 {0, AC_WRITE, 0, nullptr, 86, AUTO, "Quality", &saQualityInterpreter2}, 2432 {0, AC_WRITE, 0, nullptr, 88, AUTO, "ExposureLevelIncrements", &saExposureLevelIncrements}, 2433 {0, AC_WRITE, 0, nullptr, 126, AUTO, "DriveMode", &saDriveMode2}, 2434 {0, AC_WRITE, 0, nullptr, 131, AUTO, "ColorSpace", &saColorSpace5_6}, 2435 { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} 2436 }; 2437 2438 const TagAttrib sonyCameraSettingsAttribs3[] = { 2439 {0, AC_WRITE, 0, nullptr, 0, AUTO, "ShutterSpeedSetting", &saExposureTimeInterpreter}, 2440 {0, AC_WRITE, 0, nullptr, 1, AUTO, "ApertureSetting", &saFNumberInterpreter}, 2441 {0, AC_WRITE, 0, nullptr, 2, AUTO, "ISOSetting", &saISOSettingInterpreter}, 2442 {0, AC_WRITE, 0, nullptr, 3, AUTO, "ExposureCompensationSet", &saExposureCompSetInterpreter}, 2443 {0, AC_WRITE, 0, nullptr, 3, AUTO, "DriveModeSetting", &saDriveMode3}, 2444 {0, AC_WRITE, 0, nullptr, 5, AUTO, "ExposureProgram", &saExposureProgram2}, 2445 {0, AC_WRITE, 0, nullptr, 6, AUTO, "FocusModeSetting", &saFocusModeSetting3}, 2446 {0, AC_WRITE, 0, nullptr, 7, AUTO, "MeteringMode", &saMeteringMode1_3}, 2447 {0, AC_WRITE, 0, nullptr, 9, AUTO, "SonyImageSize", &saSonyImageSize3}, 2448 {0, AC_WRITE, 0, nullptr, 10, AUTO, "AspectRatio", &saAspectRatio2}, 2449 {0, AC_WRITE, 0, nullptr, 11, AUTO, "Quality", &saQualityInterpreter3}, 2450 {0, AC_WRITE, 0, nullptr, 12, AUTO, "DynamicRangeOptimizerSetting", &saDynamicRangeOptimizerSetting}, 2451 {0, AC_WRITE, 0, nullptr, 14, AUTO, "ColorSpace", &saColorSpace1_2}, 2452 {0, AC_WRITE, 0, nullptr, 15, AUTO, "CreativeStyleSetting", &saCreativeStyleSetting}, 2453 {0, AC_WRITE, 0, nullptr, 16, AUTO, "Contrast", &stdInterpreter}, 2454 {0, AC_WRITE, 0, nullptr, 17, AUTO, "Saturation", &stdInterpreter}, 2455 {0, AC_WRITE, 0, nullptr, 18, AUTO, "Sharpness", &stdInterpreter}, 2456 {0, AC_WRITE, 0, nullptr, 22, AUTO, "WhiteBalance", &saWhiteBalanceSettingInterpreter}, 2457 {0, AC_WRITE, 0, nullptr, 23, AUTO, "ColorTemperatureSetting", &saColorTemperatureSettingInterpreter}, 2458 {0, AC_WRITE, 0, nullptr, 23, AUTO, "ColorCompensationFilterSet", &stdInterpreter}, 2459 {0, AC_WRITE, 0, nullptr, 32, AUTO, "FlashMode", &saFlashMode2}, 2460 {0, AC_WRITE, 0, nullptr, 33, AUTO, "FlashControl", &saFlashControl}, 2461 {0, AC_WRITE, 0, nullptr, 35, AUTO, "FlashExposureCompSet", &saExposureCompSetInterpreter}, 2462 {0, AC_WRITE, 0, nullptr, 36, AUTO, "AFAreaMode", &saAFAreaMode2}, 2463 {0, AC_WRITE, 0, nullptr, 37, AUTO, "LongExposureNoiseReduction", &saOnOffInterpreter2}, 2464 {0, AC_WRITE, 0, nullptr, 38, AUTO, "HighISONoiseReduction", &saHighISONoiseReduction5}, 2465 {0, AC_WRITE, 0, nullptr, 39, AUTO, "SmileShutterMode", &saSmileShutterMode}, 2466 {0, AC_WRITE, 0, nullptr, 40, AUTO, "RedEyeReduction", &saOnOffInterpreter2}, 2467 {0, AC_WRITE, 0, nullptr, 45, AUTO, "HDRSetting", &saOnOffInterpreter3}, 2468 {0, AC_WRITE, 0, nullptr, 46, AUTO, "HDRLevel", &saHDRLevel}, 2469 {0, AC_WRITE, 0, nullptr, 47, AUTO, "ViewingMode", &saViewingMode}, 2470 {0, AC_WRITE, 0, nullptr, 48, AUTO, "FaceDetection", &saOnOffInterpreter2}, 2471 {0, AC_WRITE, 0, nullptr, 49, AUTO, "SmileShutter", &saOnOffInterpreter2}, 2472 {0, AC_WRITE, 0, nullptr, 50, AUTO, "SweepPanoramaSize", &saSweepPanoramaSize}, 2473 {0, AC_WRITE, 0, nullptr, 51, AUTO, "SweepPanoramaDirection", &saSweepPanoramaDirection}, 2474 {0, AC_WRITE, 0, nullptr, 52, AUTO, "DriveMode", &saDriveMode3}, 2475 {0, AC_WRITE, 0, nullptr, 53, AUTO, "MultiFrameNoiseReduction", &saOnOffInterpreter4}, 2476 {0, AC_WRITE, 0, nullptr, 54, AUTO, "LiveViewAFSetting", &saLiveViewAFSetting}, 2477 {0, AC_WRITE, 0, nullptr, 56, AUTO, "PanoramaSize3D", &saPanoramaSize3D}, 2478 {0, AC_WRITE, 0, nullptr, 131, AUTO, "AFButtonPressed", &saNoYesInterpreter}, 2479 {0, AC_WRITE, 0, nullptr, 132, AUTO, "LiveViewMetering", &saLiveViewMetering}, 2480 {0, AC_WRITE, 0, nullptr, 133, AUTO, "ViewingMode2", &saViewingMode}, 2481 {0, AC_WRITE, 0, nullptr, 134, AUTO, "AELock", &saOnOffInterpreter5}, 2482 {0, AC_WRITE, 0, nullptr, 135, AUTO, "FlashAction", &saFlashAction}, 2483 {0, AC_WRITE, 0, nullptr, 139, AUTO, "LiveViewFocusMode", &saLiveViewFocusMode}, 2484 {0, AC_WRITE, 0, nullptr, 153, AUTO, "LensMount", &saLensMount}, 2485 {0, AC_WRITE, 0, nullptr, 643, AUTO, "AFButtonPressed", &saNoYesInterpreter}, 2486 {0, AC_WRITE, 0, nullptr, 644, AUTO, "LiveViewMetering", &saLiveViewMetering}, 2487 {0, AC_WRITE, 0, nullptr, 645, AUTO, "ViewingMode2", &saViewingMode}, 2488 {0, AC_WRITE, 0, nullptr, 646, AUTO, "AELock", &saOnOffInterpreter5}, 2489 {0, AC_WRITE, 0, nullptr, 647, AUTO, "FlashAction", &saFlashAction}, 2490 {0, AC_WRITE, 0, nullptr, 651, AUTO, "LiveViewFocusMode", &saLiveViewFocusMode}, 2491 {0, AC_WRITE, 0, nullptr, 1015, SHORT, "LensType2", &saLensID2Interpreter}, 2492 { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} 2493 }; 2494 2495 /*const TagAttrib sonyDNGMakerNote[]={ 2496 {0, AC_WRITE, 0, 0, 0x7200, AUTO, "SonyOffset", &stdInterpreter}, 2497 {0, AC_WRITE, 0, 0, 0x7201, AUTO, "SonyLength", &stdInterpreter}, 2498 {0, AC_WRITE, 0, 0, 0x7221, AUTO, "SonyKey", &stdInterpreter}, 2499 {-1, AC_DONTWRITE, 0, 0, 0, AUTO, "", NULL}};*/ 2500 2501 } 2502 #endif 2503 2504 2505