| /* -*- C++ -*- |
| * Copyright 2019-2025 LibRaw LLC (info@libraw.org) |
| * |
| |
| LibRaw is free software; you can redistribute it and/or modify |
| it under the terms of the one of two licenses as you choose: |
| |
| 1. GNU LESSER GENERAL PUBLIC LICENSE version 2.1 |
| (See file LICENSE.LGPL provided in LibRaw distribution archive for details). |
| |
| 2. COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 |
| (See file LICENSE.CDDL provided in LibRaw distribution archive for details). |
| |
| */ |
| |
| #include "third_party/libraw/internal/dcraw_defs.h" |
| #include "third_party/libraw/internal/libraw_cameraids.h" |
| |
| void LibRaw::GetNormalizedModel() |
| { |
| |
| int i, j; |
| char *ps; |
| int try_xml = 0; |
| |
| static const struct |
| { |
| unsigned long long id; |
| char t_model[20]; |
| } unique[] = |
| // clang-format off |
| { |
| { CanonID_EOS_M50, "EOS M50"}, // Kiss M |
| { CanonID_EOS_M6_Mark_II, "EOS M6 Mark II"}, |
| { CanonID_EOS_M200, "EOS M200"}, |
| { CanonID_EOS_D30, "EOS D30"}, |
| { CanonID_EOS_D60, "EOS D60"}, |
| { CanonID_EOS_M3, "EOS M3"}, |
| { CanonID_EOS_M10, "EOS M10"}, |
| { CanonID_EOS_M5, "EOS M5"}, |
| { CanonID_EOS_M100, "EOS M100"}, |
| { CanonID_EOS_M6, "EOS M6"}, |
| |
| { CanonID_EOS_R5_C, "EOS R5 C"}, |
| |
| { CanonID_EOS_1D, "EOS-1D"}, |
| { CanonID_EOS_1Ds, "EOS-1Ds"}, |
| { CanonID_EOS_10D, "EOS 10D"}, |
| { CanonID_EOS_1D_Mark_III, "EOS-1D Mark III"}, |
| { CanonID_EOS_300D, "EOS 300D"}, // Digital Rebel / Kiss Digital |
| { CanonID_EOS_1D_Mark_II, "EOS-1D Mark II"}, |
| { CanonID_EOS_20D, "EOS 20D"}, |
| { CanonID_EOS_450D, "EOS 450D"}, // Digital Rebel XSi / Kiss X2 |
| { CanonID_EOS_1Ds_Mark_II, "EOS-1Ds Mark II"}, |
| { CanonID_EOS_350D, "EOS 350D"}, // Digital Rebel XT / Kiss Digital N |
| { CanonID_EOS_40D, "EOS 40D"}, |
| { CanonID_EOS_5D, "EOS 5D"}, |
| { CanonID_EOS_1Ds_Mark_III, "EOS-1Ds Mark III"}, |
| { CanonID_EOS_5D_Mark_II, "EOS 5D Mark II"}, |
| { CanonID_EOS_1D_Mark_II_N, "EOS-1D Mark II N"}, |
| { CanonID_EOS_30D, "EOS 30D"}, |
| { CanonID_EOS_400D, "EOS 400D"}, // Digital Rebel XTi / Kiss Digital X |
| { CanonID_EOS_7D, "EOS 7D"}, |
| { CanonID_EOS_500D, "EOS 500D"}, // Rebel T1i / Kiss X3 |
| { CanonID_EOS_1000D, "EOS 1000D"}, // Digital Rebel XS / Kiss F |
| { CanonID_EOS_50D, "EOS 50D"}, |
| { CanonID_EOS_1D_X, "EOS-1D X"}, |
| { CanonID_EOS_550D, "EOS 550D"}, // Rebel T2i / Kiss X4 |
| { CanonID_EOS_1D_Mark_IV, "EOS-1D Mark IV"}, |
| { CanonID_EOS_5D_Mark_III, "EOS 5D Mark III"}, |
| { CanonID_EOS_600D, "EOS 600D"}, // Rebel T3i / Kiss X5 |
| { CanonID_EOS_60D, "EOS 60D"}, |
| { CanonID_EOS_1100D, "EOS 1100D"}, // Rebel T3 / Kiss X50 |
| { CanonID_EOS_7D_Mark_II, "EOS 7D Mark II"}, |
| { CanonID_EOS_650D, "EOS 650D"}, // Rebel T4i / Kiss X6i |
| { CanonID_EOS_6D, "EOS 6D"}, |
| { CanonID_EOS_1D_C, "EOS-1D C"}, |
| { CanonID_EOS_70D, "EOS 70D"}, |
| { CanonID_EOS_700D, "EOS 700D"}, // Rebel T5i / Kiss X7i |
| { CanonID_EOS_1200D, "EOS 1200D"}, // Rebel T5 / Kiss X70 / Hi |
| { CanonID_EOS_1D_X_Mark_II, "EOS-1D X Mark II"}, |
| { CanonID_EOS_M, "EOS M"}, |
| { CanonID_EOS_100D, "EOS 100D"}, // Rebel SL1 / Kiss X7 |
| { CanonID_EOS_760D, "EOS 760D"}, // Rebel T6s / 8000D |
| { CanonID_EOS_5D_Mark_IV, "EOS 5D Mark IV"}, |
| { CanonID_EOS_80D, "EOS 80D"}, |
| { CanonID_EOS_M2, "EOS M2"}, |
| { CanonID_EOS_5DS, "EOS 5DS"}, |
| { CanonID_EOS_750D, "EOS 750D"}, // Rebel T6i / Kiss X8i |
| { CanonID_EOS_5DS_R, "EOS 5DS R"}, |
| { CanonID_EOS_1300D, "EOS 1300D"}, // Rebel T6 / Kiss X80 |
| { CanonID_EOS_800D, "EOS 800D"}, // Rebel T7i / Kiss X9i |
| { CanonID_EOS_6D_Mark_II, "EOS 6D Mark II"}, |
| { CanonID_EOS_77D, "EOS 77D"}, // 9000D |
| { CanonID_EOS_200D, "EOS 200D"}, // Rebel SL2 / Kiss X9 |
| { CanonID_EOS_R5, "EOS R5"}, |
| { CanonID_EOS_3000D, "EOS 3000D"}, // Rebel T100 / 4000D |
| { CanonID_EOS_R, "EOS R"}, |
| { CanonID_EOS_1D_X_Mark_III, "EOS-1D X Mark III"}, |
| { CanonID_EOS_1500D, "EOS 1500D"}, // Rebel T7 / 2000D / Kiss X90 |
| { CanonID_EOS_RP, "EOS RP"}, |
| { CanonID_EOS_850D, "EOS 850D"}, // EOS Rebel T8i / X10i |
| { CanonID_EOS_250D, "EOS 250D"}, // Rebel SL3 / 200D II / Kiss X10 |
| { CanonID_EOS_90D, "EOS 90D"}, |
| { CanonID_EOS_R3, "EOS R3"}, |
| { CanonID_EOS_R6, "EOS R6"}, |
| { CanonID_EOS_R7, "EOS R7"}, |
| { CanonID_EOS_R10, "EOS R10"}, |
| { CanonID_EOS_M50_Mark_II, "EOS M50 Mark II"}, // M50m2, Kiss M2 |
| { CanonID_EOS_R50, "EOS R50"}, |
| { CanonID_EOS_R6m2, "EOS R6 Mark II"}, |
| { CanonID_EOS_R8, "EOS R8"}, |
| { CanonID_EOS_R1, "EOS R1"}, |
| { CanonID_EOS_R5_Mark_II, "EOS R5 Mark II"}, // EOS R5m2 |
| { CanonID_EOS_R100, "EOS R100"} |
| }, |
| #if 0 |
| olyque[] = { |
| { OlyID_E_20, "E-20"}, |
| { OlyID_E_20, "E-20,E-20N,E-20P"}, |
| { OlyID_E_1, "E-1"}, |
| { OlyID_E_300, "E-300"}, |
| { OlyID_SP_550UZ, "SP-550UZ"}, |
| { OlyID_SP_550UZ, "SP550UZ"}, |
| { OlyID_SP_510UZ, "SP-510UZ"}, |
| { OlyID_SP_510UZ, "SP510UZ"}, |
| { OlyID_SP_560UZ, "SP-560UZ"}, |
| { OlyID_SP_560UZ, "SP560UZ"}, |
| { OlyID_SP_570UZ, "SP-570UZ"}, |
| { OlyID_SP_570UZ, "SP570UZ"}, |
| { OlyID_SP_565UZ, "SP-565UZ"}, |
| { OlyID_SP_565UZ, "SP565UZ"}, |
| { OlyID_XZ_1, "XZ-1"}, |
| { OlyID_XZ_2, "XZ-2"}, |
| { OlyID_XZ_10, "XZ-10"}, |
| { OlyID_STYLUS_1, "Stylus 1"}, |
| { OlyID_STYLUS_1, "STYLUS1"}, |
| { OlyID_STYLUS_1, "STYLUS1,1s"}, |
| { OlyID_SH_2, "SH-2"}, |
| { OlyID_TG_4, "TG-4"}, |
| { OlyID_TG_5, "TG-5"}, |
| { OlyID_TG_6, "TG-6"}, |
| { OlyID_TG_7, "TG-7"}, |
| { OlyID_E_10, "E-10"}, |
| { OlyID_AIR_A01, "AIR A01"}, |
| { OlyID_AIR_A01, "AIR-A01"}, |
| { OlyID_E_330, "E-330"}, |
| { OlyID_E_500, "E-500"}, |
| { OlyID_E_400, "E-400"}, |
| { OlyID_E_510, "E-510"}, |
| { OlyID_E_3, "E-3"}, |
| { OlyID_E_410, "E-410"}, |
| { OlyID_E_420, "E-420"}, |
| { OlyID_E_30, "E-30"}, |
| { OlyID_E_520, "E-520"}, |
| { OlyID_E_P1, "E-P1"}, |
| { OlyID_E_620, "E-620"}, |
| { OlyID_E_P2, "E-P2"}, |
| { OlyID_E_PL1, "E-PL1"}, |
| { OlyID_E_450, "E-450"}, |
| { OlyID_E_600, "E-600"}, |
| { OlyID_E_P3, "E-P3"}, |
| { OlyID_E_5, "E-5"}, |
| { OlyID_E_PL2, "E-PL2"}, |
| { OlyID_E_M5, "E-M5"}, |
| { OlyID_E_PL3, "E-PL3"}, |
| { OlyID_E_PM1, "E-PM1"}, |
| { OlyID_E_PL1s, "E-PL1s"}, |
| { OlyID_E_PL5, "E-PL5"}, |
| { OlyID_E_PM2, "E-PM2"}, |
| { OlyID_E_P5, "E-P5"}, |
| { OlyID_E_PL6, "E-PL6"}, |
| { OlyID_E_PL7, "E-PL7"}, |
| { OlyID_E_M1, "E-M1"}, |
| { OlyID_E_M10, "E-M10"}, |
| { OlyID_E_M5_Mark_II, "E-M5 Mark II"}, |
| { OlyID_E_M5_Mark_II, "E-M5MarkII"}, |
| { OlyID_E_M5_Mark_II, "E-M5_M2"}, |
| { OlyID_E_M10_Mark_II, "E-M10 Mark II"}, // Clauss piX 5oo |
| { OlyID_E_M10_Mark_II, "E-M10MarkII"}, |
| { OlyID_E_M10_Mark_II, "E-M10_M2"}, |
| { OlyID_PEN_F, "PEN-F"}, |
| { OlyID_E_PL8, "E-PL8"}, |
| { OlyID_E_M1_Mark_II, "E-M1 Mark II"}, |
| { OlyID_E_M1_Mark_II, "E-M1MarkII"}, |
| { OlyID_E_M1_Mark_II, "E-M1_M2"}, |
| { OlyID_E_M10_Mark_III, "E-M10 Mark III"}, |
| { OlyID_E_M10_Mark_III, "E-M10_M3"}, |
| { OlyID_E_PL9, "E-PL9"}, |
| { OlyID_E_M1X, "E-M1X"}, |
| { OlyID_E_PL10, "E-PL10"}, |
| { OlyID_E_M10_Mark_IV, "E-M10 Mark IV"}, |
| { OlyID_E_M10_Mark_IV, "E-M10MarkIV"}, |
| { OlyID_E_M10_Mark_IV, "E-M10_M4"}, |
| { OlyID_E_M5_Mark_III, "E-M5 Mark III"}, |
| { OlyID_E_M5_Mark_III, "E-M5MarkIII"}, |
| { OlyID_E_M5_Mark_III, "E-M5_M3"}, |
| { OlyID_E_M1_Mark_III, "E-M1 Mark III"}, |
| { OlyID_E_M1_Mark_III, "E-M1MarkIII"}, |
| { OlyID_E_M1_Mark_III, "E-M1_M3"}, |
| { OlyID_E_P7 "E-P7"}, |
| { OlyID_C_3030Z, "C-3030Z"}, |
| { OlyID_C_3030Z, "C3030Z"}, |
| { OlyID_C_5050Z, "C-5050Z"}, |
| { OlyID_C_5050Z, "C5050Z"}, |
| { OlyID_C_350Z, "C-350Z"}, |
| { OlyID_C_350Z, "X200,D560Z,C350Z"}, |
| { OlyID_C_740UZ, "C-740UZ"}, |
| { OlyID_C_740UZ, "C740UZ"}, |
| { OlyID_C_5060WZ, "C-5060WZ"}, |
| { OlyID_C_5060WZ, "C5060WZ"}, |
| { OlyID_C_8080WZ, "C-8080WZ"}, |
| { OlyID_C_8080WZ, "C8080WZ"}, |
| { OlyID_C_770UZ, "C-770UZ"}, |
| { OlyID_C_770UZ, "C770UZ"}, |
| { OlyID_C_7070WZ, "C-7070WZ"}, |
| { OlyID_C_7070WZ, "C7070WZ"}, |
| { OlyID_C_7000Z, "C-7000Z"}, |
| { OlyID_C_7000Z, "C70Z,C7000Z"}, |
| { OlyID_SP_500UZ, "SP-500UZ"}, |
| { OlyID_SP_500UZ, "SP500UZ"}, |
| { OlyID_SP_310, "SP-310"}, |
| { OlyID_SP_310, "SP310"}, |
| { OlyID_SP_350, "SP-350"}, |
| { OlyID_SP_350, "SP350"}, |
| { OlyID_SP_320, "SP-320"}, |
| { OlyID_SP_320, "SP320"}, |
| }, |
| |
| penique[] = { |
| { PentaxID_Optio_S, "Optio S"}, |
| { PentaxID_Optio_S_V101, "Optio S V1.01"}, |
| { PentaxID_staristD, "*istD"}, |
| { PentaxID_staristD, "*ist D"}, |
| { PentaxID_Optio_33WR, "Optio 33WR"}, |
| { PentaxID_Optio_S4, "Optio S4"}, |
| { PentaxID_Optio_750Z, "Optio 750Z"}, |
| { PentaxID_staristDS, "*istDS"}, |
| { PentaxID_staristDS, "*ist DS"}, |
| { PentaxID_staristDL, "*istDL"}, |
| { PentaxID_staristDL, "*ist DL"}, |
| { PentaxID_staristDS2, "*istDS2"}, |
| { PentaxID_staristDS2, "*ist DS2"}, |
| { PentaxID_GX_1S, "GX-1S"}, // Samsung |
| { PentaxID_staristDL2, "*istDL2"}, |
| { PentaxID_staristDL2, "*ist DL2"}, |
| { PentaxID_GX_1L, "GX-1L"}, // Samsung |
| { PentaxID_K100D, "K100D"}, |
| { PentaxID_K110D, "K110D"}, |
| { PentaxID_K100D_Super, "K100D Super"}, |
| { PentaxID_K10D, "K10D"}, |
| { PentaxID_GX10, "GX10"}, // Samsung |
| { PentaxID_GX10, "GX-10"}, // Samsung |
| { PentaxID_K20D, "K20D"}, |
| { PentaxID_GX20, "GX20"}, // Samsung |
| { PentaxID_GX20, "GX-20"}, // Samsung |
| { PentaxID_K200D, "K200D"}, |
| { PentaxID_K2000, "K2000"}, |
| { PentaxID_K_m, "K-m"}, |
| { PentaxID_K_7, "K-7"}, |
| { PentaxID_K_x, "K-x"}, |
| { PentaxID_645D, "645D"}, |
| { PentaxID_K_r, "K-r"}, |
| { PentaxID_K_5, "K-5"}, |
| { PentaxID_Q, "Q"}, |
| { PentaxID_K_01, "K-01"}, |
| { PentaxID_K_30, "K-30"}, |
| { PentaxID_Q10, "Q10"}, |
| { PentaxID_K_5_II, "K-5 II"}, |
| { PentaxID_K_5_II_s, "K-5 II s"}, |
| { PentaxID_Q7, "Q7"}, |
| { PentaxID_MX_1, "MX-1"}, |
| { PentaxID_K_50, "K-50"}, |
| { PentaxID_K_3, "K-3"}, |
| { PentaxID_K_500, "K-500"}, |
| { PentaxID_645Z, "645Z"}, |
| { PentaxID_K_S1, "K-S1"}, |
| { PentaxID_K_S2, "K-S2"}, // Ricoh |
| { PentaxID_Q_S1, "Q-S1"}, |
| { PentaxID_K_1, "K-1"}, // Ricoh |
| { PentaxID_K_3_II, "K-3 II"}, // Ricoh |
| { PentaxID_GR_III, "GR III"}, // Ricoh |
| { PentaxID_K_70, "K-70"}, // Ricoh |
| { PentaxID_KF, "KF"}, // Ricoh |
| { PentaxID_KP, "KP"}, // Ricoh |
| { PentaxID_K_1_Mark_II, "K-1 Mark II"}, // Ricoh |
| { PentaxID_K_3_III, "K-3 Mark III"}, // Ricoh |
| { PentaxID_GR_IIIx, "GR IIIx"}, |
| { PentaxID_K_3_III_Mono, "K-3 Mark III Monochrome"}, |
| }, |
| #endif |
| sonique[] = { |
| { SonyID_DSC_R1, "DSC-R1"}, |
| { SonyID_DSLR_A100, "DSLR-A100"}, |
| { SonyID_DSLR_A900, "DSLR-A900"}, |
| { SonyID_DSLR_A700, "DSLR-A700"}, |
| { SonyID_DSLR_A200, "DSLR-A200"}, |
| { SonyID_DSLR_A350, "DSLR-A350"}, |
| { SonyID_DSLR_A300, "DSLR-A300"}, |
| { SonyID_DSLR_A900_APSC, "DSLR-A900"}, |
| { SonyID_DSLR_A380, "DSLR-A380"}, // DSLR-A390 |
| { SonyID_DSLR_A330, "DSLR-A330"}, |
| { SonyID_DSLR_A230, "DSLR-A230"}, |
| { SonyID_DSLR_A290, "DSLR-A290"}, |
| { SonyID_DSLR_A850, "DSLR-A850"}, |
| { SonyID_DSLR_A850_APSC, "DSLR-A850"}, |
| { SonyID_DSLR_A550, "DSLR-A550"}, |
| { SonyID_DSLR_A500, "DSLR-A500"}, |
| { SonyID_DSLR_A450, "DSLR-A450"}, |
| { SonyID_NEX_5, "NEX-5"}, |
| { SonyID_NEX_3, "NEX-3"}, |
| { SonyID_SLT_A33, "SLT-A33"}, |
| { SonyID_SLT_A55, "SLT-A55"}, // SLT-A55V |
| { SonyID_DSLR_A560, "DSLR-A560"}, |
| { SonyID_DSLR_A580, "DSLR-A580"}, |
| { SonyID_NEX_C3, "NEX-C3"}, |
| { SonyID_SLT_A35, "SLT-A35"}, |
| { SonyID_SLT_A65, "SLT-A65"}, // SLT-A65V |
| { SonyID_SLT_A77, "SLT-A77"}, // SLT-A77V |
| { SonyID_NEX_5N, "NEX-5N"}, |
| { SonyID_NEX_7, "NEX-7"}, // Hasselblad Lunar |
| { SonyID_NEX_VG20, "NEX-VG20"}, |
| { SonyID_SLT_A37, "SLT-A37"}, |
| { SonyID_SLT_A57, "SLT-A57"}, |
| { SonyID_NEX_F3, "NEX-F3"}, |
| { SonyID_SLT_A99, "SLT-A99"}, // SLT-A99V / Hasselblad HV |
| { SonyID_NEX_6, "NEX-6"}, |
| { SonyID_NEX_5R, "NEX-5R"}, |
| { SonyID_DSC_RX100, "DSC-RX100"}, // Hasselblad Stellar |
| { SonyID_DSC_RX1, "DSC-RX1"}, |
| { SonyID_NEX_VG900, "NEX-VG900"}, |
| { SonyID_NEX_VG30, "NEX-VG30"}, |
| { SonyID_ILCE_3000, "ILCE-3000"}, // ILCE-3500 |
| { SonyID_SLT_A58, "SLT-A58"}, |
| { SonyID_NEX_3N, "NEX-3N"}, |
| { SonyID_ILCE_7, "ILCE-7"}, |
| { SonyID_NEX_5T, "NEX-5T"}, |
| { SonyID_DSC_RX100M2, "DSC-RX100M2"}, // Hasselblad Stellar II |
| { SonyID_DSC_RX10, "DSC-RX10"}, |
| { SonyID_DSC_RX1R, "DSC-RX1R"}, |
| { SonyID_ILCE_7R, "ILCE-7R"}, // Hasselblad Lusso |
| { SonyID_ILCE_6000, "ILCE-6000"}, |
| { SonyID_ILCE_5000, "ILCE-5000"}, |
| { SonyID_DSC_RX100M3, "DSC-RX100M3"}, |
| { SonyID_ILCE_7S, "ILCE-7S"}, |
| { SonyID_ILCA_77M2, "ILCA-77M2"}, |
| { SonyID_ILCE_5100, "ILCE-5100"}, |
| { SonyID_ILCE_7M2, "ILCE-7M2"}, |
| { SonyID_DSC_RX100M4, "DSC-RX100M4"}, |
| { SonyID_DSC_RX10M2, "DSC-RX10M2"}, |
| { SonyID_DSC_RX1RM2, "DSC-RX1RM2"}, |
| { SonyID_ILCE_QX1, "ILCE-QX1"}, // Sony UMC-R10C |
| { SonyID_ILCE_7RM2, "ILCE-7RM2"}, |
| { SonyID_ILCE_7SM2, "ILCE-7SM2"}, |
| { SonyID_ILCA_68, "ILCA-68"}, |
| { SonyID_ILCA_99M2, "ILCA-99M2"}, |
| { SonyID_DSC_RX10M3, "DSC-RX10M3"}, |
| { SonyID_DSC_RX100M5, "DSC-RX100M5"}, |
| { SonyID_ILCE_6300, "ILCE-6300"}, |
| { SonyID_ILCE_9, "ILCE-9"}, |
| { SonyID_ILCE_6500, "ILCE-6500"}, |
| { SonyID_ILCE_7RM3, "ILCE-7RM3"}, |
| { SonyID_ILCE_7M3, "ILCE-7M3"}, |
| { SonyID_DSC_RX0, "DSC-RX0"}, |
| { SonyID_DSC_RX10M4, "DSC-RX10M4"}, |
| { SonyID_DSC_RX100M6, "DSC-RX100M6"}, |
| { SonyID_DSC_HX99, "DSC-HX99"}, |
| { SonyID_DSC_RX100M5A, "DSC-RX100M5A"}, |
| { SonyID_ILCE_6400, "ILCE-6400"}, |
| { SonyID_DSC_RX0M2, "DSC-RX0M2"}, |
| { SonyID_DSC_HX95, "DSC-HX95"}, |
| { SonyID_DSC_RX100M7, "DSC-RX100M7"}, |
| { SonyID_ILCE_7RM4, "ILCE-7RM4"}, |
| { SonyID_ILCE_9M2, "ILCE-9M2"}, |
| { SonyID_ILCE_6600, "ILCE-6600"}, |
| { SonyID_ILCE_6100, "ILCE-6100"}, |
| { SonyID_ZV_1, "ZV-1"}, |
| { SonyID_ILCE_7C, "ILCE-7C"}, |
| { SonyID_ZV_E10, "ZV-E10"}, |
| { SonyID_ILCE_7SM3, "ILCE-7SM3"}, |
| { SonyID_ILCE_1, "ILCE-1"}, |
| { SonyID_ILME_FX3, "ILME-FX3"}, |
| { SonyID_ILCE_7RM3A, "ILCE-7RM3A"}, |
| { SonyID_ILCE_7RM4A, "ILCE-7RM4A"}, |
| { SonyID_ILCE_7M4, "ILCE-7M4"}, |
| |
| // Sony ZV-1F doesn't save raw |
| // { SonyID_ZV_1F, "ZV-1F"}, |
| |
| { SonyID_ILCE_7RM5, "ILCE-7RM5"}, |
| { SonyID_ILME_FX30, "ILME-FX30"}, |
| { SonyID_ILCE_9M3, "ILCE-9M3"}, |
| { SonyID_ZV_E1, "ZV-E1"}, |
| { SonyID_ILCE_6700, "ILCE-6700"}, |
| { SonyID_ZV_1M2, "ZV-1M2"}, |
| { SonyID_ILCE_7CR, "ILCE-7CR"}, |
| { SonyID_ILCE_7CM2, "ILCE-7CM2"}, |
| { SonyID_ILX_LR1, "ILX-LR1"}, |
| { SonyID_ZV_E10M2, "ZV-E10M2"}, |
| { SonyID_ILME_FX2, "ILME-FX2"}, |
| }; |
| |
| static const char *orig; |
| |
| static const char fujialias[][16] = { |
| "@DBP for GX680", "DX-2000", |
| "@F500EXR", "F505EXR", |
| "@F600EXR", "F605EXR", |
| "@F770EXR", "F775EXR", |
| "@HS10", "HS10 HS11", |
| "@HS20EXR", "HS22EXR", |
| "@HS30EXR", "HS33EXR", "HS35EXR", |
| "@S5100", "S5500", |
| "@S5200", "S5600", |
| "@S6000fd", "S6500fd", |
| "@S9000", "S9500", |
| "@S9100", "S9600", |
| "@S200EXR", "S205EXR", |
| "@X-T1 IR", "X-T1IR", |
| "@GFX 100 II", "GFX100 II", |
| "@GFX 100S II", "GFX100S II", |
| "@GFX 100S", "GFX100S", |
| "@GFX 50S II", "GFX50S II" |
| }; |
| |
| static const char kodakalias[][16] = { |
| "@DCS Pro 14N", "Camerz ZDS 14", // Camerz rebadge make: "Photo Control" |
| "@DCS720X", "SCS2000", |
| "@DCS520C", "EOS D2000C", "EOS D2000", // EOS rebadge make: Canon |
| "@DCS560C", "EOS D6000C", "EOS D6000", // EOS rebadge make: Canon |
| "@DCS460M", "DCS460A", // 'A' was supposed to stand for 'achromatic', marketing changed it to 'M' |
| "@DCS460", "DCS460C", "DCS460D", |
| "@DCS465", "DCS465C", "DCS465D", |
| "@EOSDCS1", "EOSDCS1B", "EOSDCS1C", |
| "@EOSDCS3", "EOSDCS3B", "EOSDCS3C", |
| }; |
| |
| static const struct |
| { |
| const char *Kmodel; |
| ushort mount; |
| } Kodak_mounts[] = { |
| {"DCS465", LIBRAW_MOUNT_DigitalBack}, |
| {"DCS5", LIBRAW_MOUNT_Canon_EF}, |
| {"DCS Pro SLR/c", LIBRAW_MOUNT_Canon_EF}, |
| {"DCS", LIBRAW_MOUNT_Nikon_F}, |
| {"EOS", LIBRAW_MOUNT_Canon_EF}, |
| {"NC2000", LIBRAW_MOUNT_Nikon_F}, // AP "News Camera" |
| {"Pixpro S-1", LIBRAW_MOUNT_mFT}, |
| {"ProBack", LIBRAW_MOUNT_DigitalBack}, |
| {"SCS1000", LIBRAW_MOUNT_Canon_EF}, |
| }; |
| |
| static const char *KodakMonochrome[] = { |
| "DCS420M", "DCS420A", "DCS420I", |
| "DCS460M", "DCS460A", "DCS460I", |
| "DCS465M", "DCS465A", "DCS465I", |
| "DCS560M", "DCS660M", "DCS760M", "EOS D2000M", "EOS D6000M", |
| "EOSDCS1M", "EOSDCS1I", |
| "EOSDCS3M", "EOSDCS3I", |
| "EOSDCS5M", "EOSDCS5I", |
| "NC2000M", "NC2000A", "NC2000I", |
| }; |
| |
| static const char leafalias[][16] = { |
| // Leaf re-badged to Mamiya |
| "@Aptus-II 5", "DM22", |
| "@Aptus-II 6", "DM28", |
| "@Aptus-II 7", "DM33", |
| "@Aptus-II 8", "DM40", |
| "@Aptus-II 10", "DM56", |
| }; |
| |
| static const char KonicaMinolta_aliases[][24] = { |
| "@DG-5D", "DYNAX 5D", "MAXXUM 5D", "ALPHA-5 DIGITAL", "ALPHA SWEET DIGITAL", |
| "@DG-7D", "DYNAX 7D", "MAXXUM 7D", "ALPHA-7 DIGITAL", |
| }; |
| |
| static const char nikonalias[][16] = { |
| "@COOLPIX 2100", "E2100", "@COOLPIX 2500", "E2500", |
| "@COOLPIX 3200", "E3200", "@COOLPIX 3700", "E3700", |
| "@COOLPIX 4300", "E4300", "@COOLPIX 4500", "E4500", |
| "@COOLPIX 5000", "E5000", "@COOLPIX 5400", "E5400", |
| "@COOLPIX 5700", "E5700", "@COOLPIX 8400", "E8400", |
| "@COOLPIX 8700", "E8700", "@COOLPIX 8800", "E8800", |
| "@COOLPIX 700", "E700", "@COOLPIX 800", "E800", |
| "@COOLPIX 880", "E880", "@COOLPIX 900", "E900", |
| "@COOLPIX 950", "E950", "@COOLPIX 990", "E990", |
| "@COOLPIX 995", "E995", "@COOLPIX P7700", "COOLPIX Deneb", |
| "@COOLPIX P7800", "COOLPIX Kalon", |
| }; |
| |
| static const char olyalias[][32] = { // Olympus |
| "@AIR A01", "AIR-A01", |
| "@C-3030Z", "C3030Z", |
| "@C-5050Z", "C5050Z", |
| "@C-5060WZ", "C5060WZ", |
| "@C-7000Z", "C7000Z", "C70Z,C7000Z", "C70Z", |
| "@C-7070WZ", "C7070WZ", |
| "@C-8080WZ", "C8080WZ", |
| "@C-350Z", "C350Z", "X200,D560Z,C350Z", "X200", "D560Z", |
| "@C-740UZ", "C740UZ", |
| "@C-770UZ", "C770UZ", |
| "@E-20", "E-20,E-20N,E-20P", "E-20N", "E-20P", |
| "@E-M10 Mark II", "E-M10MarkII", "E-M10_M2", "piX 5oo", |
| "@E-M10 Mark III", "E-M10MarkIII", "E-M10_M3", |
| "@E-M10 Mark IV", "E-M10MarkIV", "E-M10_M4", |
| "@E-M1 Mark II", "E-M1MarkII", "E-M1_M2", |
| "@E-M1 Mark III", "E-M1MarkIII", "E-M1_M3", |
| "@E-M5 Mark II", "E-M5MarkII", "E-M5_M2", |
| "@E-M5 Mark III", "E-M5MarkIII", "E-M5_M3", |
| "@OM-1 Mark II", "OM-1MarkII", "OM-1_M2", |
| "@SH-2", "SH-3", |
| "@SP-310", "SP310", |
| "@SP-320", "SP320", |
| "@SP-350", "SP350", |
| "@SP-500UZ", "SP500UZ", |
| "@SP-510UZ", "SP510UZ", |
| "@SP-550UZ", "SP550UZ", |
| "@SP-560UZ", "SP560UZ", |
| "@SP-565UZ", "SP565UZ", |
| "@SP-570UZ", "SP570UZ", |
| "@Stylus 1", "STYLUS1", "STYLUS1s", "STYLUS1,1s", |
| }; |
| |
| static const char panalias[][16] = { // Panasonic, PanaLeica |
| // fixed lens |
| "@DMC-FX150", "DMC-FX180", |
| "@DC-FZ1000M2", "DC-FZ10002", "V-Lux 5", |
| "@DMC-FZ1000", "V-LUX (Typ 114)", |
| "@DMC-FZ2500", "DMC-FZ2000", "DMC-FZH1", |
| "@DMC-FZ100", "V-LUX 2", |
| "@DMC-FZ150", "V-LUX 3", |
| "@DMC-FZ200", "V-LUX 4", |
| "@DMC-FZ300", "DMC-FZ330", |
| "@DMC-FZ35", "DMC-FZ38", |
| "@DMC-FZ40", "DMC-FZ42", "DMC-FZ45", "DC-FZ40", "DC-FZ42", "DC-FZ45", |
| "@DMC-FZ50", "V-LUX 1", "V-LUX1", |
| "@DMC-FZ70", "DMC-FZ72", |
| "@DC-FZ80", "DC-FZ81", "DC-FZ82", "DC-FZ83", "DC-FZ85", |
| "@DMC-LC1", "DIGILUX 2", "Digilux 2", "DIGILUX2", |
| "@DMC-LF1", "C (Typ 112)", |
| "@DC-LX100M2", "D-Lux 7", |
| "@DMC-LX100", "D-LUX (Typ 109)", "D-Lux (Typ 109)", |
| "@DMC-LX1", "D-Lux2", "D-LUX2", "D-LUX 2", |
| "@DMC-LX2", "D-LUX 3", "D-LUX3", |
| "@DMC-LX3", "D-LUX 4", |
| "@DMC-LX5", "D-LUX 5", |
| "@DMC-LX7", "D-LUX 6", |
| "@DMC-LX9", "DMC-LX10", "DMC-LX15", |
| "@DMC-ZS100", "DMC-ZS110", "DMC-TZ100", "DMC-TZ101", "DMC-TZ110", "DMC-TX1", |
| "@DC-ZS200", "DC-ZS220", "DC-TZ200", "DC-TZ202", "DC-TZ220", "DC-TZ200D", "DC-TZ202D", "DC-TZ220D", "DC-ZS200D", "DC-ZS220D" "DC-TX2", "C-Lux", "CAM-DC25", |
| "@DMC-ZS40", "DMC-TZ60", "DMC-TZ61", |
| "@DMC-ZS50", "DMC-TZ70", "DMC-TZ71", |
| "@DMC-ZS60", "DMC-TZ80", "DMC-TZ81", "DMC-TZ82", "DMC-TZ85", |
| "@DC-ZS70", "DC-TZ90", "DC-TZ91", "DC-TZ92", "DC-TZ93", |
| "@DC-ZS80", "DC-TZ95", "DC-TZ96", "DC-TZ97", |
| |
| // interchangeable lens |
| "@DC-G100", "DC-G110", |
| "@DC-G99", "DC-G90", "DC-G91", "DC-G95", |
| "@DMC-G7", "DMC-G70", |
| "@DMC-G8", "DMC-G80", "DMC-G81", "DMC-G85", |
| "@DMC-GH4", "AG-GH4", "CGO4", |
| "@DC-GF10", "DC-GF90", "DC-GX880", |
| "@DC-GF9", "DC-GX850", "DC-GX800", |
| "@DMC-GM1", "DMC-GM1S", |
| "@DMC-GX85", "DMC-GX80", "DMC-GX7MK2", |
| "@DC-GX9", "DC-GX7MK3", |
| "@DMC-L1", "DIGILUX 3", "DIGILUX3", // full 4/3 mount, not m43 |
| }; |
| |
| static const char phase1alias[][16] = { |
| "@H20", "H 20", |
| "@H25", "H 25", |
| "@P20+", "P 20+", |
| "@P20", "P 20", |
| "@P21+", "P 21+", "M18", // "Mamiya M18" |
| "@P21", "P 21", |
| "@P25+", "P 25+", "M22", // "Mamiya M22" |
| "@P25", "P 25", |
| "@P30+", "P 30+", "M31", // "Mamiya M31" |
| "@P30", "P 30", |
| "@P40+", "P 40+", |
| "@P40", "P 40", |
| "@P45+", "P 45+", |
| "@P45", "P 45", |
| "@P65+", "P 65+", |
| "@P65", "P 65", |
| }; |
| |
| static const char SamsungPentax_aliases[][16] = { |
| "@*istDL2", "*ist DL2", "GX-1L", |
| "@*istDS2", "*ist DS2", "GX-1S", |
| "@*istDL", "*ist DL", |
| "@*istDS", "*ist DS", |
| "@*istD", "*ist D", |
| "@K10D", "GX10", "GX-10", |
| "@K20D", "GX20", "GX-20", |
| "@K-m", "K2000", |
| }; |
| |
| static const char samsungalias[][64] = { |
| "@EX1", "TL500", |
| "@NX U", "EK-GN100", "EK-GN110", "EK-GN120", "EK-KN120", "Galaxy NX", |
| "@NX mini", "NXF1", |
| "@WB2000", "TL350", |
| // "@WB5000", "WB5000/HZ25W", // no spaces around the slash separating names |
| // "@WB5500", "WB5500 / VLUU WB5500 / SAMSUNG HZ50W", |
| // "@WB500", "WB510 / VLUU WB500 / SAMSUNG HZ10W", |
| // "@WB550", "WB560 / VLUU WB550 / SAMSUNG HZ15W", |
| // "@WB650", "SAMSUNG WB650 / VLUU WB650 / SAMSUNG WB660" aka HZ35W |
| }; |
| |
| //clang-format on |
| if (makeIs(LIBRAW_CAMERAMAKER_VLUU)) { |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_Samsung); |
| } |
| |
| if (makeIs(LIBRAW_CAMERAMAKER_Samsung) && |
| (ilm.CameraMount == LIBRAW_MOUNT_Pentax_K)) { |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_Pentax); |
| |
| } else if (makeIs(LIBRAW_CAMERAMAKER_Unknown)) { |
| if (strcasestr(model, "Google")) { |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_Google); |
| } |
| #ifdef USE_6BY9RPI |
| else if(strcasestr(make,"RaspberryPi")) |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_RaspberryPi); |
| #endif |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Hasselblad) && is_Sony) |
| { |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_Sony); |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_OmDigital)) |
| { |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_Olympus); |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Clauss) && (OlyID == OlyID_E_M10_Mark_II)) |
| { |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_Olympus); |
| } else if (makeIs(LIBRAW_CAMERAMAKER_Canon) && |
| (!strncmp(model, "EOS D2000", 9) || // don't use unique_id here |
| !strncmp(model, "EOS D6000", 9) || // because ids for Monochrome models are unknown |
| !strncmp(model, "EOSDCS", 6))) { |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_Kodak); |
| // if (unique_id == CanonID_EOS_D2000C) { |
| // |
| // } else if (unique_id == CanonID_EOS_D6000C) { |
| /// |
| // } |
| |
| } else if (makeIs(LIBRAW_CAMERAMAKER_PhotoControl) && |
| !strncasecmp(model, "Camerz ZDS 14", 13)) { |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_Kodak); |
| |
| } else { |
| strcpy(normalized_make, make); |
| } |
| |
| if (makeIs(LIBRAW_CAMERAMAKER_Apple)) { |
| if ((imgdata.color.UniqueCameraModel[0]) && |
| (!strncmp(model, "iPad", 4) || !strncmp(model, "iPhone", 6))) |
| strcpy(model, imgdata.color.UniqueCameraModel); |
| |
| } else if (makeIs(LIBRAW_CAMERAMAKER_Kodak)) { |
| if ((model[6] == ' ') && |
| (!strncmp(model, "DCS4", 4) || |
| !strncmp(model, "NC2000", 6))) |
| { |
| model[6] = 0; |
| } |
| if ((model[6] != 'A') && |
| (model[6] != 'I') && |
| (model[6] != 'M') && |
| !strncmp(model, "NC2000", 6)) |
| { |
| model[6] = 0; |
| } |
| } |
| |
| else if (makeIs(LIBRAW_CAMERAMAKER_Ricoh) && |
| !strncmp(model, "GXR", 3)) { |
| strcpy(ilm.body, "Ricoh GXR"); |
| if (!imgdata.lens.Lens[0] && imgdata.color.UniqueCameraModel[0]) { |
| strcpy (imgdata.lens.Lens, imgdata.color.UniqueCameraModel); |
| remove_caseSubstr (imgdata.lens.Lens, (char *)"Ricoh"); |
| remove_caseSubstr (imgdata.lens.Lens, (char *)"Lens"); |
| removeExcessiveSpaces (imgdata.lens.Lens); |
| } |
| if (ilm.LensID == LIBRAW_LENS_NOT_SET) { |
| if (strstr(imgdata.lens.Lens, "50mm")) |
| ilm.LensID = 1; |
| else if (strstr(imgdata.lens.Lens, "S10")) |
| ilm.LensID = 2; |
| else if (strstr(imgdata.lens.Lens, "P10")) |
| ilm.LensID = 3; |
| else if (strstr(imgdata.lens.Lens, "28mm")) |
| ilm.LensID = 5; |
| else if (strstr(imgdata.lens.Lens, "A16")) |
| ilm.LensID = 6; |
| } |
| switch (ilm.LensID) { |
| case 1: // GR Lens A12 50mm F2.5 Macro |
| strcpy(model, "GXR A12 50mm"); |
| ilm.CameraFormat = ilm.LensFormat = LIBRAW_FORMAT_APSC; |
| ilm.CameraMount = LIBRAW_MOUNT_RicohModule; |
| ilm.LensMount = LIBRAW_MOUNT_FixedLens; |
| ilm.FocalType = LIBRAW_FT_PRIME_LENS; |
| break; |
| case 2: |
| strcpy(model, "GXR S10"); |
| ilm.CameraFormat = ilm.LensFormat = LIBRAW_FORMAT_1div1p7INCH; |
| ilm.CameraMount = LIBRAW_MOUNT_RicohModule; |
| ilm.LensMount = LIBRAW_MOUNT_FixedLens; |
| ilm.FocalType = LIBRAW_FT_ZOOM_LENS; |
| break; |
| case 3: // Ricoh Lens P10 28-300mm F3.5-5.6 VC |
| strcpy(model, "GXR P10"); |
| ilm.CameraFormat = ilm.LensFormat = LIBRAW_FORMAT_1div2p3INCH; |
| ilm.CameraMount = LIBRAW_MOUNT_RicohModule; |
| ilm.LensMount = LIBRAW_MOUNT_FixedLens; |
| ilm.FocalType = LIBRAW_FT_ZOOM_LENS; |
| break; |
| case 5: // GR Lens A12 28mm F2.5 |
| strcpy(model, "GXR A12 28mm"); |
| ilm.CameraFormat = ilm.LensFormat = LIBRAW_FORMAT_APSC; |
| ilm.CameraMount = LIBRAW_MOUNT_RicohModule; |
| ilm.LensMount = LIBRAW_MOUNT_FixedLens; |
| ilm.FocalType = LIBRAW_FT_PRIME_LENS; |
| break; |
| case 6: // Ricoh Lens A16 24-85mm F3.5-5.5 |
| strcpy(model, "GXR A16"); |
| ilm.CameraFormat = ilm.LensFormat = LIBRAW_FORMAT_APSC; |
| ilm.CameraMount = LIBRAW_MOUNT_RicohModule; |
| ilm.LensMount = LIBRAW_MOUNT_FixedLens; |
| ilm.FocalType = LIBRAW_FT_ZOOM_LENS; |
| break; |
| case 8: // Ricoh Mount A12 (Leica M lenses) |
| strcpy(model, "GXR Mount A12"); |
| ilm.CameraFormat = LIBRAW_FORMAT_APSC; |
| ilm.CameraMount = LIBRAW_MOUNT_Leica_M; |
| ilm.LensID = LIBRAW_LENS_NOT_SET; |
| break; |
| } |
| } |
| |
| strcpy(normalized_model, model); |
| |
| if (makeIs(LIBRAW_CAMERAMAKER_Canon)) |
| { |
| if (unique_id) |
| { |
| if ((unique_id != CanonID_EOS_D2000C) && |
| (unique_id != CanonID_EOS_D6000C)) |
| { |
| for (i = 0; i < int(sizeof unique / sizeof *unique); i++) |
| { |
| if (unique_id == unique[i].id) |
| { |
| if (!strcmp(model, "EOS Ra")) { |
| strcpy(normalized_model, model); |
| } else { |
| strcpy(model, unique[i].t_model); |
| strcpy(normalized_model, unique[i].t_model); |
| } |
| break; |
| } |
| } |
| } |
| } |
| else |
| { |
| if ((dng_version) && |
| (strlen(imgdata.color.UniqueCameraModel) > 6) && |
| strncmp(imgdata.color.UniqueCameraModel+6, "PowerShot", 9)) |
| { |
| if (!strcmp(model, "EOS Ra")) { |
| ilm.CamID = unique_id = CanonID_EOS_R; |
| strcpy(normalized_model, model); |
| // try_xml = 1; // ?? |
| } else { |
| for (i = 0; i < int(sizeof unique / sizeof *unique); i++) |
| { |
| if (!strcmp(unique[i].t_model, imgdata.color.UniqueCameraModel+6)) |
| { |
| ilm.CamID = unique_id = unique[i].id; |
| strcpy(normalized_model, unique[i].t_model); |
| try_xml = 1; |
| break; |
| } |
| } |
| } |
| } |
| } |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Fujifilm)) |
| { |
| for (i = 0; i < int(sizeof fujialias / sizeof *fujialias); i++) |
| { |
| if (fujialias[i][0] == '@') |
| { |
| orig = fujialias[i] + 1; |
| if (!strcmp(model, orig)) break; |
| } |
| else if (!strcmp(model, fujialias[i])) |
| { |
| strcpy(normalized_model, orig); |
| break; |
| } |
| } |
| |
| } else if (makeIs(LIBRAW_CAMERAMAKER_Hasselblad)) { |
| parseHassyModel(); |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Mamiya)) |
| { |
| for (i = 0; i < int(sizeof phase1alias / sizeof *phase1alias); i++) |
| { // re-badged Phase One backs |
| if (phase1alias[i][0] == '@') orig = phase1alias[i] + 1; |
| else if (!strcmp(model, phase1alias[i])) |
| { |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_PhaseOne); |
| strcpy(normalized_model, orig); |
| break; |
| } |
| } |
| for (i = 0; i < int(sizeof leafalias / sizeof *leafalias); i++) |
| { // re-badged Leaf backs |
| if (leafalias[i][0] == '@') orig = leafalias[i] + 1; |
| else if (!strcmp(model, leafalias[i])) |
| { |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_Leaf); |
| strcpy(normalized_model, orig); |
| break; |
| } |
| } |
| |
| /* repeating, because make for some Mamiya re-badged Leaf backs is set to |
| * Leaf */ |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Leaf)) |
| { |
| for (i = 0; i < int(sizeof leafalias / sizeof *leafalias); i++) |
| { // re-badged Leaf backs |
| if (leafalias[i][0] == '@') |
| { |
| orig = leafalias[i] + 1; |
| if (!strcmp(model, orig)) break; |
| } |
| else if (!strcmp(model, leafalias[i])) |
| { // maybe to change regular "make" to "Mamiya" too |
| strcpy(normalized_model, orig); |
| break; |
| } |
| } |
| if ((ps = strchr(normalized_model, '('))) |
| *ps = 0; |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Minolta) || |
| makeIs(LIBRAW_CAMERAMAKER_Konica)) |
| { |
| if (makeIs(LIBRAW_CAMERAMAKER_Konica) && !strncasecmp(model, "DiMAGE", 6)) |
| { |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_Minolta); |
| strcpy(make, "Minolta"); |
| } |
| else |
| { |
| for (i = 0; |
| i<int(sizeof KonicaMinolta_aliases / sizeof *KonicaMinolta_aliases); |
| i++) |
| { |
| if (KonicaMinolta_aliases[i][0] == '@') |
| { |
| orig = KonicaMinolta_aliases[i] + 1; |
| if (!strcmp(model, orig)) |
| { |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_Minolta); |
| strcpy(make, "Minolta"); |
| break; |
| } |
| } |
| else if (!strcasecmp(model, KonicaMinolta_aliases[i])) |
| { |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_Minolta); |
| strcpy(make, "Minolta"); |
| strcpy(normalized_model, orig); |
| break; |
| } |
| } |
| } |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Nikon)) |
| { |
| for (i = 0; i < int(sizeof nikonalias / sizeof *nikonalias); i++) |
| { |
| if (nikonalias[i][0] == '@') |
| { |
| orig = nikonalias[i] + 1; |
| if (!strcmp(model, orig)) break; |
| } |
| else if (!strcmp(model, nikonalias[i])) |
| { |
| strcpy(normalized_model, orig); |
| break; |
| } |
| } |
| |
| } else if (makeIs(LIBRAW_CAMERAMAKER_Olympus)) { |
| for (i = 0; i < int(sizeof olyalias / sizeof *olyalias); i++) { |
| if (olyalias[i][0] == '@') { |
| orig = olyalias[i] + 1; |
| if (!strcmp(model, orig)) break; |
| } else if (!strcmp(model, olyalias[i])) { |
| strcpy(normalized_model, orig); |
| break; |
| } |
| } |
| |
| if (!OlyID) { |
| if (!strcmp(normalized_model, "C-740UZ")) { |
| ilm.CamID = OlyID = unique_id = OlyID_C_740UZ; |
| |
| } else if (!strcmp(normalized_model, "C-770UZ")) { |
| ilm.CamID = OlyID = unique_id = OlyID_C_770UZ; |
| } |
| } |
| |
| } else if (makeIs(LIBRAW_CAMERAMAKER_Panasonic) || |
| makeIs(LIBRAW_CAMERAMAKER_Leica) || |
| makeIs(LIBRAW_CAMERAMAKER_Yuneec)) |
| { |
| for (i = 0; i < int(sizeof panalias / sizeof *panalias); i++) |
| { |
| if (panalias[i][0] == '@') |
| { |
| orig = panalias[i] + 1; |
| if (!strcmp(model, orig)) break; |
| } |
| else if (!strcmp(model, panalias[i])) |
| { |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_Panasonic); |
| strcpy(normalized_model, orig); |
| break; |
| } |
| } |
| } else if (makeIs(LIBRAW_CAMERAMAKER_Pentax)) { |
| if (!unique_id) { |
| if (!strcmp(model, "Optio S")) { |
| ilm.CamID = unique_id = PentaxID_Optio_S; |
| } else if (!strcmp(model, "Optio S V1.01")) { |
| ilm.CamID = unique_id = PentaxID_Optio_S_V101; |
| } else if (!strcmp(model, "Optio S4")) { |
| ilm.CamID = unique_id = PentaxID_Optio_S4; |
| } else if (!strcmp(model, "Optio 750Z")) { |
| ilm.CamID = unique_id = PentaxID_Optio_750Z; |
| } else if (!strcmp(model, "Optio 33WR")) { |
| ilm.CamID = unique_id = PentaxID_Optio_33WR; |
| } |
| } |
| |
| for (i = 0; |
| i < int(sizeof SamsungPentax_aliases / sizeof *SamsungPentax_aliases); |
| i++) { |
| if (SamsungPentax_aliases[i][0] == '@') { |
| orig = SamsungPentax_aliases[i] + 1; |
| if (!strcmp(model, orig)) break; |
| } else if (!strcmp(model, SamsungPentax_aliases[i])) { |
| strcpy(normalized_model, orig); |
| break; |
| } |
| } |
| if (!strncmp(model, "GR", 2)) { |
| setMakeFromIndex(LIBRAW_CAMERAMAKER_Ricoh); |
| strcpy(make, "Ricoh"); |
| } |
| |
| } else if (makeIs(LIBRAW_CAMERAMAKER_PhaseOne)) |
| { |
| for (i = 0; i < int(sizeof phase1alias / sizeof *phase1alias); i++) |
| { |
| if (phase1alias[i][0] == '@') |
| { |
| orig = phase1alias[i] + 1; |
| if (!strcmp(model, orig)) break; |
| } |
| else if (!strcmp(model, phase1alias[i])) |
| { |
| strcpy(normalized_model, orig); |
| break; |
| } |
| } |
| if (strstr(imPhaseOne.FirmwareString, "Achromatic")) |
| { |
| colors = 1; |
| filters = 0; |
| } |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Samsung)) |
| { |
| j = 0; |
| if (strstr(model, "WB5500") || strstr(model, "HZ50W")) |
| { |
| strcpy(model, "WB5500"); |
| j++; |
| } |
| else if (strstr(model, "WB5000") || strstr(model, "HZ25W")) |
| { |
| strcpy(model, "WB5000"); |
| j++; |
| } |
| else if (strstr(model, "WB550") || strstr(model, "HZ15W")) |
| { |
| strcpy(model, "WB550"); |
| j++; |
| } |
| else if (strstr(model, "WB500") || strstr(model, "HZ10W")) |
| { |
| strcpy(model, "WB500"); |
| j++; |
| } |
| if (j) |
| { |
| strcpy(normalized_model, model); |
| } |
| else |
| { |
| for (i = 0; i < int(sizeof samsungalias / sizeof *samsungalias); i++) |
| { |
| if (samsungalias[i][0] == '@') |
| { |
| orig = samsungalias[i] + 1; |
| if (!strcmp(model, orig)) break; |
| } |
| else if (!strcmp(model, samsungalias[i])) |
| { |
| strcpy(normalized_model, orig); |
| break; |
| } |
| } |
| } |
| |
| } else if (makeIs(LIBRAW_CAMERAMAKER_Sony)) { |
| if (unique_id) |
| { |
| for (i = 0; i < int(sizeof sonique / sizeof *sonique); i++) |
| { |
| if (unique_id == sonique[i].id) |
| { |
| if (!strcmp(make, "Sony")) |
| strcpy(model, sonique[i].t_model); |
| strcpy(normalized_model, sonique[i].t_model); |
| break; |
| } |
| } |
| } |
| |
| /* |
| char pgroup9050 = '-'; |
| char cameratype[16] = "unknown"; |
| switch (imSony.CameraType) { |
| case LIBRAW_SONY_DSC: strcpy(cameratype, "DSC"); break; |
| case LIBRAW_SONY_DSLR: strcpy(cameratype, "DSLR"); break; |
| case LIBRAW_SONY_NEX: strcpy(cameratype, "NEX"); break; |
| case LIBRAW_SONY_SLT: strcpy(cameratype, "SLT"); break; |
| case LIBRAW_SONY_ILCE: strcpy(cameratype, "ILCE"); break; |
| case LIBRAW_SONY_ILCA: strcpy(cameratype, "ILCA"); break; |
| } |
| switch (imSony.group9050) { |
| case LIBRAW_SONY_Tag9050a: |
| pgroup9050 = 'a'; |
| break; |
| case LIBRAW_SONY_Tag9050b: |
| pgroup9050 = 'b'; |
| break; |
| case LIBRAW_SONY_Tag9050c: |
| pgroup9050 = 'c'; |
| break; |
| case LIBRAW_SONY_Tag9050d: |
| pgroup9050 = 'd'; |
| break; |
| } |
| printf("catchme\t%s\t%s\t%s\t9050%c\t%d\t%d\n", |
| model, normalized_model, cameratype, pgroup9050, imSony.len_group9050, imSony.FileFormat); |
| */ |
| |
| } else if (makeIs(LIBRAW_CAMERAMAKER_Kodak)) { |
| remove_caseSubstr (normalized_model, (char *)"EasyShare"); |
| remove_caseSubstr (normalized_model, (char *)"ZOOM"); |
| removeExcessiveSpaces (normalized_model); |
| for (i = 0; i < int(sizeof kodakalias / sizeof *kodakalias); i++) |
| { |
| if (kodakalias[i][0] == '@') |
| { |
| orig = kodakalias[i] + 1; |
| if (!strcmp(model, orig)) break; |
| } |
| else if (!strcmp(model, kodakalias[i])) |
| { |
| strcpy(normalized_model, orig); |
| break; |
| } |
| } |
| |
| if (strstr(model, "DC25")) |
| { |
| strcpy(model, "DC25"); |
| strcpy(normalized_model, model); |
| } |
| else if (!strcmp(model, "40")) |
| { |
| strcpy(model, "DC40"); |
| strcpy(normalized_model, model); |
| } |
| else if (strstr(model, "DC50")) |
| { |
| strcpy(model, "DC50"); |
| strcpy(normalized_model, model); |
| } |
| else if (strstr(model, "DC120")) |
| { |
| strcpy(model, "DC120"); |
| strcpy(normalized_model, model); |
| } |
| |
| for (i = 0; i < int(sizeof KodakMonochrome / sizeof *KodakMonochrome); i++) |
| { |
| if (!strncmp(model, KodakMonochrome[i], strlen(KodakMonochrome[i]))) |
| { |
| colors = 1; |
| filters = 0; |
| } |
| } |
| } |
| |
| if (ilm.body[0]) |
| { |
| if ((ilm.CameraMount != LIBRAW_MOUNT_Hasselblad_V) && |
| !strncmp(ilm.body, "Hasselblad ", 11) && |
| ((ilm.body[11] == 'C') || (ilm.body[11] == '2') || |
| (ilm.body[11] == '5') || (ilm.body[11] == '9'))) |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_66; |
| ilm.CameraMount = LIBRAW_MOUNT_Hasselblad_V; |
| } |
| else if (!strncmp(ilm.body, "XF", 2) || !strncmp(ilm.body, "645DF", 5)) |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_Mamiya645; |
| ilm.CameraFormat = LIBRAW_FORMAT_645; |
| } |
| else if (!strncmp(ilm.body, "Sinarcam", 2)) |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_LF; |
| ilm.CameraFormat = LIBRAW_FORMAT_LF; |
| strcat(ilm.body, " shutter system"); |
| } |
| } |
| |
| if (makeIs(LIBRAW_CAMERAMAKER_Kodak)) |
| { |
| if (((ilm.CameraMount == LIBRAW_MOUNT_DigitalBack) || |
| (ilm.CameraMount == LIBRAW_MOUNT_Unknown)) && |
| !strncmp(model2, "PB645", 5)) |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_645; |
| if (model2[5] == 'C') |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_Contax645; |
| strcpy(ilm.body, "Contax 645"); |
| } |
| else if (model2[5] == 'H') |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_Hasselblad_H; |
| strcpy(ilm.body, "Hasselblad H1/H2"); |
| } |
| else if (model2[5] == 'M') |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_Mamiya645; |
| strcpy(ilm.body, "Mamiya 645"); |
| } |
| |
| } else if (!strncasecmp(model, "PIXPRO S-1", 10)) { |
| ilm.CameraFormat = LIBRAW_FORMAT_FT; |
| } else if (!strncasecmp(model, "PIXPRO ", 7)) { |
| ilm.CameraFormat = LIBRAW_FORMAT_1div2p3INCH; |
| } |
| } |
| |
| else if (makeIs(LIBRAW_CAMERAMAKER_Fujifilm)) |
| { |
| if (!strncmp(normalized_model, "DBP", 3)) |
| { |
| strcpy(ilm.body, "Fujifilm GX680"); |
| } |
| } |
| |
| if ((ilm.CameraFormat == LIBRAW_FORMAT_Unknown) || |
| (ilm.CameraMount == LIBRAW_MOUNT_Unknown) || |
| (ilm.CameraMount == LIBRAW_MOUNT_IL_UM)) |
| { |
| |
| if (makeIs(LIBRAW_CAMERAMAKER_Canon)) |
| { |
| if (strncmp(normalized_model, "EOS", 3)) |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_FixedLens; |
| } |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Nikon)) |
| { |
| if (normalized_model[0] == 'D') |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_Nikon_F; |
| } |
| else |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_FixedLens; |
| } |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Panasonic)) |
| { |
| if (!strncmp(normalized_model, "DC-S", 4)) |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_FF; |
| ilm.CameraMount = LIBRAW_MOUNT_LPS_L; |
| } |
| else if (!strncmp(normalized_model, "DMC-L1", 6) || |
| !strncmp(normalized_model, "DMC-L10", 7)) |
| { |
| ilm.CameraFormat = ilm.CameraMount = LIBRAW_FORMAT_FT; |
| } |
| else if (!strncmp(normalized_model + 2, "-G", 2) || |
| !strncmp(normalized_model + 3, "-G", 2)) |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_FT; |
| ilm.CameraMount = LIBRAW_MOUNT_mFT; |
| } |
| else |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_FixedLens; |
| ilm.FocalType = LIBRAW_FT_ZOOM_LENS; |
| if (!strncmp(normalized_model + 2, "-LX100", 6) || // DC-LX100M2 |
| !strncmp(normalized_model + 3, "-LX100", 6)) |
| { // DMC-LX100 |
| ilm.CameraFormat = ilm.LensFormat = LIBRAW_FORMAT_FT; |
| } |
| else if (!strncmp(normalized_model, "DMC-CM1", 7)) |
| { |
| ilm.FocalType = LIBRAW_FT_PRIME_LENS; |
| } |
| } |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Fujifilm)) |
| { |
| if (!strncmp(normalized_model, "GFX ", 4)) |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_CROP645; |
| ilm.CameraMount = LIBRAW_MOUNT_Fuji_GF; |
| } |
| else if (!strncmp(normalized_model, "X-", 2) && |
| (strncmp(normalized_model, "X-S1", 4) || |
| !strncmp(normalized_model, "X-S10", 5) || |
| !strncmp(normalized_model, "X-S20", 5))) |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_APSC; |
| ilm.CameraMount = LIBRAW_MOUNT_Fuji_X; |
| } |
| else if (((normalized_model[0] == 'S') && // S2Pro, S3Pro, S5Pro |
| (normalized_model[2] == 'P')) || |
| !strncasecmp(normalized_model, "IS Pro", 6)) |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_APSC; |
| ilm.CameraMount = LIBRAW_MOUNT_Nikon_F; |
| } |
| else if (!strncmp(normalized_model, "DBP", 3)) |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_68; |
| ilm.CameraMount = LIBRAW_MOUNT_Fuji_GX; |
| } |
| else |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_FixedLens; |
| } |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Samsung)) |
| { |
| if ((normalized_model[0] == 'N') && |
| (normalized_model[1] == 'X')) // DNG converters delete makernotes |
| { |
| if ((normalized_model[2] == 'F') && (normalized_model[3] == '1')) |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_Samsung_NX_M; |
| ilm.CameraFormat = LIBRAW_FORMAT_1INCH; |
| } |
| else |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_Samsung_NX; |
| ilm.CameraFormat = LIBRAW_FORMAT_APSC; |
| } |
| } |
| else |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_FixedLens; |
| } |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Kodak)) |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_FixedLens; |
| for (i = 0; i < int(sizeof Kodak_mounts / sizeof *Kodak_mounts); i++) |
| { |
| if (!strncmp(normalized_model, Kodak_mounts[i].Kmodel, |
| strlen(Kodak_mounts[i].Kmodel))) |
| { |
| ilm.CameraMount = Kodak_mounts[i].mount; |
| break; |
| } |
| } |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Minolta)) |
| { |
| if (!strcmp(normalized_model, "DG-5D") || |
| !strcmp(normalized_model, "DG-7D")) |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_APSC; |
| ilm.CameraMount = LIBRAW_MOUNT_Minolta_A; |
| } |
| else if (!strncasecmp(normalized_model, "DiMAGE", 6)) |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_FixedLens; |
| } |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Casio) || |
| makeIs(LIBRAW_CAMERAMAKER_Creative)) |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_FixedLens; |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Sigma)) |
| { |
| if (!strncmp(normalized_model, "fp", 2)) |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_FF; |
| ilm.CameraMount = LIBRAW_MOUNT_LPS_L; |
| } |
| else if (!strncasecmp(normalized_model, "SD", 2)) |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_Sigma_X3F; |
| if (!strcmp(normalized_model, "SD1") || (normalized_model[4] == 'M')) |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_SigmaMerrill; |
| } |
| else if (normalized_model[11] == 'H') |
| { // 'sd Quattro H' |
| ilm.CameraFormat = LIBRAW_FORMAT_SigmaAPSH; |
| } |
| else if (normalized_model[4] == 'Q') |
| { // 'sd Quattro' |
| ilm.CameraFormat = LIBRAW_FORMAT_APSC; |
| } |
| else |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_SigmaAPSC; |
| } |
| } |
| else if (!strncasecmp(normalized_model, "DP", 2)) |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_FixedLens; |
| if (normalized_model[4] == 'M') |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_SigmaMerrill; |
| } |
| else if (normalized_model[4] == 'Q') |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_APSC; |
| } |
| else |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_SigmaAPSC; |
| } |
| } |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Konica)) |
| { |
| if (!strncmp(model, "KD-", 3)) |
| { // Konica KD-400Z, KD-510Z |
| ilm.CameraMount = LIBRAW_MOUNT_FixedLens; |
| } |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Mamiya)) |
| { |
| if (!strncmp(normalized_model, "ZD", 2)) |
| { |
| ilm.CameraFormat = LIBRAW_FORMAT_3648; |
| ilm.CameraMount = LIBRAW_MOUNT_Mamiya645; |
| } |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Sony)) |
| { |
| if (!strncmp(normalized_model, "XCD-", 4)) |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_C; |
| } |
| else if (!strncmp(normalized_model, "DSC-V3", 6) || |
| !strncmp(normalized_model, "DSC-F828", 8)) |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_FixedLens; |
| imSony.CameraType = LIBRAW_SONY_DSC; |
| } |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Polaroid) && |
| !strncmp(normalized_model, "x530", 4)) |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_FixedLens; |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Rollei) && |
| !strncmp(normalized_model, "d530flex", 8)) |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_FixedLens; |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Pentax) && |
| !strncmp(normalized_model, "Optio", 5)) { |
| ilm.CameraMount = LIBRAW_MOUNT_FixedLens; |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Epson) && |
| !strncmp(normalized_model, "R-D1", 4)) |
| { |
| ilm.CameraMount = LIBRAW_MOUNT_Leica_M; |
| ilm.CameraFormat = LIBRAW_FORMAT_APSC; |
| } |
| } |
| |
| if ((ilm.LensMount == LIBRAW_MOUNT_Canon_RF) && |
| (ilm.LensID == 61182) && |
| (imCanon.RF_lensID != 0)) { |
| ilm.LensID = imCanon.RF_lensID; |
| } |
| |
| if (ilm.LensMount == LIBRAW_MOUNT_Unknown) |
| { |
| if (makeIs(LIBRAW_CAMERAMAKER_Samsung)) |
| { |
| if ((imgdata.lens.Lens[0] == 'N') && |
| (imgdata.lens.Lens[1] == 'X')) // same DNG problem |
| { |
| if (imgdata.lens.Lens[2] == '-') |
| { |
| ilm.LensMount = LIBRAW_MOUNT_Samsung_NX_M; |
| ilm.LensFormat = LIBRAW_FORMAT_1INCH; |
| } |
| else |
| { |
| ilm.LensMount = LIBRAW_MOUNT_Samsung_NX; |
| ilm.LensFormat = LIBRAW_FORMAT_APSC; |
| } |
| } |
| } |
| } |
| |
| if ((ilm.LensID == LIBRAW_LENS_NOT_SET) && |
| xmpdata && |
| (strlen(xmpdata) > 9)) |
| { |
| if (makeIs(LIBRAW_CAMERAMAKER_Canon) && |
| try_xml && |
| (ps = strstr(xmpdata, "LensID=\""))) |
| { |
| ilm.LensID = atoi(ps + 8); |
| if (ilm.LensID == 61182) |
| { |
| ilm.LensMount = ilm.CameraMount = LIBRAW_MOUNT_Canon_RF; |
| } |
| } |
| else if (makeIs(LIBRAW_CAMERAMAKER_Samsung)) |
| { |
| if ((ilm.LensMount == LIBRAW_MOUNT_Samsung_NX) && |
| (ps = strstr(xmpdata, "LensID=\"("))) |
| { |
| ilm.LensID = atoi(ps + 9); |
| } |
| } |
| } |
| |
| if (ilm.CameraMount == LIBRAW_MOUNT_FixedLens) |
| { |
| if (ilm.CameraFormat) |
| ilm.LensFormat = ilm.CameraFormat; |
| if (ilm.LensMount == LIBRAW_MOUNT_Unknown) |
| ilm.LensMount = LIBRAW_MOUNT_FixedLens; |
| } |
| |
| if ((ilm.CameraMount != LIBRAW_MOUNT_Unknown) && |
| (ilm.CameraMount != LIBRAW_MOUNT_FixedLens) && |
| (ilm.LensMount == LIBRAW_MOUNT_Unknown)) { |
| if (ilm.LensID == LIBRAW_LENS_NOT_SET) ilm.LensMount = LIBRAW_MOUNT_IL_UM; |
| else ilm.LensMount = ilm.CameraMount; |
| } |
| } |
| |
| void LibRaw::SetStandardIlluminants (unsigned makerIdx, const char* /*normModel*/) { |
| // int i = -1; |
| int c; |
| if (!icWBC[LIBRAW_WBI_Ill_A][0] && |
| !icWBC[LIBRAW_WBI_D65][0]) { |
| if (makerIdx == LIBRAW_CAMERAMAKER_Olympus ) { |
| for (int i = 0; i < 64 && icWBCCTC[i][0]; i++) { |
| if (icWBCCTC[i][0] == 3000) |
| FORC4 icWBC[LIBRAW_WBI_Ill_A][c] = int(icWBCCTC[i][c+1]); |
| else if (icWBCCTC[i][0] == 6600) |
| FORC4 icWBC[LIBRAW_WBI_D65][c] = int(icWBCCTC[i][c+1]); |
| } |
| } |
| } |
| |
| if (!icWBC[LIBRAW_WBI_Ill_A][0] && icWBC[LIBRAW_WBI_Tungsten][0]) |
| FORC4 icWBC[LIBRAW_WBI_Ill_A][c] = icWBC[LIBRAW_WBI_Tungsten][c]; |
| |
| if (!icWBC[LIBRAW_WBI_D65][0] && icWBC[LIBRAW_WBI_FL_N][0]) |
| FORC4 icWBC[LIBRAW_WBI_D65][c] = icWBC[LIBRAW_WBI_FL_N][c]; |
| |
| return; |
| } |