Merge branch 'dev' into mlsharpen_review

This commit is contained in:
Ingo Weyrich 2020-02-09 11:31:55 +01:00
commit dc98f069cb
144 changed files with 4695 additions and 3594 deletions

View File

@ -252,9 +252,11 @@ if(NOT DEFINED APPDATADIR)
endif() endif()
endif() endif()
if (NOT APPLE)
if(DEFINED LENSFUNDBDIR AND NOT IS_ABSOLUTE "${LENSFUNDBDIR}") if(DEFINED LENSFUNDBDIR AND NOT IS_ABSOLUTE "${LENSFUNDBDIR}")
set(LENSFUNDBDIR "${DATADIR}/${LENSFUNDBDIR}") set(LENSFUNDBDIR "${DATADIR}/${LENSFUNDBDIR}")
endif() endif()
endif()
if(APPLE) if(APPLE)
if("${CODESIGNID}") if("${CODESIGNID}")
@ -263,7 +265,11 @@ if(APPLE)
if("${NOTARY}") if("${NOTARY}")
set(NOTARY "${NOTARY}" CACHE STRING "Notarization Identity") set(NOTARY "${NOTARY}" CACHE STRING "Notarization Identity")
endif() endif()
if("${LOCAL_PREFIX}")
set(LOCAL_PREFIX "${LOCAL_PREFIX}" CACHE STRING "macos/gtk parent directory ie /usr or /opt")
elseif(NOT DEFINED LOCAL_PREFIX)
set(LOCAL_PREFIX "/usr")
endif()
endif() endif()
# Enforce absolute paths for non-bundle builds: # Enforce absolute paths for non-bundle builds:
@ -396,7 +402,7 @@ if(WITH_PROF)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg")
endif() endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wuninitialized -Wcast-qual -Wno-deprecated-declarations -Wno-unused-result") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wuninitialized -Wcast-qual -Wno-deprecated-declarations -Wno-unused-result -Wunused-macros")
if(OPTION_OMP) if(OPTION_OMP)
find_package(OpenMP) find_package(OpenMP)
if(OPENMP_FOUND) if(OPENMP_FOUND)

View File

@ -1,6 +1,6 @@
RawTherapee - A powerful, cross-platform raw image processing program. RawTherapee - A powerful, cross-platform raw image processing program.
Copyright (C) 2004-2012 Gabor Horvath <hgabor@rawtherapee.com> Copyright (C) 2004-2012 Gabor Horvath <hgabor@rawtherapee.com>
Copyright (C) 2010-2019 RawTherapee development team. Copyright (C) 2010-2020 RawTherapee development team.
RawTherapee is free software: you can redistribute it and/or modify RawTherapee is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by

View File

@ -1,4 +1,4 @@
RAWTHERAPEE 5.7-dev RELEASE NOTES RAWTHERAPEE 5.8-dev RELEASE NOTES
This is a development version of RawTherapee. We update the code almost daily. Every few months, once enough changes have accumulated and the code is stabilized, we make a new official release. Every code change between these releases is known as a "development" version, and this is one of them. This is a development version of RawTherapee. We update the code almost daily. Every few months, once enough changes have accumulated and the code is stabilized, we make a new official release. Every code change between these releases is known as a "development" version, and this is one of them.
@ -8,7 +8,7 @@ https://rawpedia.rawtherapee.com/
While we only commit tested and relatively stable code and so the development versions should be fairly stable, you should be aware that: While we only commit tested and relatively stable code and so the development versions should be fairly stable, you should be aware that:
- Development versions only had limited testing, so there may be bugs unknown to us. - Development versions only had limited testing, so there may be bugs unknown to us.
- You should report these bugs so that they get fixed for the next stable release. See - You should report these bugs so that they get fixed for the next stable release. See
www.rawpedia.rawtherapee.com/How_to_write_useful_bug_reports https://rawpedia.rawtherapee.com/How_to_write_useful_bug_reports
- The way new tools work in the development versions is likely to change as we tweak and tune them, so your processing profiles may produce different results when used in a future stable version. - The way new tools work in the development versions is likely to change as we tweak and tune them, so your processing profiles may produce different results when used in a future stable version.
- Bugs present in the stable versions get fixed in the development versions, and make it into the next stable version when we make a new official release. That means that in some ways the development versions can be "more stable" than the latest stable release. At the same time, new features may introduce new bugs. This is a trade-off you should be aware of. - Bugs present in the stable versions get fixed in the development versions, and make it into the next stable version when we make a new official release. That means that in some ways the development versions can be "more stable" than the latest stable release. At the same time, new features may introduce new bugs. This is a trade-off you should be aware of.
@ -26,14 +26,14 @@ In order to use RawTherapee efficiently you should know that:
- All curves support the Shift and Ctrl keys while dragging a point. Shift+drag makes the point snap to a meaningful axis (top, bottom, diagonal, other), while Ctrl+drag makes your mouse movement super-fine for precise point positioning. - All curves support the Shift and Ctrl keys while dragging a point. Shift+drag makes the point snap to a meaningful axis (top, bottom, diagonal, other), while Ctrl+drag makes your mouse movement super-fine for precise point positioning.
- There are many keyboard shortcuts which make working with RawTherapee much faster and give you greater control. Make sure you familiarize yourself with them on RawPedia's "Keyboard Shortcuts" page! - There are many keyboard shortcuts which make working with RawTherapee much faster and give you greater control. Make sure you familiarize yourself with them on RawPedia's "Keyboard Shortcuts" page!
New features since 5.7: New features since 5.8:
- TODO - TODO
NEWS RELEVANT TO PACKAGE MAINTAINERS NEWS RELEVANT TO PACKAGE MAINTAINERS
New since 5.7: New since 5.8:
- TODO - TODO
In general: In general:

View File

@ -19,13 +19,12 @@
<url type="donation">https://www.paypal.me/rawtherapee</url> <url type="donation">https://www.paypal.me/rawtherapee</url>
<url type="help">https://rawpedia.rawtherapee.com</url> <url type="help">https://rawpedia.rawtherapee.com</url>
<url type="homepage">https://www.rawtherapee.com</url> <url type="homepage">https://www.rawtherapee.com</url>
<url type="translate">https://discuss.pixls.us/t/localization-how-to-translate-rawtherapee-and-rawpedia/2594</url> <url type="translate">https://rawpedia.rawtherapee.com/Main_Page#Localization</url>
<launchable type="desktop-id">rawtherapee.desktop</launchable> <launchable type="desktop-id">rawtherapee.desktop</launchable>
<releases> <releases>
<release version="5.8" date="2020-02-04" type="stable"></release>
<release version="5.7" date="2019-09-10" type="stable"></release> <release version="5.7" date="2019-09-10" type="stable"></release>
<release version="5.6" date="2019-04-20" type="stable"></release> <release version="5.6" date="2019-04-20" type="stable"></release>
<release version="5.6~rc2" date="2019-04-17" type="development"></release>
<release version="5.6~rc1" date="2019-04-10" type="development"></release>
<release version="5.5" date="2018-12-17" type="stable"></release> <release version="5.5" date="2018-12-17" type="stable"></release>
</releases> </releases>
<provides> <provides>

View File

@ -29,9 +29,12 @@ if(UNIX)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop" DESTINATION ${DESKTOPDIR}) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop" DESTINATION ${DESKTOPDIR})
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-16.png" DESTINATION "${ICONSDIR}/hicolor/16x16/apps" RENAME rawtherapee.png) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-16.png" DESTINATION "${ICONSDIR}/hicolor/16x16/apps" RENAME rawtherapee.png)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-24.png" DESTINATION "${ICONSDIR}/hicolor/24x24/apps" RENAME rawtherapee.png) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-24.png" DESTINATION "${ICONSDIR}/hicolor/24x24/apps" RENAME rawtherapee.png)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-32.png" DESTINATION "${ICONSDIR}/hicolor/32x32/apps" RENAME rawtherapee.png)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-48.png" DESTINATION "${ICONSDIR}/hicolor/48x48/apps" RENAME rawtherapee.png) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-48.png" DESTINATION "${ICONSDIR}/hicolor/48x48/apps" RENAME rawtherapee.png)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-64.png" DESTINATION "${ICONSDIR}/hicolor/64x64/apps" RENAME rawtherapee.png)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-128.png" DESTINATION "${ICONSDIR}/hicolor/128x128/apps" RENAME rawtherapee.png) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-128.png" DESTINATION "${ICONSDIR}/hicolor/128x128/apps" RENAME rawtherapee.png)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-256.png" DESTINATION "${ICONSDIR}/hicolor/256x256/apps" RENAME rawtherapee.png) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-256.png" DESTINATION "${ICONSDIR}/hicolor/256x256/apps" RENAME rawtherapee.png)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/svg/rt-logo.svg" DESTINATION "${ICONSDIR}/hicolor/scalable/apps" RENAME rawtherapee.svg)
endif() endif()
install(FILES ${LANGUAGEFILES} DESTINATION "${DATADIR}/languages") install(FILES ${LANGUAGEFILES} DESTINATION "${DATADIR}/languages")

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 83 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -1354,6 +1354,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b> !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b>
!ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
@ -1920,6 +1921,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
!TP_LABCURVE_CURVEEDITOR_LH;LH !TP_LABCURVE_CURVEEDITOR_LH;LH
!TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H) !TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H)
!TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L) !TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L)
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -1401,6 +1401,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: <b>-</b>
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
!ICCPROFCREATOR_CUSTOM;Custom !ICCPROFCREATOR_CUSTOM;Custom
@ -1885,6 +1886,8 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: <b>-</b>
!TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. !TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones.
!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection !TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection
!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. !TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve.
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -2335,6 +2335,7 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: <b>-</b>
!HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations !HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations
!HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius !HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius
!HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost !HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost
!HISTORY_MSG_TRANS_Method;Geometry - Method
!PARTIALPASTE_FILMNEGATIVE;Film Negative !PARTIALPASTE_FILMNEGATIVE;Film Negative
!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode
!TP_DEHAZE_LUMINANCE;Luminance only !TP_DEHAZE_LUMINANCE;Luminance only
@ -2344,6 +2345,8 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: <b>-</b>
!TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_LABEL;Film Negative
!TP_FILMNEGATIVE_PICK;Pick neutral spots !TP_FILMNEGATIVE_PICK;Pick neutral spots
!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_RED;Red ratio
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_PDSHARPENING_LABEL;Capture Sharpening !TP_PDSHARPENING_LABEL;Capture Sharpening
!TP_SHARPENING_ITERCHECK;Auto limit iterations !TP_SHARPENING_ITERCHECK;Auto limit iterations
!TP_SHARPENING_RADIUS_BOOST;Corner radius boost !TP_SHARPENING_RADIUS_BOOST;Corner radius boost

View File

@ -2392,4 +2392,7 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: <b>-</b>
!GENERAL_HELP;Help !GENERAL_HELP;Help
!HISTORY_MSG_PDSHARPEN_CHECKITER;CS - Auto limit iterations !HISTORY_MSG_PDSHARPEN_CHECKITER;CS - Auto limit iterations
!HISTORY_MSG_TRANS_Method;Geometry - Method
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_SHARPENING_ITERCHECK;Auto limit iterations !TP_SHARPENING_ITERCHECK;Auto limit iterations

View File

@ -876,6 +876,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!HISTORY_NEWSNAPSHOT;Add !HISTORY_NEWSNAPSHOT;Add
!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b> !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b>
!HISTORY_SNAPSHOT;Snapshot !HISTORY_SNAPSHOT;Snapshot
@ -1792,6 +1793,8 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!TP_LENSGEOM_AUTOCROP;Auto-Crop !TP_LENSGEOM_AUTOCROP;Auto-Crop
!TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_FILL;Auto-fill
!TP_LENSGEOM_LABEL;Lens / Geometry !TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -788,6 +788,7 @@
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!HISTORY_NEWSNAPSHOT;Add !HISTORY_NEWSNAPSHOT;Add
!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b> !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b>
!HISTORY_SNAPSHOT;Snapshot !HISTORY_SNAPSHOT;Snapshot
@ -1776,6 +1777,8 @@
!TP_LENSGEOM_AUTOCROP;Auto-Crop !TP_LENSGEOM_AUTOCROP;Auto-Crop
!TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_FILL;Auto-fill
!TP_LENSGEOM_LABEL;Lens / Geometry !TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -2334,6 +2334,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nTecla de Atajo: <b>-</b>
!HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius !HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius
!HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost !HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
!HISTORY_MSG_TRANS_Method;Geometry - Method
!MAIN_FRAME_PLACES_DEL;Remove !MAIN_FRAME_PLACES_DEL;Remove
!MAIN_TAB_FAVORITES;Favorites !MAIN_TAB_FAVORITES;Favorites
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b> !MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
@ -2362,6 +2363,8 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nTecla de Atajo: <b>-</b>
!TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_LABEL;Film Negative
!TP_FILMNEGATIVE_PICK;Pick neutral spots !TP_FILMNEGATIVE_PICK;Pick neutral spots
!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_RED;Red ratio
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected
!TP_LENSPROFILE_MODE_HEADER;Lens Profile !TP_LENSPROFILE_MODE_HEADER;Lens Profile

View File

@ -2278,6 +2278,7 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: <b>-</b>
!HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations !HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations
!HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius !HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius
!HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost !HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost
!HISTORY_MSG_TRANS_Method;Geometry - Method
!MAIN_FRAME_PLACES_DEL;Remove !MAIN_FRAME_PLACES_DEL;Remove
!PARTIALPASTE_FILMNEGATIVE;Film Negative !PARTIALPASTE_FILMNEGATIVE;Film Negative
!PROGRESSBAR_DECODING;Decoding... !PROGRESSBAR_DECODING;Decoding...
@ -2295,6 +2296,8 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: <b>-</b>
!TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_LABEL;Film Negative
!TP_FILMNEGATIVE_PICK;Pick neutral spots !TP_FILMNEGATIVE_PICK;Pick neutral spots
!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_RED;Red ratio
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected
!TP_LENSPROFILE_MODE_HEADER;Lens Profile !TP_LENSPROFILE_MODE_HEADER;Lens Profile

View File

@ -1579,6 +1579,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
!ICCPROFCREATOR_CUSTOM;Custom !ICCPROFCREATOR_CUSTOM;Custom
@ -1946,6 +1947,8 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
!TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_NONE;None
!TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_SLOPE;Slope
!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles.
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -2314,3 +2314,6 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: <b>-</b>
!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!
!GENERAL_HELP;Help !GENERAL_HELP;Help
!HISTORY_MSG_TRANS_Method;Geometry - Method
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic

View File

@ -1288,6 +1288,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b> !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b>
!ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
@ -1912,6 +1913,8 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
!TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. !TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones.
!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection !TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection
!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. !TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve.
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -2076,6 +2076,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: <b>-</b>
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
!ICCPROFCREATOR_CUSTOM;Custom !ICCPROFCREATOR_CUSTOM;Custom
@ -2256,6 +2257,8 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: <b>-</b>
!TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_NONE;None
!TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_SLOPE;Slope
!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles.
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

File diff suppressed because it is too large Load Diff

View File

@ -2276,6 +2276,7 @@ ZOOMPANEL_ZOOMOUT;Afastar\nAtalho: <b>-</b>
!HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations !HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations
!HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius !HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius
!HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost !HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost
!HISTORY_MSG_TRANS_Method;Geometry - Method
!MAIN_FRAME_PLACES_DEL;Remove !MAIN_FRAME_PLACES_DEL;Remove
!PARTIALPASTE_FILMNEGATIVE;Film Negative !PARTIALPASTE_FILMNEGATIVE;Film Negative
!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode
@ -2294,6 +2295,8 @@ ZOOMPANEL_ZOOMOUT;Afastar\nAtalho: <b>-</b>
!TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_LABEL;Film Negative
!TP_FILMNEGATIVE_PICK;Pick neutral spots !TP_FILMNEGATIVE_PICK;Pick neutral spots
!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMNEGATIVE_RED;Red ratio
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected
!TP_LENSPROFILE_MODE_HEADER;Lens Profile !TP_LENSPROFILE_MODE_HEADER;Lens Profile

View File

@ -2283,6 +2283,7 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: <b>-</b>
!HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations !HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations
!HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius !HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius
!HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost !HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost
!HISTORY_MSG_TRANS_Method;Geometry - Method
!PARTIALPASTE_FILMNEGATIVE;Film Negative !PARTIALPASTE_FILMNEGATIVE;Film Negative
!PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. !PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched.
!PROGRESSBAR_DECODING;Decoding... !PROGRESSBAR_DECODING;Decoding...
@ -2295,6 +2296,8 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: <b>-</b>
!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) !TP_FILMNEGATIVE_GREEN;Reference exponent (contrast)
!TP_FILMNEGATIVE_GUESS_TOOLTIP;Automatically set the red and blue ratios by picking two patches which had a neutral hue (no color) in the original scene. The patches should differ in brightness. Set the white balance afterwards. !TP_FILMNEGATIVE_GUESS_TOOLTIP;Automatically set the red and blue ratios by picking two patches which had a neutral hue (no color) in the original scene. The patches should differ in brightness. Set the white balance afterwards.
!TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_LABEL;Film Negative
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!TP_LENSPROFILE_USE_HEADER;Correct !TP_LENSPROFILE_USE_HEADER;Correct
!TP_PDSHARPENING_LABEL;Capture Sharpening !TP_PDSHARPENING_LABEL;Capture Sharpening

View File

@ -1736,6 +1736,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
!HISTORY_MSG_TRANS_Method;Geometry - Method
!ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
!ICCPROFCREATOR_CUSTOM;Custom !ICCPROFCREATOR_CUSTOM;Custom
@ -2014,6 +2015,8 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
!TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_NONE;None
!TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_SLOPE;Slope
!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles.
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected
!TP_LENSPROFILE_MODE_HEADER;Lens Profile !TP_LENSPROFILE_MODE_HEADER;Lens Profile

View File

@ -1554,6 +1554,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
!ICCPROFCREATOR_CUSTOM;Custom !ICCPROFCREATOR_CUSTOM;Custom
@ -1947,6 +1948,8 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
!TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_NONE;None
!TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_SLOPE;Slope
!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles.
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -2308,4 +2308,7 @@ ZOOMPANEL_ZOOMOUT;Zoom Out\nBližnjica: <b>-</b>
!GENERAL_HELP;Help !GENERAL_HELP;Help
!HISTORY_MSG_PDSHARPEN_CHECKITER;CS - Auto limit iterations !HISTORY_MSG_PDSHARPEN_CHECKITER;CS - Auto limit iterations
!HISTORY_MSG_TRANS_Method;Geometry - Method
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_SHARPENING_ITERCHECK;Auto limit iterations !TP_SHARPENING_ITERCHECK;Auto limit iterations

View File

@ -1903,6 +1903,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: <b>-</b>
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
!ICCPROFCREATOR_CUSTOM;Custom !ICCPROFCREATOR_CUSTOM;Custom
@ -2150,6 +2151,8 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: <b>-</b>
!TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_NONE;None
!TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_SLOPE;Slope
!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles.
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -12,6 +12,11 @@ include_directories(${EXTRA_INCDIR}
${LENSFUN_INCLUDE_DIRS} ${LENSFUN_INCLUDE_DIRS}
${RSVG_INCLUDE_DIRS} ${RSVG_INCLUDE_DIRS}
) )
if(NOT WITH_SYSTEM_KLT)
include_directories("${CMAKE_SOURCE_DIR}/rtengine/klt")
else()
include_directories(${KLT_INCLUDE_DIRS})
endif()
link_directories("${PROJECT_SOURCE_DIR}/rtexif" link_directories("${PROJECT_SOURCE_DIR}/rtexif"
${EXPAT_LIBRARY_DIRS} ${EXPAT_LIBRARY_DIRS}
@ -186,6 +191,7 @@ target_link_libraries(rtengine rtexif
${ZLIB_LIBRARIES} ${ZLIB_LIBRARIES}
${LENSFUN_LIBRARIES} ${LENSFUN_LIBRARIES}
${RSVG_LIBRARIES} ${RSVG_LIBRARIES}
${KLT_LIBRARIES}
) )
install(FILES ${CAMCONSTSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) install(FILES ${CAMCONSTSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)

View File

@ -56,7 +56,6 @@
#define TS 64 // Tile size #define TS 64 // Tile size
#define offset 25 // shift between tiles #define offset 25 // shift between tiles
#define fTS ((TS/2+1)) // second dimension of Fourier tiles
#define blkrad 1 // radius of block averaging #define blkrad 1 // radius of block averaging
#define epsilon 0.001f/(TS*TS) //tolerance #define epsilon 0.001f/(TS*TS) //tolerance

View File

@ -5,8 +5,8 @@ locations (before and after tracking) to text files and to PPM files,
and prints the features to the screen. and prints the features to the screen.
**********************************************************************/ **********************************************************************/
#include "klt/pnmio.h" #include <pnmio.h>
#include "klt/klt.h" #include <klt.h>
#include <cmath> #include <cmath>
#include <cstring> #include <cstring>

View File

@ -638,7 +638,7 @@ CameraConst::update_globalGreenEquilibration(bool other)
} }
bool bool
CameraConstantsStore::parse_camera_constants_file(Glib::ustring filename_) CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& filename_)
{ {
// read the file into a single long string // read the file into a single long string
const char *filename = filename_.c_str(); const char *filename = filename_.c_str();
@ -809,7 +809,7 @@ CameraConstantsStore::~CameraConstantsStore()
} }
} }
void CameraConstantsStore::init(Glib::ustring baseDir, Glib::ustring userSettingsDir) void CameraConstantsStore::init(const Glib::ustring& baseDir, const Glib::ustring& userSettingsDir)
{ {
parse_camera_constants_file(Glib::build_filename(baseDir, "camconst.json")); parse_camera_constants_file(Glib::build_filename(baseDir, "camconst.json"));

View File

@ -3,10 +3,17 @@
*/ */
#pragma once #pragma once
#include <glibmm/ustring.h>
#include <map> #include <map>
#include <string>
#include <vector> #include <vector>
namespace Glib
{
class ustring;
}
namespace rtengine namespace rtengine
{ {
@ -14,7 +21,7 @@ struct camera_const_levels {
int levels[4]; int levels[4];
}; };
class CameraConst class CameraConst final
{ {
private: private:
std::string make_model; std::string make_model;
@ -56,17 +63,17 @@ public:
void update_globalGreenEquilibration(bool other); void update_globalGreenEquilibration(bool other);
}; };
class CameraConstantsStore class CameraConstantsStore final
{ {
private: private:
std::map<std::string, CameraConst *> mCameraConstants; std::map<std::string, CameraConst *> mCameraConstants;
CameraConstantsStore(); CameraConstantsStore();
bool parse_camera_constants_file(Glib::ustring filename); bool parse_camera_constants_file(const Glib::ustring& filename);
public: public:
~CameraConstantsStore(); ~CameraConstantsStore();
void init(Glib::ustring baseDir, Glib::ustring userSettingsDir); void init(const Glib::ustring& baseDir, const Glib::ustring& userSettingsDir);
static CameraConstantsStore *getInstance(void); static CameraConstantsStore *getInstance(void);
CameraConst *get(const char make[], const char model[]); CameraConst *get(const char make[], const char model[]);
}; };

View File

@ -18,6 +18,7 @@
*/ */
// Code adapted from ART // Code adapted from ART
// https://bitbucket.org/agriggio/art/
/* /*
* *
* This file is part of ART. * This file is part of ART.
@ -37,9 +38,14 @@
*/ */
// Code adapted from libraw // Code adapted from libraw
/* -*- C++ -*- // https://github.com/LibRaw/LibRaw/
* Copyright 2019 LibRaw LLC (info@libraw.org) /*
* File: libraw_crxdec.cpp
* Copyright (C) 2018-2019 Alexey Danilchenko
* Copyright (C) 2019 Alex Tutubalin, LibRaw LLC
* *
Canon CR3 file decoder
LibRaw is free software; you can redistribute it and/or modify LibRaw is free software; you can redistribute it and/or modify
it under the terms of the one of two licenses as you choose: it under the terms of the one of two licenses as you choose:

View File

@ -33,6 +33,50 @@
namespace { namespace {
void compute13x13kernel(float sigma, float kernel[13][13]) {
const double temp = -2.f * rtengine::SQR(sigma);
float sum = 0.f;
for (int i = -6; i <= 6; ++i) {
for (int j = -6; j <= 6; ++j) {
if((rtengine::SQR(i) + rtengine::SQR(j)) <= rtengine::SQR(3.0 * 2.0)) {
kernel[i + 6][j + 6] = std::exp((rtengine::SQR(i) + rtengine::SQR(j)) / temp);
sum += kernel[i + 6][j + 6];
} else {
kernel[i + 6][j + 6] = 0.f;
}
}
}
for (int i = 0; i < 13; ++i) {
for (int j = 0; j < 13; ++j) {
kernel[i][j] /= sum;
}
}
}
void compute9x9kernel(float sigma, float kernel[9][9]) {
const double temp = -2.f * rtengine::SQR(sigma);
float sum = 0.f;
for (int i = -4; i <= 4; ++i) {
for (int j = -4; j <= 4; ++j) {
if((rtengine::SQR(i) + rtengine::SQR(j)) <= rtengine::SQR(3.0 * 1.5)) {
kernel[i + 4][j + 4] = std::exp((rtengine::SQR(i) + rtengine::SQR(j)) / temp);
sum += kernel[i + 4][j + 4];
} else {
kernel[i + 4][j + 4] = 0.f;
}
}
}
for (int i = 0; i < 9; ++i) {
for (int j = 0; j < 9; ++j) {
kernel[i][j] /= sum;
}
}
}
void compute7x7kernel(float sigma, float kernel[7][7]) { void compute7x7kernel(float sigma, float kernel[7][7]) {
const double temp = -2.f * rtengine::SQR(sigma); const double temp = -2.f * rtengine::SQR(sigma);
@ -183,6 +227,105 @@ void gauss7x7div(float** RESTRICT src, float** RESTRICT dst, float** RESTRICT di
} }
} }
void gauss9x9div(float** RESTRICT src, float** RESTRICT dst, float** RESTRICT divBuffer, const int tileSize, const float kernel[9][9])
{
const float c42 = kernel[0][2];
const float c41 = kernel[0][3];
const float c40 = kernel[0][4];
const float c33 = kernel[1][1];
const float c32 = kernel[1][2];
const float c31 = kernel[1][3];
const float c30 = kernel[1][4];
const float c22 = kernel[2][2];
const float c21 = kernel[2][3];
const float c20 = kernel[2][4];
const float c11 = kernel[3][3];
const float c10 = kernel[3][4];
const float c00 = kernel[4][4];
for (int i = 4; i < tileSize - 4; ++i) {
// I tried hand written SSE code but gcc vectorizes better
#if defined(__clang__)
#pragma clang loop vectorize(assume_safety)
#elif defined(__GNUC__)
#pragma GCC ivdep
#endif
for (int j = 4; j < tileSize - 4; ++j) {
const float val = c42 * ((src[i - 4][j - 2] + src[i - 4][j + 2]) + (src[i - 2][j - 4] + src[i - 2][j + 4]) + (src[i + 2][j - 4] + src[i + 2][j + 4]) + (src[i + 4][j - 2] + src[i + 4][j + 2])) +
c41 * ((src[i - 4][j - 1] + src[i - 4][j + 1]) + (src[i - 1][j - 4] + src[i - 1][j + 4]) + (src[i + 1][j - 4] + src[i + 1][j + 4]) + (src[i + 4][j - 1] + src[i + 4][j + 1])) +
c40 * (src[i - 4][j] + src[i][j - 4] + src[i][j + 4] + src[i + 4][j]) +
c33 * (src[i - 3][j - 3] + src[i - 3][j + 3] + src[i + 3][j - 3] + src[i + 3][j + 3]) +
c32 * ((src[i - 3][j - 2] + src[i - 3][j + 2]) + (src[i - 2][j - 3] + src[i - 2][j + 3]) + (src[i + 2][j - 3] + src[i + 2][j + 3]) + (src[i + 3][j - 2] + src[i + 3][j + 2])) +
c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) +
c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) +
c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) +
c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) +
c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) +
c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) +
c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) +
c00 * src[i][j];
dst[i][j] = divBuffer[i][j] / std::max(val, 0.00001f);
}
}
}
void gauss13x13div(float** RESTRICT src, float** RESTRICT dst, float** RESTRICT divBuffer, const int tileSize, const float kernel[13][13])
{
const float c60 = kernel[0][6];
const float c53 = kernel[1][3];
const float c52 = kernel[1][4];
const float c51 = kernel[1][5];
const float c50 = kernel[1][6];
const float c44 = kernel[2][2];
const float c42 = kernel[2][4];
const float c41 = kernel[2][5];
const float c40 = kernel[2][6];
const float c33 = kernel[3][3];
const float c32 = kernel[3][4];
const float c31 = kernel[3][5];
const float c30 = kernel[3][6];
const float c22 = kernel[4][4];
const float c21 = kernel[4][5];
const float c20 = kernel[4][6];
const float c11 = kernel[5][5];
const float c10 = kernel[5][6];
const float c00 = kernel[6][6];
for (int i = 6; i < tileSize - 6; ++i) {
// I tried hand written SSE code but gcc vectorizes better
#if defined(__clang__)
#pragma clang loop vectorize(assume_safety)
#elif defined(__GNUC__)
#pragma GCC ivdep
#endif
for (int j = 6; j < tileSize - 6; ++j) {
const float val = c60 * (src[i - 6][j] + src[i][j - 6] + src[i][j + 6] + src[i + 6][j]) +
c53 * ((src[i - 5][j - 3] + src[i - 5][j + 3]) + (src[i - 3][j - 5] + src[i - 3][j + 5]) + (src[i + 3][j - 5] + src[i + 3][j + 5]) + (src[i + 5][j - 3] + src[i + 5][j + 3])) +
c52 * ((src[i - 5][j - 2] + src[i - 5][j + 2]) + (src[i - 2][j - 5] + src[i - 2][j + 5]) + (src[i + 2][j - 5] + src[i + 2][j + 5]) + (src[i + 5][j - 2] + src[i + 5][j + 2])) +
c51 * ((src[i - 5][j - 1] + src[i - 5][j + 1]) + (src[i - 1][j - 5] + src[i - 1][j + 5]) + (src[i + 1][j - 5] + src[i + 1][j + 5]) + (src[i + 5][j - 1] + src[i + 5][j + 1])) +
c50 * ((src[i - 5][j] + src[i][j - 5] + src[i][j + 5] + src[i + 5][j]) + ((src[i - 4][j - 3] + src[i - 4][j + 3]) + (src[i - 3][j - 4] + src[i - 3][j + 4]) + (src[i + 3][j - 4] + src[i + 3][j + 4]) + (src[i + 4][j - 3] + src[i + 4][j + 3]))) +
c44 * (src[i - 4][j - 4] + src[i - 4][j + 4] + src[i + 4][j - 4] + src[i + 4][j + 4]) +
c42 * ((src[i - 4][j - 2] + src[i - 4][j + 2]) + (src[i - 2][j - 4] + src[i - 2][j + 4]) + (src[i + 2][j - 4] + src[i + 2][j + 4]) + (src[i + 4][j - 2] + src[i + 4][j + 2])) +
c41 * ((src[i - 4][j - 1] + src[i - 4][j + 1]) + (src[i - 1][j - 4] + src[i - 1][j + 4]) + (src[i + 1][j - 4] + src[i + 1][j + 4]) + (src[i + 4][j - 1] + src[i + 4][j + 1])) +
c40 * (src[i - 4][j] + src[i][j - 4] + src[i][j + 4] + src[i + 4][j]) +
c33 * (src[i - 3][j - 3] + src[i - 3][j + 3] + src[i + 3][j - 3] + src[i + 3][j + 3]) +
c32 * ((src[i - 3][j - 2] + src[i - 3][j + 2]) + (src[i - 2][j - 3] + src[i - 2][j + 3]) + (src[i + 2][j - 3] + src[i + 2][j + 3]) + (src[i + 3][j - 2] + src[i + 3][j + 2])) +
c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) +
c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) +
c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) +
c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) +
c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) +
c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) +
c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) +
c00 * src[i][j];
dst[i][j] = divBuffer[i][j] / std::max(val, 0.00001f);
}
}
}
void gauss3x3mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[3][3]) void gauss3x3mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[3][3])
{ {
const float c11 = kernel[0][0]; const float c11 = kernel[0][0];
@ -267,6 +410,105 @@ void gauss7x7mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize
} }
} }
void gauss9x9mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[9][9])
{
const float c42 = kernel[0][2];
const float c41 = kernel[0][3];
const float c40 = kernel[0][4];
const float c33 = kernel[1][1];
const float c32 = kernel[1][2];
const float c31 = kernel[1][3];
const float c30 = kernel[1][4];
const float c22 = kernel[2][2];
const float c21 = kernel[2][3];
const float c20 = kernel[2][4];
const float c11 = kernel[3][3];
const float c10 = kernel[3][4];
const float c00 = kernel[4][4];
for (int i = 4; i < tileSize - 4; ++i) {
// I tried hand written SSE code but gcc vectorizes better
#if defined(__clang__)
#pragma clang loop vectorize(assume_safety)
#elif defined(__GNUC__)
#pragma GCC ivdep
#endif
for (int j = 4; j < tileSize - 4; ++j) {
const float val = c42 * ((src[i - 4][j - 2] + src[i - 4][j + 2]) + (src[i - 2][j - 4] + src[i - 2][j + 4]) + (src[i + 2][j - 4] + src[i + 2][j + 4]) + (src[i + 4][j - 2] + src[i + 4][j + 2])) +
c41 * ((src[i - 4][j - 1] + src[i - 4][j + 1]) + (src[i - 1][j - 4] + src[i - 1][j + 4]) + (src[i + 1][j - 4] + src[i + 1][j + 4]) + (src[i + 4][j - 1] + src[i + 4][j + 1])) +
c40 * (src[i - 4][j] + src[i][j - 4] + src[i][j + 4] + src[i + 4][j]) +
c33 * (src[i - 3][j - 3] + src[i - 3][j + 3] + src[i + 3][j - 3] + src[i + 3][j + 3]) +
c32 * ((src[i - 3][j - 2] + src[i - 3][j + 2]) + (src[i - 2][j - 3] + src[i - 2][j + 3]) + (src[i + 2][j - 3] + src[i + 2][j + 3]) + (src[i + 3][j - 2] + src[i + 3][j + 2])) +
c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) +
c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) +
c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) +
c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) +
c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) +
c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) +
c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) +
c00 * src[i][j];
dst[i][j] *= val;
}
}
}
void gauss13x13mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[13][13])
{
const float c60 = kernel[0][6];
const float c53 = kernel[1][3];
const float c52 = kernel[1][4];
const float c51 = kernel[1][5];
const float c50 = kernel[1][6];
const float c44 = kernel[2][2];
const float c42 = kernel[2][4];
const float c41 = kernel[2][5];
const float c40 = kernel[2][6];
const float c33 = kernel[3][3];
const float c32 = kernel[3][4];
const float c31 = kernel[3][5];
const float c30 = kernel[3][6];
const float c22 = kernel[4][4];
const float c21 = kernel[4][5];
const float c20 = kernel[4][6];
const float c11 = kernel[5][5];
const float c10 = kernel[5][6];
const float c00 = kernel[6][6];
for (int i = 6; i < tileSize - 6; ++i) {
// I tried hand written SSE code but gcc vectorizes better
#if defined(__clang__)
#pragma clang loop vectorize(assume_safety)
#elif defined(__GNUC__)
#pragma GCC ivdep
#endif
for (int j = 6; j < tileSize - 6; ++j) {
const float val = c60 * (src[i - 6][j] + src[i][j - 6] + src[i][j + 6] + src[i + 6][j]) +
c53 * ((src[i - 5][j - 3] + src[i - 5][j + 3]) + (src[i - 3][j - 5] + src[i - 3][j + 5]) + (src[i + 3][j - 5] + src[i + 3][j + 5]) + (src[i + 5][j - 3] + src[i + 5][j + 3])) +
c52 * ((src[i - 5][j - 2] + src[i - 5][j + 2]) + (src[i - 2][j - 5] + src[i - 2][j + 5]) + (src[i + 2][j - 5] + src[i + 2][j + 5]) + (src[i + 5][j - 2] + src[i + 5][j + 2])) +
c51 * ((src[i - 5][j - 1] + src[i - 5][j + 1]) + (src[i - 1][j - 5] + src[i - 1][j + 5]) + (src[i + 1][j - 5] + src[i + 1][j + 5]) + (src[i + 5][j - 1] + src[i + 5][j + 1])) +
c50 * ((src[i - 5][j] + src[i][j - 5] + src[i][j + 5] + src[i + 5][j]) + ((src[i - 4][j - 3] + src[i - 4][j + 3]) + (src[i - 3][j - 4] + src[i - 3][j + 4]) + (src[i + 3][j - 4] + src[i + 3][j + 4]) + (src[i + 4][j - 3] + src[i + 4][j + 3]))) +
c44 * (src[i - 4][j - 4] + src[i - 4][j + 4] + src[i + 4][j - 4] + src[i + 4][j + 4]) +
c42 * ((src[i - 4][j - 2] + src[i - 4][j + 2]) + (src[i - 2][j - 4] + src[i - 2][j + 4]) + (src[i + 2][j - 4] + src[i + 2][j + 4]) + (src[i + 4][j - 2] + src[i + 4][j + 2])) +
c41 * ((src[i - 4][j - 1] + src[i - 4][j + 1]) + (src[i - 1][j - 4] + src[i - 1][j + 4]) + (src[i + 1][j - 4] + src[i + 1][j + 4]) + (src[i + 4][j - 1] + src[i + 4][j + 1])) +
c40 * (src[i - 4][j] + src[i][j - 4] + src[i][j + 4] + src[i + 4][j]) +
c33 * (src[i - 3][j - 3] + src[i - 3][j + 3] + src[i + 3][j - 3] + src[i + 3][j + 3]) +
c32 * ((src[i - 3][j - 2] + src[i - 3][j + 2]) + (src[i - 2][j - 3] + src[i - 2][j + 3]) + (src[i + 2][j - 3] + src[i + 2][j + 3]) + (src[i + 3][j - 2] + src[i + 3][j + 2])) +
c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) +
c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) +
c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) +
c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) +
c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) +
c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) +
c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) +
c00 * src[i][j];
dst[i][j] *= val;
}
}
}
void buildClipMaskBayer(const float * const *rawData, int W, int H, float** clipMask, const float whites[2][2]) void buildClipMaskBayer(const float * const *rawData, int W, int H, float** clipMask, const float whites[2][2])
{ {
@ -522,8 +764,12 @@ bool checkForStop(float** tmpIThr, float** iterCheck, int fullTileSize, int bord
void CaptureDeconvSharpening (float** luminance, const float* const * oldLuminance, const float * const * blend, int W, int H, double sigma, double sigmaCornerOffset, int iterations, bool checkIterStop, rtengine::ProgressListener* plistener, double startVal, double endVal) void CaptureDeconvSharpening (float** luminance, const float* const * oldLuminance, const float * const * blend, int W, int H, double sigma, double sigmaCornerOffset, int iterations, bool checkIterStop, rtengine::ProgressListener* plistener, double startVal, double endVal)
{ {
BENCHFUN BENCHFUN
const bool is9x9 = (sigma <= 1.50 && sigmaCornerOffset == 0.0);
const bool is7x7 = (sigma <= 1.15 && sigmaCornerOffset == 0.0);
const bool is5x5 = (sigma <= 0.84 && sigmaCornerOffset == 0.0); const bool is5x5 = (sigma <= 0.84 && sigmaCornerOffset == 0.0);
const bool is3x3 = (sigma < 0.6 && sigmaCornerOffset == 0.0); const bool is3x3 = (sigma < 0.6 && sigmaCornerOffset == 0.0);
float kernel13[13][13];
float kernel9[9][9];
float kernel7[7][7]; float kernel7[7][7];
float kernel5[5][5]; float kernel5[5][5];
float kernel3[3][3]; float kernel3[3][3];
@ -531,14 +777,18 @@ BENCHFUN
compute3x3kernel(sigma, kernel3); compute3x3kernel(sigma, kernel3);
} else if (is5x5) { } else if (is5x5) {
compute5x5kernel(sigma, kernel5); compute5x5kernel(sigma, kernel5);
} else { } else if (is7x7) {
compute7x7kernel(sigma, kernel7); compute7x7kernel(sigma, kernel7);
} else if (is9x9) {
compute9x9kernel(sigma, kernel9);
} else {
compute13x13kernel(sigma, kernel13);
} }
constexpr int tileSize = 32; constexpr int tileSize = 32;
const int border = iterations <= 30 ? 5 : 7; const int border = (is3x3 || is5x5 || is7x7) ? iterations <= 30 ? 5 : 7 : 8;
const int fullTileSize = tileSize + 2 * border; const int fullTileSize = tileSize + 2 * border;
const float cornerRadius = std::min<float>(1.15f, sigma + sigmaCornerOffset); const float cornerRadius = std::min<float>(2.f, sigma + sigmaCornerOffset);
const float cornerDistance = sqrt(rtengine::SQR(W * 0.5f) + rtengine::SQR(H * 0.5f)); const float cornerDistance = sqrt(rtengine::SQR(W * 0.5f) + rtengine::SQR(H * 0.5f));
const float distanceFactor = (cornerRadius - sigma) / cornerDistance; const float distanceFactor = (cornerRadius - sigma) / cornerDistance;
@ -637,12 +887,52 @@ BENCHFUN
break; break;
} }
} }
} else if (is7x7) {
for (int k = 0; k < iterations; ++k) {
// apply 5x5 gaussian blur and divide luminance by result of gaussian blur
gauss7x7div(tmpIThr, tmpThr, lumThr, fullTileSize, kernel7);
gauss7x7mult(tmpThr, tmpIThr, fullTileSize, kernel7);
if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) {
break;
}
}
} else if (is9x9) {
for (int k = 0; k < iterations; ++k) {
// apply 5x5 gaussian blur and divide luminance by result of gaussian blur
gauss9x9div(tmpIThr, tmpThr, lumThr, fullTileSize, kernel9);
gauss9x9mult(tmpThr, tmpIThr, fullTileSize, kernel9);
if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) {
break;
}
}
} else { } else {
if (sigmaCornerOffset != 0.0) { if (sigmaCornerOffset != 0.0) {
const float distance = sqrt(rtengine::SQR(i + tileSize / 2 - H / 2) + rtengine::SQR(j + tileSize / 2 - W / 2)); const float distance = sqrt(rtengine::SQR(i + tileSize / 2 - H / 2) + rtengine::SQR(j + tileSize / 2 - W / 2));
const float sigmaTile = static_cast<float>(sigma) + distanceFactor * distance; const float sigmaTile = static_cast<float>(sigma) + distanceFactor * distance;
if (sigmaTile >= 0.4f) { if (sigmaTile >= 0.4f) {
if (sigmaTile > 0.84) { // have to use 7x7 kernel if (sigmaTile > 1.50) { // have to use 13x13 kernel
float lkernel13[13][13];
compute13x13kernel(static_cast<float>(sigma) + distanceFactor * distance, lkernel13);
for (int k = 0; k < iterations; ++k) {
// apply 13x13 gaussian blur and divide luminance by result of gaussian blur
gauss13x13div(tmpIThr, tmpThr, lumThr, fullTileSize, lkernel13);
gauss13x13mult(tmpThr, tmpIThr, fullTileSize, lkernel13);
if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) {
break;
}
}
} else if (sigmaTile > 1.15) { // have to use 9x9 kernel
float lkernel9[9][9];
compute9x9kernel(static_cast<float>(sigma) + distanceFactor * distance, lkernel9);
for (int k = 0; k < iterations; ++k) {
// apply 9x9 gaussian blur and divide luminance by result of gaussian blur
gauss9x9div(tmpIThr, tmpThr, lumThr, fullTileSize, lkernel9);
gauss9x9mult(tmpThr, tmpIThr, fullTileSize, lkernel9);
if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) {
break;
}
}
} else if (sigmaTile > 0.84) { // have to use 7x7 kernel
float lkernel7[7][7]; float lkernel7[7][7];
compute7x7kernel(static_cast<float>(sigma) + distanceFactor * distance, lkernel7); compute7x7kernel(static_cast<float>(sigma) + distanceFactor * distance, lkernel7);
for (int k = 0; k < iterations; ++k) { for (int k = 0; k < iterations; ++k) {
@ -668,9 +958,9 @@ BENCHFUN
} }
} else { } else {
for (int k = 0; k < iterations; ++k) { for (int k = 0; k < iterations; ++k) {
// apply 7x7 gaussian blur and divide luminance by result of gaussian blur // apply 13x13 gaussian blur and divide luminance by result of gaussian blur
gauss7x7div(tmpIThr, tmpThr, lumThr, fullTileSize, kernel7); gauss13x13div(tmpIThr, tmpThr, lumThr, fullTileSize, kernel13);
gauss7x7mult(tmpThr, tmpIThr, fullTileSize, kernel7); gauss13x13mult(tmpThr, tmpIThr, fullTileSize, kernel13);
if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) { if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) {
break; break;
} }
@ -741,7 +1031,7 @@ BENCHFUN
array2D<float> clipMask(W, H); array2D<float> clipMask(W, H);
constexpr float clipLimit = 0.95f; constexpr float clipLimit = 0.95f;
constexpr float maxSigma = 1.15f; constexpr float maxSigma = 2.f;
if (getSensorType() == ST_BAYER) { if (getSensorType() == ST_BAYER) {
const float whites[2][2] = { const float whites[2][2] = {
@ -790,6 +1080,10 @@ BENCHFUN
} }
} }
if (std::isnan(radius)) {
return;
}
if (showMask) { if (showMask) {
array2D<float>& L = blue; // blue will be overridden anyway => we can use its buffer to store L array2D<float>& L = blue; // blue will be overridden anyway => we can use its buffer to store L
#ifdef _OPENMP #ifdef _OPENMP

View File

@ -23,7 +23,7 @@
namespace rtengine namespace rtengine
{ {
class CieImage : class CieImage final :
public NonCopyable public NonCopyable
{ {
private: private:

View File

@ -20,7 +20,6 @@
#pragma once #pragma once
#include <array> #include <array>
#include <glibmm/ustring.h>
#include "rt_math.h" #include "rt_math.h"
#include "LUT.h" #include "LUT.h"
@ -30,6 +29,13 @@
#define SAT(a,b,c) ((float)max(a,b,c)-(float)min(a,b,c))/(float)max(a,b,c) #define SAT(a,b,c) ((float)max(a,b,c)-(float)min(a,b,c))/(float)max(a,b,c)
namespace Glib
{
class ustring;
}
namespace rtengine namespace rtengine
{ {

View File

@ -21,8 +21,7 @@
#include <memory> #include <memory>
#include <cmath> #include <cmath>
#include <cstring> #include <cstring>
#include <glib.h> #include <glibmm/ustring.h>
#include <glib/gstdio.h>
#include "rt_math.h" #include "rt_math.h"
@ -2186,7 +2185,7 @@ void PerceptualToneCurve::init()
} }
} }
void PerceptualToneCurve::initApplyState(PerceptualToneCurveState & state, Glib::ustring workingSpace) const void PerceptualToneCurve::initApplyState(PerceptualToneCurveState & state, const Glib::ustring &workingSpace) const
{ {
// Get the curve's contrast value, and convert to a chroma scaling // Get the curve's contrast value, and convert to a chroma scaling

View File

@ -22,21 +22,23 @@
#include <string> #include <string>
#include <vector> #include <vector>
#include <glibmm/ustring.h>
#include "rt_math.h" #include "rt_math.h"
#include "flatcurvetypes.h" #include "flatcurvetypes.h"
#include "diagonalcurvetypes.h" #include "diagonalcurvetypes.h"
#include "pipettebuffer.h"
#include "noncopyable.h" #include "noncopyable.h"
#include "LUT.h" #include "LUT.h"
#include "sleef.h" #include "sleef.h"
#define CURVES_MIN_POLY_POINTS 1000 #define CURVES_MIN_POLY_POINTS 1000
#include "rt_math.h"
#define CLIPI(a) ((a)>0?((a)<65534?(a):65534):0) #define CLIPI(a) ((a)>0?((a)<65534?(a):65534):0)
namespace Glib
{
class ustring;
}
using namespace std; using namespace std;
namespace rtengine namespace rtengine
@ -454,7 +456,7 @@ public:
virtual bool isIdentity () const = 0; virtual bool isIdentity () const = 0;
}; };
class DiagonalCurve : public Curve class DiagonalCurve final : public Curve
{ {
protected: protected:
@ -476,7 +478,7 @@ public:
}; };
}; };
class FlatCurve : public Curve, public rtengine::NonCopyable class FlatCurve final : public Curve, public rtengine::NonCopyable
{ {
private: private:
@ -940,7 +942,7 @@ private:
float calculateToneCurveContrastValue() const; float calculateToneCurveContrastValue() const;
public: public:
static void init(); static void init();
void initApplyState(PerceptualToneCurveState & state, Glib::ustring workingSpace) const; void initApplyState(PerceptualToneCurveState & state, const Glib::ustring& workingSpace) const;
void BatchApply(const size_t start, const size_t end, float *r, float *g, float *b, const PerceptualToneCurveState &state) const; void BatchApply(const size_t start, const size_t end, float *r, float *g, float *b, const PerceptualToneCurveState &state) const;
}; };

View File

@ -94,7 +94,6 @@
#ifdef WIN32 #ifdef WIN32
#include <sys/utime.h> #include <sys/utime.h>
#include <winsock2.h> #include <winsock2.h>
#define snprintf _snprintf
#define strcasecmp stricmp #define strcasecmp stricmp
#define strncasecmp strnicmp #define strncasecmp strnicmp
typedef __int64 INT64; typedef __int64 INT64;
@ -158,7 +157,6 @@ const float d65_white[3] = { 0.950456, 1, 1.088754 };
#define MIN(a,b) rtengine::min(a,static_cast<__typeof__(a)>(b)) #define MIN(a,b) rtengine::min(a,static_cast<__typeof__(a)>(b))
#define MAX(a,b) rtengine::max(a,static_cast<__typeof__(a)>(b)) #define MAX(a,b) rtengine::max(a,static_cast<__typeof__(a)>(b))
#define LIM(x,min,max) rtengine::LIM(x,static_cast<__typeof__(x)>(min),static_cast<__typeof__(x)>(max)) #define LIM(x,min,max) rtengine::LIM(x,static_cast<__typeof__(x)>(min),static_cast<__typeof__(x)>(max))
#define ULIM(x,y,z) rtengine::median(x,static_cast<__typeof__(x)>(y),static_cast<__typeof__(x)>(z))
#define CLIP(x) rtengine::CLIP(x) #define CLIP(x) rtengine::CLIP(x)
#define SWAP(a,b) { a=a+b; b=a-b; a=a-b; } #define SWAP(a,b) { a=a+b; b=a-b; a=a-b; }
@ -9868,6 +9866,7 @@ void CLASS identify()
filters = 0; filters = 0;
tiff_samples = colors = 3; tiff_samples = colors = 3;
load_raw = &CLASS canon_sraw_load_raw; load_raw = &CLASS canon_sraw_load_raw;
FORC4 cblack[c] = 0; // ALB
} else if (!strcmp(model,"PowerShot 600")) { } else if (!strcmp(model,"PowerShot 600")) {
height = 613; height = 613;
width = 854; width = 854;
@ -11021,7 +11020,6 @@ void CLASS nikon_14bit_load_raw()
/*RT*/#undef MIN /*RT*/#undef MIN
/*RT*/#undef ABS /*RT*/#undef ABS
/*RT*/#undef LIM /*RT*/#undef LIM
/*RT*/#undef ULIM
/*RT*/#undef CLIP /*RT*/#undef CLIP
#ifdef __GNUC__ #ifdef __GNUC__
#pragma GCC diagnostic pop #pragma GCC diagnostic pop

View File

@ -24,6 +24,7 @@
#include "dcrop.h" #include "dcrop.h"
#include "image8.h" #include "image8.h"
#include "imagefloat.h" #include "imagefloat.h"
#include "improccoordinator.h"
#include "labimage.h" #include "labimage.h"
#include "mytime.h" #include "mytime.h"
#include "procparams.h" #include "procparams.h"

View File

@ -18,11 +18,7 @@
*/ */
#pragma once #pragma once
#include "improccoordinator.h"
#include "rtengine.h" #include "rtengine.h"
#include "improcfun.h"
#include "imagesource.h"
#include "procevents.h"
#include "pipettebuffer.h" #include "pipettebuffer.h"
#include "../rtgui/threadutils.h" #include "../rtgui/threadutils.h"
@ -30,12 +26,13 @@ namespace rtengine
{ {
class Image8; class Image8;
class CieImage;
using namespace procparams; using namespace procparams;
class ImProcCoordinator; class ImProcCoordinator;
class Crop : public DetailedCrop, public PipetteBuffer class Crop final : public DetailedCrop, public PipetteBuffer
{ {
protected: protected:

View File

@ -31,7 +31,7 @@ namespace rtengine
{ {
class RawImage; class RawImage;
class dfInfo class dfInfo final
{ {
public: public:
@ -74,7 +74,7 @@ protected:
void updateRawImage(); void updateRawImage();
}; };
class DFManager class DFManager final
{ {
public: public:
void init(const Glib::ustring &pathname); void init(const Glib::ustring &pathname);

View File

@ -16,8 +16,6 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>. * along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/ */
#include <glib.h>
#include <glib/gstdio.h>
#include "curves.h" #include "curves.h"
#include <cmath> #include <cmath>
#include <vector> #include <vector>

View File

@ -29,7 +29,7 @@ namespace rtengine
{ {
class RawImage; class RawImage;
class ffInfo class ffInfo final
{ {
public: public:
@ -71,7 +71,7 @@ protected:
void updateRawImage(); void updateRawImage();
}; };
class FFManager class FFManager final
{ {
public: public:
void init(const Glib::ustring &pathname); void init(const Glib::ustring &pathname);

View File

@ -29,6 +29,7 @@
* available at https://arxiv.org/abs/1505.00996 * available at https://arxiv.org/abs/1505.00996
*/ */
#include "array2D.h"
#include "boxblur.h" #include "boxblur.h"
#include "guidedfilter.h" #include "guidedfilter.h"
#include "imagefloat.h" #include "imagefloat.h"

View File

@ -43,7 +43,6 @@
#include "color.h" #include "color.h"
#include "cJSON.h" #include "cJSON.h"
#define inkc_constant 0x696E6B43
namespace namespace
{ {

View File

@ -39,7 +39,7 @@ namespace procparams
typedef const double(*TMatrix)[3]; typedef const double(*TMatrix)[3];
class ProfileContent class ProfileContent final
{ {
public: public:
ProfileContent(); ProfileContent();
@ -54,7 +54,7 @@ private:
std::string data; std::string data;
}; };
class ICCStore class ICCStore final
{ {
public: public:
enum class ProfileType { enum class ProfileType {

View File

@ -20,7 +20,6 @@
#include <vector> #include <vector>
#include <glibmm/ustring.h>
#include <lcms2.h> #include <lcms2.h>
#include "alignedbuffer.h" #include "alignedbuffer.h"
@ -41,6 +40,13 @@
#define CHECK_BOUNDS 0 #define CHECK_BOUNDS 0
namespace Glib
{
class ustring;
}
namespace rtengine namespace rtengine
{ {
@ -658,7 +664,7 @@ public:
/* If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed /* If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed
* Can be safely used to reallocate an existing image */ * Can be safely used to reallocate an existing image */
void allocate (int W, int H) override void allocate (int W, int H) final
{ {
if (W == width && H == height) { if (W == width && H == height) {
@ -746,7 +752,7 @@ public:
} }
} }
void rotate (int deg) override void rotate (int deg) final
{ {
if (deg == 90) { if (deg == 90) {
@ -873,7 +879,7 @@ public:
} }
} }
void hflip () override void hflip () final
{ {
int width2 = width / 2; int width2 = width / 2;
@ -905,7 +911,7 @@ public:
#endif #endif
} }
void vflip () override void vflip () final
{ {
int height2 = height / 2; int height2 = height / 2;
@ -989,7 +995,7 @@ public:
} }
} }
void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const final
{ {
histogram.clear(); histogram.clear();
avg_r = avg_g = avg_b = 0.; avg_r = avg_g = avg_b = 0.;
@ -1328,7 +1334,7 @@ public:
* If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed * If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed
* Can be safely used to reallocate an existing image or to free up it's memory with "allocate (0,0);" * Can be safely used to reallocate an existing image or to free up it's memory with "allocate (0,0);"
*/ */
void allocate (int W, int H) override void allocate (int W, int H) final
{ {
if (W == width && H == height) { if (W == width && H == height) {
@ -1382,7 +1388,7 @@ public:
memcpy (dest->data, data, 3 * width * height * sizeof(T)); memcpy (dest->data, data, 3 * width * height * sizeof(T));
} }
void rotate (int deg) override void rotate (int deg) final
{ {
if (deg == 90) { if (deg == 90) {
@ -1516,7 +1522,7 @@ public:
} }
} }
void hflip () override void hflip () final
{ {
int width2 = width / 2; int width2 = width / 2;
@ -1552,7 +1558,7 @@ public:
} }
} }
void vflip () override void vflip () final
{ {
AlignedBuffer<T> lBuffer(3 * width); AlignedBuffer<T> lBuffer(3 * width);
@ -1619,7 +1625,7 @@ public:
} }
} }
void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const final
{ {
histogram.clear(); histogram.clear();
avg_r = avg_g = avg_b = 0.; avg_r = avg_g = avg_b = 0.;

View File

@ -187,8 +187,6 @@ void Image16::getStdImage(const ColorTemp &ctemp, int tran, Imagefloat* image, P
gm /= area; gm /= area;
bm /= area; bm /= area;
#define GCLIP( x ) Color::gamma_srgb(CLIP(x))
#ifdef _OPENMP #ifdef _OPENMP
#pragma omp parallel #pragma omp parallel
{ {

View File

@ -29,7 +29,7 @@ namespace rtengine
class Image8; class Image8;
class Imagefloat; class Imagefloat;
class Image16 : public IImage16, public ImageIO class Image16 final : public IImage16, public ImageIO
{ {
public: public:

View File

@ -151,8 +151,6 @@ void Image8::getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, P
gm /= area; gm /= area;
bm /= area; bm /= area;
#define GCLIP( x ) Color::gamma_srgb(CLIP(x))
#ifdef _OPENMP #ifdef _OPENMP
#pragma omp parallel #pragma omp parallel
{ {

View File

@ -27,7 +27,7 @@ namespace rtengine
{ {
class Imagefloat; class Imagefloat;
class Image8 : public IImage8, public ImageIO class Image8 final : public IImage8, public ImageIO
{ {
public: public:

View File

@ -23,12 +23,18 @@
#include <string> #include <string>
#include <vector> #include <vector>
#include <glibmm/ustring.h>
#include <libiptcdata/iptc-data.h> #include <libiptcdata/iptc-data.h>
#include "imageio.h" #include "imageio.h"
namespace Glib
{
class ustring;
}
namespace rtexif namespace rtexif
{ {
@ -38,7 +44,7 @@ class TagDirectory;
namespace rtengine namespace rtengine
{ {
class FrameData class FrameData final
{ {
protected: protected:
@ -95,7 +101,7 @@ public:
int getRating () const; int getRating () const;
}; };
class FramesData : public FramesMetaData { class FramesData final : public FramesMetaData {
private: private:
// frame's root IFD, can be a file root IFD or a SUB-IFD // frame's root IFD, can be a file root IFD or a SUB-IFD
std::vector<std::unique_ptr<FrameData>> frames; std::vector<std::unique_ptr<FrameData>> frames;

View File

@ -34,7 +34,7 @@ class LabImage;
/* /*
* Image type used by most tools; expected range: [0.0 ; 65535.0] * Image type used by most tools; expected range: [0.0 ; 65535.0]
*/ */
class Imagefloat : public IImagefloat, public ImageIO class Imagefloat final : public IImagefloat, public ImageIO
{ {
public: public:

View File

@ -25,7 +25,6 @@
#include "coord2d.h" #include "coord2d.h"
#include "imagedata.h" #include "imagedata.h"
#include "LUT.h"
#include "rtengine.h" #include "rtengine.h"
template<typename T> template<typename T>
@ -143,11 +142,11 @@ public:
virtual void setProgressListener (ProgressListener* pl) {} virtual void setProgressListener (ProgressListener* pl) {}
void increaseRef () override void increaseRef () final
{ {
references++; references++;
} }
void decreaseRef () override void decreaseRef () final
{ {
references--; references--;
@ -175,15 +174,15 @@ public:
return dirpyrdenoiseExpComp; return dirpyrdenoiseExpComp;
} }
// functions inherited from the InitialImage interface // functions inherited from the InitialImage interface
Glib::ustring getFileName () override Glib::ustring getFileName () final
{ {
return fileName; return fileName;
} }
cmsHPROFILE getEmbeddedProfile () override cmsHPROFILE getEmbeddedProfile () final
{ {
return embProfile; return embProfile;
} }
const FramesMetaData* getMetaData () override const FramesMetaData* getMetaData () final
{ {
return idata; return idata;
} }

View File

@ -27,7 +27,6 @@
#include "imagesource.h" #include "imagesource.h"
#include "improcfun.h" #include "improcfun.h"
#include "LUT.h" #include "LUT.h"
#include "procevents.h"
#include "rtengine.h" #include "rtengine.h"
#include "../rtgui/threadutils.h" #include "../rtgui/threadutils.h"
@ -55,7 +54,7 @@ class Crop;
* but using this class' LUT and other precomputed parameters. The main preview area is displaying a non framed Crop object, * but using this class' LUT and other precomputed parameters. The main preview area is displaying a non framed Crop object,
* while detail windows are framed Crop objects. * while detail windows are framed Crop objects.
*/ */
class ImProcCoordinator : public StagedImageProcessor class ImProcCoordinator final : public StagedImageProcessor
{ {
friend class Crop; friend class Crop;

View File

@ -31,15 +31,16 @@
#include "cieimage.h" #include "cieimage.h"
#include "clutstore.h" #include "clutstore.h"
#include "color.h" #include "color.h"
#include "colortemp.h"
#include "curves.h" #include "curves.h"
#include "dcp.h" #include "dcp.h"
#include "EdgePreservingDecomposition.h" #include "EdgePreservingDecomposition.h"
#include "iccmatrices.h" #include "iccmatrices.h"
#include "iccstore.h" #include "iccstore.h"
#include "imagesource.h" #include "imagesource.h"
#include "improccoordinator.h"
#include "improcfun.h" #include "improcfun.h"
#include "labimage.h" #include "labimage.h"
#include "pipettebuffer.h"
#include "procparams.h" #include "procparams.h"
#include "rt_math.h" #include "rt_math.h"
#include "rtengine.h" #include "rtengine.h"
@ -54,9 +55,6 @@
#include "mytime.h" #include "mytime.h"
#endif #endif
#undef CLIPD
#define CLIPD(a) ((a)>0.0f?((a)<1.0f?(a):1.0f):0.0f)
namespace { namespace {
using namespace rtengine; using namespace rtengine;

View File

@ -19,11 +19,17 @@
#pragma once #pragma once
#include <memory> #include <memory>
#include <vector>
#include "coord2d.h" #include "coord2d.h"
#include "gamutwarning.h" #include "gamutwarning.h"
#include "pipettebuffer.h"
namespace Glib
{
class ustring;
}
template<typename T> template<typename T>
class LUT; class LUT;
@ -44,6 +50,7 @@ class FramesMetaData;
class LensCorrection; class LensCorrection;
class NoiseCurve; class NoiseCurve;
class OpacityCurve; class OpacityCurve;
class PipetteBuffer;
class ToneCurve; class ToneCurve;
class WavCurve; class WavCurve;
class WavOpacityCurveBY; class WavOpacityCurveBY;

View File

@ -32,6 +32,7 @@
#include <iostream> #include <iostream>
#include <vector> #include <vector>
#include "array2D.h"
#include "color.h" #include "color.h"
#include "guidedfilter.h" #include "guidedfilter.h"
#include "iccstore.h" #include "iccstore.h"

View File

@ -50,13 +50,6 @@
#include "cplx_wavelet_dec.h" #include "cplx_wavelet_dec.h"
#define TS 64 // Tile size
#define offset 25 // shift between tiles
#define fTS ((TS/2+1)) // second dimension of Fourier tiles
#define blkrad 1 // radius of block averaging
#define epsilon 0.001f/(TS*TS) //tolerance
namespace rtengine namespace rtengine
{ {

View File

@ -25,11 +25,6 @@
#define JFREAD(file,buf,sizeofbuf) \ #define JFREAD(file,buf,sizeofbuf) \
((size_t) fread((void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file))) ((size_t) fread((void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file)))
#define JFWRITE(file,buf,sizeofbuf) \
((size_t) fwrite((const void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file)))
/* Expanded data source object for stdio input */ /* Expanded data source object for stdio input */
namespace namespace

View File

@ -9,7 +9,6 @@
#include <cstdio> /* fflush() */ #include <cstdio> /* fflush() */
#include <cstring> /* memset() */ #include <cstring> /* memset() */
#include <cmath> /* fsqrt() */ #include <cmath> /* fsqrt() */
#define fsqrt(X) sqrt(X)
/* Our includes */ /* Our includes */
#include "base.h" #include "base.h"

View File

@ -23,7 +23,7 @@
namespace rtengine namespace rtengine
{ {
class LabImage class LabImage final
{ {
private: private:
void allocLab(size_t w, size_t h); void allocLab(size_t w, size_t h);

View File

@ -18,14 +18,12 @@
// along with this program. If not, see <https://www.gnu.org/licenses/>. // along with this program. If not, see <https://www.gnu.org/licenses/>.
// //
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
#pragma once
#ifndef OPTHELPER_H
#define OPTHELPER_H
#define pow_F(a,b) (xexpf(b*xlogf(a))) #define pow_F(a,b) (xexpf(b*xlogf(a)))
#ifdef __SSE2__ #ifdef __SSE2__
#include "sleefsseavx.c" #include "sleefsseavx.h"
#endif #endif
#ifdef __GNUC__ #ifdef __GNUC__
@ -41,4 +39,3 @@
#define ALIGNED64 #define ALIGNED64
#define ALIGNED16 #define ALIGNED16
#endif #endif
#endif

View File

@ -18,10 +18,16 @@
*/ */
#pragma once #pragma once
#include <glibmm/ustring.h>
#include <cairomm/cairomm.h> #include <cairomm/cairomm.h>
namespace Glib
{
class ustring;
}
namespace rtengine namespace rtengine
{ {

View File

@ -24,7 +24,7 @@
namespace rtengine namespace rtengine
{ {
class ProcessingJobImpl : public ProcessingJob class ProcessingJobImpl final : public ProcessingJob
{ {
public: public:

View File

@ -49,10 +49,6 @@
#endif #endif
#include "opthelper.h" #include "opthelper.h"
#define clipretinex( val, minv, maxv ) (( val = (val < minv ? minv : val ) ) > maxv ? maxv : val )
#undef CLIPD
#define CLIPD(a) ((a)>0.0f?((a)<1.0f?(a):1.0f):0.0f)
namespace namespace
{ {
@ -426,10 +422,8 @@ namespace rtengine
{ {
#undef ABS #undef ABS
#undef DIST
#define ABS(a) ((a)<0?-(a):(a)) #define ABS(a) ((a)<0?-(a):(a))
#define DIST(a,b) (ABS(a-b))
RawImageSource::RawImageSource () RawImageSource::RawImageSource ()
: ImageSource() : ImageSource()
@ -2916,7 +2910,7 @@ lab2ProphotoRgbD50(float L, float A, float B, float& r, float& g, float& b)
float X; float X;
float Y; float Y;
float Z; float Z;
#define CLIP01(a) ((a)>0?((a)<1?(a):1):0)
{ {
// convert from Lab to XYZ // convert from Lab to XYZ
float x, y, z, fx, fy, fz; float x, y, z, fx, fy, fz;
@ -2951,9 +2945,6 @@ lab2ProphotoRgbD50(float L, float A, float B, float& r, float& g, float& b)
r = prophoto_xyz[0][0] * X + prophoto_xyz[0][1] * Y + prophoto_xyz[0][2] * Z; r = prophoto_xyz[0][0] * X + prophoto_xyz[0][1] * Y + prophoto_xyz[0][2] * Z;
g = prophoto_xyz[1][0] * X + prophoto_xyz[1][1] * Y + prophoto_xyz[1][2] * Z; g = prophoto_xyz[1][0] * X + prophoto_xyz[1][1] * Y + prophoto_xyz[1][2] * Z;
b = prophoto_xyz[2][0] * X + prophoto_xyz[2][1] * Y + prophoto_xyz[2][2] * Z; b = prophoto_xyz[2][0] * X + prophoto_xyz[2][1] * Y + prophoto_xyz[2][2] * Z;
// r = CLIP01(r);
// g = CLIP01(g);
// b = CLIP01(b);
} }
// Converts raw image including ICC input profile to working space - floating point version // Converts raw image including ICC input profile to working space - floating point version

View File

@ -37,7 +37,7 @@ class DiagonalCurve;
class RetinextransmissionCurve; class RetinextransmissionCurve;
class RetinexgaintransmissionCurve; class RetinexgaintransmissionCurve;
class RawImageSource : public ImageSource class RawImageSource final : public ImageSource
{ {
private: private:
static DiagonalCurve *phaseOneIccCurve; static DiagonalCurve *phaseOneIccCurve;

View File

@ -20,9 +20,12 @@
#pragma once #pragma once
#include "array2D.h"
#include "rt_math.h" #include "rt_math.h"
template<typename T>
class array2D;
namespace rtengine namespace rtengine
{ {

View File

@ -31,7 +31,6 @@
#include "imageformat.h" #include "imageformat.h"
#include "procevents.h" #include "procevents.h"
#include "rawmetadatalocation.h" #include "rawmetadatalocation.h"
#include "rt_math.h"
#include "settings.h" #include "settings.h"
#include "../rtgui/threadutils.h" #include "../rtgui/threadutils.h"

View File

@ -511,8 +511,6 @@ Thumbnail* Thumbnail::loadQuickFromRaw (const Glib::ustring& fname, RawMetaDataL
((filter >> ((((row) << 1 & 14) + ((col) & 1)) << 1) & 3)==0 || !filter) ((filter >> ((((row) << 1 & 14) + ((col) & 1)) << 1) & 3)==0 || !filter)
#define FISGREEN(filter,row,col) \ #define FISGREEN(filter,row,col) \
((filter >> ((((row) << 1 & 14) + ((col) & 1)) << 1) & 3)==1 || !filter) ((filter >> ((((row) << 1 & 14) + ((col) & 1)) << 1) & 3)==1 || !filter)
#define FISBLUE(filter,row,col) \
((filter >> ((((row) << 1 & 14) + ((col) & 1)) << 1) & 3)==2 || !filter)
RawMetaDataLocation Thumbnail::loadMetaDataFromRaw (const Glib::ustring& fname) RawMetaDataLocation Thumbnail::loadMetaDataFromRaw (const Glib::ustring& fname)
{ {

View File

@ -18,8 +18,6 @@
*/ */
#pragma once #pragma once
#include <glibmm/ustring.h>
#include <lcms2.h> #include <lcms2.h>
#include "image16.h" #include "image16.h"
@ -30,6 +28,13 @@
#include "../rtgui/threadutils.h" #include "../rtgui/threadutils.h"
namespace Glib
{
class ustring;
}
namespace rtengine namespace rtengine
{ {

View File

@ -80,7 +80,7 @@ public:
// bool bw_complementary; // bool bw_complementary;
double level0_cbdl; double level0_cbdl;
double level123_cbdl; double level123_cbdl;
Glib::ustring lensfunDbDirectory; ///< The directory containing the lensfun database. If empty, the system defaults will be used (as described in http://lensfun.sourceforge.net/manual/dbsearch.html) Glib::ustring lensfunDbDirectory; // The directory containing the lensfun database. If empty, the system defaults will be used, as described in https://lensfun.github.io/manual/latest/dbsearch.html
enum class ThumbnailInspectorMode { enum class ThumbnailInspectorMode {
JPEG, JPEG,

View File

@ -929,7 +929,7 @@ __inline float mulsignf(float x, float y) {
return intBitsToFloat(floatToRawIntBits(x) ^ (floatToRawIntBits(y) & (1 << 31))); return intBitsToFloat(floatToRawIntBits(x) ^ (floatToRawIntBits(y) & (1 << 31)));
} }
__inline float signf(float d) { return copysign(1, d); } __inline float signf(float d) { return std::copysign(1.f, d); }
__inline float mlaf(float x, float y, float z) { return x * y + z; } __inline float mlaf(float x, float y, float z) { return x * y + z; }
__inline int xisnanf(float x) { return x != x; } __inline int xisnanf(float x) { return x != x; }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -53,7 +53,6 @@ template<class T> T** allocArray (int W, int H)
return t; return t;
} }
#define HR_SCALE 2
StdImageSource::StdImageSource () : ImageSource(), img(nullptr), plistener(nullptr), full(false), max{}, rgbSourceModified(false) StdImageSource::StdImageSource () : ImageSource(), img(nullptr), plistener(nullptr), full(false), max{}, rgbSourceModified(false)
{ {

View File

@ -22,7 +22,6 @@
#include "rt_math.h" #include "rt_math.h"
#include "utils.h" #include "utils.h"
#include "rt_math.h"
using namespace std; using namespace std;

View File

@ -16,8 +16,6 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>. * along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/ */
#ifndef _CANONATTRIBS_
#define _CANONATTRIBS_
#include <cstdio> #include <cstdio>
#include <cmath> #include <cmath>
@ -557,7 +555,8 @@ public:
{ {
choices = { choices = {
{1, "Canon EF 50mm f/1.8"}, {1, "Canon EF 50mm f/1.8"},
{2, "Canon EF 28mm f/2.8"}, {2, "Canon EF 28mm f/2.8 or Sigma Lens"},
{2, "Sigma 24mm f/2.8 Super Wide II"},
{3, "Canon EF 135mm f/2.8 Soft"}, {3, "Canon EF 135mm f/2.8 Soft"},
{4, "Canon EF 35-105mm f/3.5-4.5 or Sigma Lens"}, {4, "Canon EF 35-105mm f/3.5-4.5 or Sigma Lens"},
{4, "Sigma UC Zoom 35-135mm f/4-5.6"}, {4, "Sigma UC Zoom 35-135mm f/4-5.6"},
@ -598,6 +597,8 @@ public:
{26, "Tamron SP AF 90mm f/2.8 Di Macro"}, {26, "Tamron SP AF 90mm f/2.8 Di Macro"},
{26, "Tamron SP AF 180mm f/3.5 Di Macro"}, {26, "Tamron SP AF 180mm f/3.5 Di Macro"},
{26, "Carl Zeiss Planar T* 50mm f/1.4"}, {26, "Carl Zeiss Planar T* 50mm f/1.4"},
{26, "Voigtlander APO Lanthar 125mm F2.5 SL Macro"},
{26, "Carl Zeiss Planar T 85mm f/1.4 ZE"},
{27, "Canon EF 35-80mm f/4-5.6"}, {27, "Canon EF 35-80mm f/4-5.6"},
{28, "Canon EF 80-200mm f/4.5-5.6 or Tamron Lens"}, {28, "Canon EF 80-200mm f/4.5-5.6 or Tamron Lens"},
{28, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF"}, {28, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF"},
@ -629,7 +630,7 @@ public:
{36, "Canon EF 38-76mm f/4.5-5.6"}, {36, "Canon EF 38-76mm f/4.5-5.6"},
{37, "Canon EF 35-80mm f/4-5.6 or Tamron Lens"}, {37, "Canon EF 35-80mm f/4-5.6 or Tamron Lens"},
{37, "Tamron 70-200mm f/2.8 Di LD IF Macro"}, {37, "Tamron 70-200mm f/2.8 Di LD IF Macro"},
{37, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro Model A20"}, {37, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro (A20)"},
{37, "Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical [IF]"}, {37, "Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical [IF]"},
{37, "Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical [IF] Macro"}, {37, "Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical [IF] Macro"},
{38, "Canon EF 80-200mm f/4.5-5.6"}, {38, "Canon EF 80-200mm f/4.5-5.6"},
@ -637,13 +638,14 @@ public:
{40, "Canon EF 28-80mm f/3.5-5.6"}, {40, "Canon EF 28-80mm f/3.5-5.6"},
{41, "Canon EF 28-90mm f/4-5.6"}, {41, "Canon EF 28-90mm f/4-5.6"},
{42, "Canon EF 28-200mm f/3.5-5.6 or Tamron Lens"}, {42, "Canon EF 28-200mm f/3.5-5.6 or Tamron Lens"},
{42, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro Model A20"}, {42, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro (A20)"},
{43, "Canon EF 28-105mm f/4-5.6"}, {43, "Canon EF 28-105mm f/4-5.6"},
{44, "Canon EF 90-300mm f/4.5-5.6"}, {44, "Canon EF 90-300mm f/4.5-5.6"},
{45, "Canon EF-S 18-55mm f/3.5-5.6 [II]"}, {45, "Canon EF-S 18-55mm f/3.5-5.6 [II]"},
{46, "Canon EF 28-90mm f/4-5.6"}, {46, "Canon EF 28-90mm f/4-5.6"},
{47, "Zeiss Milvus 35mm f/2 or 50mm f/2"}, {47, "Zeiss Milvus 35mm f/2 or 50mm f/2"},
{47, "Zeiss Milvus 50mm f/2 Makro"}, {47, "Zeiss Milvus 50mm f/2 Makro"},
{47, "Zeiss Milvus 135mm f/2 ZE"},
{48, "Canon EF-S 18-55mm f/3.5-5.6 IS"}, {48, "Canon EF-S 18-55mm f/3.5-5.6 IS"},
{49, "Canon EF-S 55-250mm f/4-5.6 IS"}, {49, "Canon EF-S 55-250mm f/4-5.6 IS"},
{50, "Canon EF-S 18-200mm f/3.5-5.6 IS"}, {50, "Canon EF-S 18-200mm f/3.5-5.6 IS"},
@ -660,10 +662,17 @@ public:
{103, "Samyang AF 14mm f/2.8 EF or Rokinon Lens"}, {103, "Samyang AF 14mm f/2.8 EF or Rokinon Lens"},
{103, "Rokinon SP 14mm f/2.4"}, {103, "Rokinon SP 14mm f/2.4"},
{103, "Rokinon AF 14mm f/2.8 EF"}, {103, "Rokinon AF 14mm f/2.8 EF"},
{106, "Rokinon SP / Samyang XP 35mm f/1.2"},
{112, "Sigma 28mm f/1.5 FF High-speed Prime or other Sigma Lens"},
{112, "Sigma 40mm f/1.5 FF High-speed Prime"},
{112, "Sigma 105mm f/1.5 FF High-speed Prime"},
{117, "Tamron 35-150mm f/2.8-4.0 Di VC OSD (A043) or other Tamron Lens"},
{117, "Tamron SP 35mm f/1.4 Di USD (F045)"},
{124, "Canon MP-E 65mm f/2.8 1-5x Macro Photo"}, {124, "Canon MP-E 65mm f/2.8 1-5x Macro Photo"},
{125, "Canon TS-E 24mm f/3.5L"}, {125, "Canon TS-E 24mm f/3.5L"},
{126, "Canon TS-E 45mm f/2.8"}, {126, "Canon TS-E 45mm f/2.8"},
{127, "Canon TS-E 90mm f/2.8"}, {127, "Canon TS-E 90mm f/2.8 or Tamron Lens"},
{127, "Tamron 18-200mm f/3.5-6.3 Di II VC (B018)"},
{129, "Canon EF 300mm f/2.8L USM"}, {129, "Canon EF 300mm f/2.8L USM"},
{130, "Canon EF 50mm f/1.0L USM"}, {130, "Canon EF 50mm f/1.0L USM"},
{131, "Canon EF 28-80mm f/2.8-4L USM or Sigma Lens"}, {131, "Canon EF 28-80mm f/2.8-4L USM or Sigma Lens"},
@ -674,10 +683,12 @@ public:
{131, "Sigma APO 120-300mm f/2.8 EX DG HSM"}, {131, "Sigma APO 120-300mm f/2.8 EX DG HSM"},
{131, "Sigma 4.5mm f/2.8 EX DC HSM Circular Fisheye"}, {131, "Sigma 4.5mm f/2.8 EX DC HSM Circular Fisheye"},
{131, "Sigma 70-200mm f/2.8 APO EX HSM"}, {131, "Sigma 70-200mm f/2.8 APO EX HSM"},
{131, "Sigma 28-70mm f/2.8-4 DG"},
{132, "Canon EF 1200mm f/5.6L USM"}, {132, "Canon EF 1200mm f/5.6L USM"},
{134, "Canon EF 600mm f/4L IS USM"}, {134, "Canon EF 600mm f/4L IS USM"},
{135, "Canon EF 200mm f/1.8L USM"}, {135, "Canon EF 200mm f/1.8L USM"},
{136, "Canon EF 300mm f/2.8L USM"}, {136, "Canon EF 300mm f/2.8L USM"},
{136, "Tamron SP 15-30mm f/2.8 Di VC USD (A012)"},
{137, "Canon EF 85mm f/1.2L USM or Sigma or Tamron Lens"}, {137, "Canon EF 85mm f/1.2L USM or Sigma or Tamron Lens"},
{137, "Sigma 18-50mm f/2.8-4.5 DC OS HSM"}, {137, "Sigma 18-50mm f/2.8-4.5 DC OS HSM"},
{137, "Sigma 50-200mm f/4-5.6 DC OS HSM"}, {137, "Sigma 50-200mm f/4-5.6 DC OS HSM"},
@ -687,14 +698,15 @@ public:
{137, "Sigma 17-70mm f/2.8-4 DC Macro OS HSM | C"}, {137, "Sigma 17-70mm f/2.8-4 DC Macro OS HSM | C"},
{137, "Sigma 17-50mm f/2.8 OS HSM"}, {137, "Sigma 17-50mm f/2.8 OS HSM"},
{137, "Sigma 18-200mm f/3.5-6.3 DC OS HSM [II]"}, {137, "Sigma 18-200mm f/3.5-6.3 DC OS HSM [II]"},
{137, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD"}, {137, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD (B008)"},
{137, "Sigma 8-16mm f/4.5-5.6 DC HSM"}, {137, "Sigma 8-16mm f/4.5-5.6 DC HSM"},
{137, "Tamron SP 17-50mm f/2.8 XR Di II VC"}, {137, "Tamron SP 17-50mm f/2.8 XR Di II VC (B005)"},
{137, "Tamron SP 60mm f/2 Macro Di II"}, {137, "Tamron SP 60mm f/2 Macro Di II (G005)"},
{137, "Sigma 10-20mm f/3.5 EX DC HSM"}, {137, "Sigma 10-20mm f/3.5 EX DC HSM"},
{137, "Tamron SP 24-70mm f/2.8 Di VC USD"}, {137, "Tamron SP 24-70mm f/2.8 Di VC USD"},
{137, "Sigma 18-35mm f/1.8 DC HSM"}, {137, "Sigma 18-35mm f/1.8 DC HSM"},
{137, "Sigma 12-24mm f/4.5-5.6 DG HSM II"}, {137, "Sigma 12-24mm f/4.5-5.6 DG HSM II"},
{137, "Sigma 70-300mm f/4-5.6 DG OS"},
{138, "Canon EF 28-80mm f/2.8-4L"}, {138, "Canon EF 28-80mm f/2.8-4L"},
{139, "Canon EF 400mm f/2.8L USM"}, {139, "Canon EF 400mm f/2.8L USM"},
{140, "Canon EF 500mm f/4.5L USM"}, {140, "Canon EF 500mm f/4.5L USM"},
@ -713,23 +725,28 @@ public:
{150, "Sigma 30mm f/1.4 DC HSM"}, {150, "Sigma 30mm f/1.4 DC HSM"},
{150, "Sigma 24mm f/1.8 DG Macro EX"}, {150, "Sigma 24mm f/1.8 DG Macro EX"},
{150, "Sigma 28mm f/1.8 DG Macro EX"}, {150, "Sigma 28mm f/1.8 DG Macro EX"},
{150, "Sigma 18-35mm f/1.8 DC HSM | A"},
{151, "Canon EF 200mm f/2.8L USM"}, {151, "Canon EF 200mm f/2.8L USM"},
{152, "Canon EF 300mm f/4L IS USM or Sigma Lens"}, {152, "Canon EF 300mm f/4L IS USM or Sigma Lens"},
{152, "Sigma 12-24mm f/4.5-5.6 EX DG ASPHERICAL HSM"}, {152, "Sigma 12-24mm f/4.5-5.6 EX DG ASPHERICAL HSM"},
{152, "Sigma 14mm f/2.8 EX Aspherical HSM"}, {152, "Sigma 14mm f/2.8 EX Aspherical HSM"},
{152, "Sigma 10-20mm f/4-5.6"}, {152, "Sigma 10-20mm f/4-5.6"},
{152, "Sigma 100-300mm f/4"}, {152, "Sigma 100-300mm f/4"},
{152, "Sigma 300-800mm f/5.6 APO EX DG HSM"},
{153, "Canon EF 35-350mm f/3.5-5.6L USM or Sigma or Tamron Lens"}, {153, "Canon EF 35-350mm f/3.5-5.6L USM or Sigma or Tamron Lens"},
{153, "Sigma 50-500mm f/4-6.3 APO HSM EX"}, {153, "Sigma 50-500mm f/4-6.3 APO HSM EX"},
{153, "Tamron AF 28-300mm f/3.5-6.3 XR LD Aspherical [IF] Macro"}, {153, "Tamron AF 28-300mm f/3.5-6.3 XR LD Aspherical [IF] Macro"},
{153, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro Model A14"}, {153, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro (A14)"},
{153, "Tamron 18-250mm f/3.5-6.3 Di II LD Aspherical [IF] Macro"}, {153, "Tamron 18-250mm f/3.5-6.3 Di II LD Aspherical [IF] Macro"},
{154, "Canon EF 20mm f/2.8 USM or Zeiss Lens"}, {154, "Canon EF 20mm f/2.8 USM or Zeiss Lens"},
{154, "Zeiss Milvus 21mm f/2.8"}, {154, "Zeiss Milvus 21mm f/2.8"},
{155, "Canon EF 85mm f/1.8 USM"}, {154, "Zeiss Milvus 15mm f/2.8 ZE"},
{154, "Zeiss Milvus 18mm f/2.8 ZE"},
{155, "Canon EF 85mm f/1.8 USM or Sigma Lens"},
{155, "Sigma 14mm f/1.8 DG HSM | A"},
{156, "Canon EF 28-105mm f/3.5-4.5 USM or Tamron Lens"}, {156, "Canon EF 28-105mm f/3.5-4.5 USM or Tamron Lens"},
{156, "Tamron SP 70-300mm f/4-5.6 Di VC USD"}, {156, "Tamron SP 70-300mm f/4-5.6 Di VC USD (A005)"},
{156, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF"}, {156, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF (176D)"},
{160, "Canon EF 20-35mm f/3.5-4.5 USM or Tamron or Tokina Lens"}, {160, "Canon EF 20-35mm f/3.5-4.5 USM or Tamron or Tokina Lens"},
{160, "Tamron AF 19-35mm f/3.5-4.5"}, {160, "Tamron AF 19-35mm f/3.5-4.5"},
{160, "Tokina AT-X 124 AF Pro DX 12-24mm f/4"}, {160, "Tokina AT-X 124 AF Pro DX 12-24mm f/4"},
@ -742,7 +759,7 @@ public:
{161, "Sigma 24-60mm f/2.8 EX DG"}, {161, "Sigma 24-60mm f/2.8 EX DG"},
{161, "Tamron AF 17-50mm f/2.8 Di-II LD Aspherical"}, {161, "Tamron AF 17-50mm f/2.8 Di-II LD Aspherical"},
{161, "Tamron 90mm f/2.8"}, {161, "Tamron 90mm f/2.8"},
{161, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF"}, {161, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF (A05)"},
{161, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro"}, {161, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro"},
{161, "Tokina AT-X 24-70mm f/2.8 PRO FX (IF)"}, {161, "Tokina AT-X 24-70mm f/2.8 PRO FX (IF)"},
{162, "Canon EF 200mm f/2.8L USM"}, {162, "Canon EF 200mm f/2.8L USM"},
@ -762,18 +779,30 @@ public:
{169, "Sigma 30mm f/1.4 EX DC HSM"}, {169, "Sigma 30mm f/1.4 EX DC HSM"},
{169, "Sigma 35mm f/1.4 DG HSM"}, {169, "Sigma 35mm f/1.4 DG HSM"},
{169, "Sigma 35mm f/1.5 FF High-Speed Prime | 017"}, {169, "Sigma 35mm f/1.5 FF High-Speed Prime | 017"},
{170, "Canon EF 200mm f/2.8L II USM"}, {169, "Sigma 70mm f/2.8 Macro EX DG"},
{170, "Canon EF 200mm f/2.8L II USM or Sigma Lens"},
{170, "Sigma 300mm f/2.8 APO EX DG HSM"},
{170, "Sigma 800mm f/5.6 APO EX DG HSM"},
{171, "Canon EF 300mm f/4L USM"}, {171, "Canon EF 300mm f/4L USM"},
{172, "Canon EF 400mm f/5.6L USM or Sigma Lens"}, {172, "Canon EF 400mm f/5.6L USM or Sigma Lens"},
{172, "Sigma 150-600mm f/5-6.3 DG OS HSM | S"}, {172, "Sigma 150-600mm f/5-6.3 DG OS HSM | S"},
{172, "Sigma 500mm f/4.5 APO EX DG HSM"},
{173, "Canon EF 180mm Macro f/3.5L USM or Sigma Lens"}, {173, "Canon EF 180mm Macro f/3.5L USM or Sigma Lens"},
{173, "Sigma 180mm EX HSM Macro f/3.5"}, {173, "Sigma 180mm EX HSM Macro f/3.5"},
{173, "Sigma APO Macro 150mm f/2.8 EX DG HSM"}, {173, "Sigma APO Macro 150mm f/2.8 EX DG HSM"},
{173, "Sigma 10mm f/2.8 EX DC Fisheye"},
{173, "Sigma 15mm f/2.8 EX DG Diagonal Fisheye"},
{173, "Venus Laowa 100mm F2.8 2X Ultra Macro APO"},
{174, "Canon EF 135mm f/2L USM or Other Lens"}, {174, "Canon EF 135mm f/2L USM or Other Lens"},
{174, "Sigma 70-200mm f/2.8 EX DG APO OS HSM"}, {174, "Sigma 70-200mm f/2.8 EX DG APO OS HSM"},
{174, "Sigma 50-500mm f/4.5-6.3 APO DG OS HSM"}, {174, "Sigma 50-500mm f/4.5-6.3 APO DG OS HSM"},
{174, "Sigma 150-500mm f/5-6.3 APO DG OS HSM"}, {174, "Sigma 150-500mm f/5-6.3 APO DG OS HSM"},
{174, "Zeiss Milvus 100mm f/2 Makro"}, {174, "Zeiss Milvus 100mm f/2 Makro"},
{174, "Sigma APO 50-150mm f/2.8 EX DC OS HSM"},
{174, "Sigma APO 120-300mm f/2.8 EX DG OS HSM"},
{174, "Sigma 120-300mm f/2.8 DG OS HSM S013"},
{174, "Sigma 120-400mm f/4.5-5.6 APO DG OS HSM"},
{174, "Sigma 200-500mm f/2.8 APO EX DG"},
{175, "Canon EF 400mm f/2.8L USM"}, {175, "Canon EF 400mm f/2.8L USM"},
{176, "Canon EF 24-85mm f/3.5-4.5 USM"}, {176, "Canon EF 24-85mm f/3.5-4.5 USM"},
{177, "Canon EF 300mm f/4L IS USM"}, {177, "Canon EF 300mm f/4L IS USM"},
@ -788,6 +817,8 @@ public:
{180, "Sigma 24mm f/1.5 FF High-Speed Prime | 017"}, {180, "Sigma 24mm f/1.5 FF High-Speed Prime | 017"},
{180, "Sigma 50mm f/1.5 FF High-Speed Prime | 017"}, {180, "Sigma 50mm f/1.5 FF High-Speed Prime | 017"},
{180, "Sigma 85mm f/1.5 FF High-Speed Prime | 017"}, {180, "Sigma 85mm f/1.5 FF High-Speed Prime | 017"},
{180, "Tokina Opera 50mm f/1.4 FF"},
{180, "Sigma 20mm f/1.4 DG HSM | A"},
{181, "Canon EF 100-400mm f/4.5-5.6L IS USM + 1.4x or Sigma Lens"}, {181, "Canon EF 100-400mm f/4.5-5.6L IS USM + 1.4x or Sigma Lens"},
{181, "Sigma 150-600mm f/5-6.3 DG OS HSM | S + 1.4x"}, {181, "Sigma 150-600mm f/5-6.3 DG OS HSM | S + 1.4x"},
{182, "Canon EF 100-400mm f/4.5-5.6L IS USM + 2x or Sigma Lens"}, {182, "Canon EF 100-400mm f/4.5-5.6L IS USM + 2x or Sigma Lens"},
@ -815,10 +846,13 @@ public:
{196, "Canon EF 75-300mm f/4-5.6 USM"}, {196, "Canon EF 75-300mm f/4-5.6 USM"},
{197, "Canon EF 75-300mm f/4-5.6 IS USM or Sigma Lens"}, {197, "Canon EF 75-300mm f/4-5.6 IS USM or Sigma Lens"},
{197, "Sigma 18-300mm f/3.5-6.3 DC Macro OS HS"}, {197, "Sigma 18-300mm f/3.5-6.3 DC Macro OS HS"},
{198, "Canon EF 50mm f/1.4 USM or Zeiss Lens"}, {198, "Canon EF 50mm f/1.4 USM or Other Lens"},
{198, "Zeiss Otus 55mm f/1.4 ZE"}, {198, "Zeiss Otus 55mm f/1.4 ZE"},
{198, "Zeiss Otus 85mm f/1.4 ZE"}, {198, "Zeiss Otus 85mm f/1.4 ZE"},
{198, "Zeiss Milvus 25mm f/1.4"}, {198, "Zeiss Milvus 25mm f/1.4"},
{198, "Zeiss Otus 100mm f/1.4"},
{198, "Zeiss Milvus 35mm f/1.4 ZE"},
{198, "Yongnuo YN 35mm f/2"},
{199, "Canon EF 28-80mm f/3.5-5.6 USM"}, {199, "Canon EF 28-80mm f/3.5-5.6 USM"},
{200, "Canon EF 75-300mm f/4-5.6 USM"}, {200, "Canon EF 75-300mm f/4-5.6 USM"},
{201, "Canon EF 28-80mm f/3.5-5.6 USM"}, {201, "Canon EF 28-80mm f/3.5-5.6 USM"},
@ -829,13 +863,14 @@ public:
{211, "Canon EF 28-200mm f/3.5-5.6 USM"}, {211, "Canon EF 28-200mm f/3.5-5.6 USM"},
{212, "Canon EF 28-105mm f/4-5.6 USM"}, {212, "Canon EF 28-105mm f/4-5.6 USM"},
{213, "Canon EF 90-300mm f/4.5-5.6 USM or Tamron Lens"}, {213, "Canon EF 90-300mm f/4.5-5.6 USM or Tamron Lens"},
{213, "Tamron SP 150-600mm f/5-6.3 Di VC USD"}, {213, "Tamron SP 150-600mm f/5-6.3 Di VC USD (A011)"},
{213, "Tamron 16-300mm f/3.5-6.3 Di II VC PZD Macro"}, {213, "Tamron 16-300mm f/3.5-6.3 Di II VC PZD Macro (B016)"},
{213, "Tamron SP 35mm f/1.8 Di VC USD"}, {213, "Tamron SP 35mm f/1.8 Di VC USD (F012)"},
{213, "Tamron SP 45mm f/1.8 Di VC USD"}, {213, "Tamron SP 45mm f/1.8 Di VC USD (F013)"},
{214, "Canon EF-S 18-55mm f/3.5-5.6 USM"}, {214, "Canon EF-S 18-55mm f/3.5-5.6 USM"},
{215, "Canon EF 55-200mm f/4.5-5.6 II USM"}, {215, "Canon EF 55-200mm f/4.5-5.6 II USM"},
{217, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD"}, {217, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD"},
{220, "Yongnuo YN 50mm f/1.8"},
{224, "Canon EF 70-200mm f/2.8L IS USM"}, {224, "Canon EF 70-200mm f/2.8L IS USM"},
{225, "Canon EF 70-200mm f/2.8L IS USM + 1.4x"}, {225, "Canon EF 70-200mm f/2.8L IS USM + 1.4x"},
{226, "Canon EF 70-200mm f/2.8L IS USM + 2x"}, {226, "Canon EF 70-200mm f/2.8L IS USM + 2x"},
@ -843,7 +878,8 @@ public:
{228, "Canon EF 28-105mm f/3.5-4.5 USM"}, {228, "Canon EF 28-105mm f/3.5-4.5 USM"},
{229, "Canon EF 16-35mm f/2.8L USM"}, {229, "Canon EF 16-35mm f/2.8L USM"},
{230, "Canon EF 24-70mm f/2.8L USM"}, {230, "Canon EF 24-70mm f/2.8L USM"},
{231, "Canon EF 17-40mm f/4L USM"}, {231, "Canon EF 17-40mm f/4L USM or Sigma Lens"},
{231, "Sigma 12-24mm f/4 DG HSM A016"},
{232, "Canon EF 70-300mm f/4.5-5.6 DO IS USM"}, {232, "Canon EF 70-300mm f/4.5-5.6 DO IS USM"},
{233, "Canon EF 28-300mm f/3.5-5.6L IS USM"}, {233, "Canon EF 28-300mm f/3.5-5.6L IS USM"},
{234, "Canon EF-S 17-85mm f/4-5.6 IS USM or Tokina Lens"}, {234, "Canon EF-S 17-85mm f/4-5.6 IS USM or Tokina Lens"},
@ -867,13 +903,19 @@ public:
{248, "Sigma 24-35mm f/2 DG HSM | A"}, {248, "Sigma 24-35mm f/2 DG HSM | A"},
{248, "Sigma 135mm f/2 FF High-Speed Prime | 017"}, {248, "Sigma 135mm f/2 FF High-Speed Prime | 017"},
{248, "Sigma 24-35mm f/2.2 FF Zoom | 017"}, {248, "Sigma 24-35mm f/2.2 FF Zoom | 017"},
{248, "Sigma 135mm f/1.8 DG HSM A017"},
{249, "Canon EF 800mm f/5.6L IS USM"}, {249, "Canon EF 800mm f/5.6L IS USM"},
{250, "Canon EF 24mm f/1.4L II USM or Sigma Lens"}, {250, "Canon EF 24mm f/1.4L II USM or Sigma Lens"},
{250, "Sigma 20mm f/1.4 DG HSM | A"}, {250, "Sigma 20mm f/1.4 DG HSM | A"},
{250, "Sigma 20mm f/1.5 FF High-Speed Prime | 017"}, {250, "Sigma 20mm f/1.5 FF High-Speed Prime | 017"},
{250, "Tokina Opera 16-28mm f/2.8 FF"},
{250, "Sigma 85mm f/1.4 DG HSM A016"},
{251, "Canon EF 70-200mm f/2.8L IS II USM"}, {251, "Canon EF 70-200mm f/2.8L IS II USM"},
{251, "Canon EF 70-200mm f/2.8L IS III USM"},
{252, "Canon EF 70-200mm f/2.8L IS II USM + 1.4x"}, {252, "Canon EF 70-200mm f/2.8L IS II USM + 1.4x"},
{252, "Canon EF 70-200mm f/2.8L IS III USM + 1.4x"},
{253, "Canon EF 70-200mm f/2.8L IS II USM + 2x"}, {253, "Canon EF 70-200mm f/2.8L IS II USM + 2x"},
{253, "Canon EF 70-200mm f/2.8L IS III USM + 2x"},
{254, "Canon EF 100mm f/2.8L Macro IS USM"}, {254, "Canon EF 100mm f/2.8L Macro IS USM"},
{255, "Sigma 24-105mm f/4 DG OS HSM | A or Other Sigma Lens"}, {255, "Sigma 24-105mm f/4 DG OS HSM | A or Other Sigma Lens"},
{255, "Sigma 180mm f/2.8 EX DG OS HSM APO Macro"}, {255, "Sigma 180mm f/2.8 EX DG OS HSM APO Macro"},
@ -882,6 +924,12 @@ public:
{368, "Sigma 50mm f/1.4 DG HSM | A"}, {368, "Sigma 50mm f/1.4 DG HSM | A"},
{368, "Sigma 40mm f/1.4 DG HSM | A"}, {368, "Sigma 40mm f/1.4 DG HSM | A"},
{368, "Sigma 60-600mm f/4.5-6.3 DG OS HSM | S"}, {368, "Sigma 60-600mm f/4.5-6.3 DG OS HSM | S"},
{368, "Sigma 28mm f/1.4 DG HSM | A"},
{368, "Sigma 150-600mm f/5-6.3 DG OS HSM | S"},
{368, "Sigma 85mm f/1.4 DG HSM | A"},
{368, "Sigma 105mm f/1.4 DG HSM"},
{368, "Sigma 14-24mm f/2.8 DG HSM"},
{368, "Sigma 70mm f/2.8 DG Macro"},
{488, "Canon EF-S 15-85mm f/3.5-5.6 IS USM"}, {488, "Canon EF-S 15-85mm f/3.5-5.6 IS USM"},
{489, "Canon EF 70-300mm f/4-5.6L IS USM"}, {489, "Canon EF 70-300mm f/4-5.6L IS USM"},
{490, "Canon EF 8-15mm f/4L Fisheye USM"}, {490, "Canon EF 8-15mm f/4L Fisheye USM"},
@ -897,7 +945,7 @@ public:
{493, "Canon EF 24-105mm f/4L IS USM"}, {493, "Canon EF 24-105mm f/4L IS USM"},
{494, "Canon EF 600mm f/4L IS II USM"}, {494, "Canon EF 600mm f/4L IS II USM"},
{495, "Canon EF 24-70mm f/2.8L II USM or Sigma Lens"}, {495, "Canon EF 24-70mm f/2.8L II USM or Sigma Lens"},
{495, "Sigma 24-70mm F2.8 DG OS HSM | A"}, {495, "Sigma 24-70mm f/2.8 DG OS HSM | A"},
{496, "Canon EF 200-400mm f/4L IS USM"}, {496, "Canon EF 200-400mm f/4L IS USM"},
{499, "Canon EF 200-400mm f/4L IS USM + 1.4x"}, {499, "Canon EF 200-400mm f/4L IS USM + 1.4x"},
{502, "Canon EF 28mm f/2.8 IS USM or Tamron Lens"}, {502, "Canon EF 28mm f/2.8 IS USM or Tamron Lens"},
@ -908,14 +956,16 @@ public:
{506, "Canon EF 400mm f/4 DO IS II USM"}, {506, "Canon EF 400mm f/4 DO IS II USM"},
{507, "Canon EF 16-35mm f/4L IS USM"}, {507, "Canon EF 16-35mm f/4L IS USM"},
{508, "Canon EF 11-24mm f/4L USM or Tamron Lens"}, {508, "Canon EF 11-24mm f/4L USM or Tamron Lens"},
{508, "Tamron 10-24mm f/3.5-4.5 Di II VC HLD"}, {508, "Tamron 10-24mm f/3.5-4.5 Di II VC HLD (B023)"},
{624, "Sigma 70-200mm f/2.8 DG OS HSM | S"},
{747, "Canon EF 100-400mm f/4.5-5.6L IS II USM or Tamron Lens"}, {747, "Canon EF 100-400mm f/4.5-5.6L IS II USM or Tamron Lens"},
{747, "Tamron SP 150-600mm f/5-6.3 Di VC USD G2"}, {747, "Tamron SP 150-600mm f/5-6.3 Di VC USD G2"},
{748, "Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x or Tamron Lens"}, {748, "Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x or Tamron Lens"},
{748, "Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 1.4x"}, {748, "Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 1.4x"},
{748, "Tamron 70-210mm f/4 Di VC USD (A034) + 2x"}, {748, "Tamron 70-210mm f/4 Di VC USD (A034) + 2x"},
{749, "Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 2x"}, {749, "Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 2x"},
{750, "Canon EF 35mm f/1.4L II USM"}, {750, "Canon EF 35mm f/1.4L II USM or Tamron Lens"},
{750, "Tamron SP 85mm f/1.8 Di VC USD (F016)"},
{751, "Canon EF 16-35mm f/2.8L III USM"}, {751, "Canon EF 16-35mm f/2.8L III USM"},
{752, "Canon EF 24-105mm f/4L IS II USM"}, {752, "Canon EF 24-105mm f/4L IS II USM"},
{753, "Canon EF 85mm f/1.4L IS USM"}, {753, "Canon EF 85mm f/1.4L IS USM"},
@ -938,16 +988,21 @@ public:
{4154, "Canon EF-S 24mm f/2.8 STM"}, {4154, "Canon EF-S 24mm f/2.8 STM"},
{4155, "Canon EF-M 28mm f/3.5 Macro IS STM"}, {4155, "Canon EF-M 28mm f/3.5 Macro IS STM"},
{4156, "Canon EF 50mm f/1.8 STM"}, {4156, "Canon EF 50mm f/1.8 STM"},
{4157, "Canon EF-M 18-150mm 1:3.5-6.3 IS STM"}, {4157, "Canon EF-M 18-150mm f/3.5-6.3 IS STM"},
{4158, "Canon EF-S 18-55mm f/4-5.6 IS STM"}, {4158, "Canon EF-S 18-55mm f/4-5.6 IS STM"},
{4159, "Canon EF-M 32mm f/1.4 STM"}, {4159, "Canon EF-M 32mm f/1.4 STM"},
{4160, "Canon EF-S 35mm f/2.8 Macro IS STM"}, {4160, "Canon EF-S 35mm f/2.8 Macro IS STM"},
{4208, "Sigma 56mm f/1.4 DC DN | C"},
{36910, "Canon EF 70-300mm f/4-5.6 IS II USM"}, {36910, "Canon EF 70-300mm f/4-5.6 IS II USM"},
{36912, "Canon EF-S 18-135mm f/3.5-5.6 IS USM"}, {36912, "Canon EF-S 18-135mm f/3.5-5.6 IS USM"},
{61182, "Canon RF 35mm F1.8 Macro IS STM or other Canon RF Lens"}, {61182, "Canon RF 35mm F1.8 Macro IS STM or other Canon RF Lens"},
{61182, "Canon RF 50mm F1.2 L USM"}, {61182, "Canon RF 50mm F1.2 L USM"},
{61182, "Canon RF 24-105mm F4 L IS USM"}, {61182, "Canon RF 24-105mm F4 L IS USM"},
{61182, "Canon RF 28-70mm F2 L USM"}, {61182, "Canon RF 28-70mm F2 L USM"},
{61182, "Canon RF 85mm F1.2L USM"},
{61182, "Canon RF 24-240mm F4-6.3 IS USM"},
{61182, "Canon RF 24-70mm F2.8 L IS USM"},
{61182, "Canon RF 15-35mm F2.8 L IS USM"},
{61491, "Canon CN-E 14mm T3.1 L F"}, {61491, "Canon CN-E 14mm T3.1 L F"},
{61492, "Canon CN-E 24mm T1.5 L F"}, {61492, "Canon CN-E 24mm T1.5 L F"},
{61494, "Canon CN-E 85mm T1.3 L F"}, {61494, "Canon CN-E 85mm T1.3 L F"},
@ -1514,7 +1569,11 @@ public:
{ {
choices[1042] = "EOS M50 / Kiss M"; choices[1042] = "EOS M50 / Kiss M";
choices[2049] = "PowerShot SX740 HS"; choices[2049] = "PowerShot SX740 HS";
choices[2052] = "PowerShot G5 X Mark II";
choices[2053] = "PowerShot SX70 HS"; choices[2053] = "PowerShot SX70 HS";
choices[2056] = "PowerShot G7 X Mark III";
choices[2065] = "EOS M6 Mark II";
choices[2066] = "EOS M200";
choices[16842752] = "PowerShot A30"; choices[16842752] = "PowerShot A30";
choices[17039360] = "PowerShot S300 / Digital IXUS 300 / IXY Digital 300"; choices[17039360] = "PowerShot S300 / Digital IXUS 300 / IXY Digital 300";
choices[17170432] = "PowerShot A20"; choices[17170432] = "PowerShot A20";
@ -1679,6 +1738,7 @@ public:
choices[52822016] = "PowerShot A3400 IS"; choices[52822016] = "PowerShot A3400 IS";
choices[52887552] = "PowerShot A2400 IS"; choices[52887552] = "PowerShot A2400 IS";
choices[52953088] = "PowerShot A2300"; choices[52953088] = "PowerShot A2300";
choices[53608448] = "PowerShot S100V";
choices[53673984] = "PowerShot G15"; choices[53673984] = "PowerShot G15";
choices[53739520] = "PowerShot SX50 HS"; choices[53739520] = "PowerShot SX50 HS";
choices[53805056] = "PowerShot SX160 IS"; choices[53805056] = "PowerShot SX160 IS";
@ -1737,7 +1797,7 @@ public:
choices[67239936] = "PowerShot SX420 IS"; choices[67239936] = "PowerShot SX420 IS";
choices[67305472] = "PowerShot ELPH 190 IS / IXUS 180 / IXY 190"; choices[67305472] = "PowerShot ELPH 190 IS / IXUS 180 / IXY 190";
choices[67371008] = "PowerShot G1"; choices[67371008] = "PowerShot G1";
choices[67371009] = "IXY 180"; choices[67371009] = "PowerShot ELPH 180 IS / IXUS 175 / IXY 180";
choices[67436544] = "PowerShot SX720 HS"; choices[67436544] = "PowerShot SX720 HS";
choices[67502080] = "PowerShot SX620 HS"; choices[67502080] = "PowerShot SX620 HS";
choices[67567616] = "EOS M6"; choices[67567616] = "EOS M6";
@ -1821,7 +1881,7 @@ public:
choices[2147484453] = "EOS 70D"; choices[2147484453] = "EOS 70D";
choices[2147484454] = "EOS Rebel T5i / 700D / Kiss X7i"; choices[2147484454] = "EOS Rebel T5i / 700D / Kiss X7i";
choices[2147484455] = "EOS Rebel T5 / 1200D / Kiss X70 / Hi"; choices[2147484455] = "EOS Rebel T5 / 1200D / Kiss X70 / Hi";
choices[2147484456] = "EOS-1D X MARK II"; choices[2147484456] = "EOS-1D X Mark II";
choices[2147484465] = "EOS M"; choices[2147484465] = "EOS M";
choices[2147484486] = "EOS Rebel SL1 / 100D / Kiss X7"; choices[2147484486] = "EOS Rebel SL1 / 100D / Kiss X7";
choices[2147484487] = "EOS Rebel T6s / 760D / 8000D"; choices[2147484487] = "EOS Rebel T6s / 760D / 8000D";
@ -1837,8 +1897,14 @@ public:
choices[2147484680] = "EOS 77D / 9000D"; choices[2147484680] = "EOS 77D / 9000D";
choices[2147484695] = "EOS Rebel SL2 / 200D / Kiss X9"; choices[2147484695] = "EOS Rebel SL2 / 200D / Kiss X9";
choices[2147484706] = "EOS Rebel T100 / 4000D / 3000D"; choices[2147484706] = "EOS Rebel T100 / 4000D / 3000D";
choices[2147484708] = "EOR R"; choices[2147484708] = "EOS R";
choices[2147484712] = "EOS-1D X Mark III";
choices[2147484722] = "EOS Rebel T7 / 2000D / 1500D / Kiss X90"; choices[2147484722] = "EOS Rebel T7 / 2000D / 1500D / Kiss X90";
choices[2147484723] = "EOS RP";
choices[2147484726] = "EOS SL3 / 250D / Kiss X10";
choices[2147484727] = "EOS 90D";
choices[2147484960] = "EOS D2000C";
choices[2147485024] = "EOS D6000C";
} }
}; };
CAModelIDInterpreter caModelIDInterpreter; CAModelIDInterpreter caModelIDInterpreter;
@ -2074,5 +2140,4 @@ const TagAttrib canonAttribs[] = {
{ -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr}
}; };
} }
#endif

View File

@ -16,8 +16,6 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>. * along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/ */
#ifndef _FUJIATTRIBS_
#define _FUJIATTRIBS_
#include "rtexif.h" #include "rtexif.h"
@ -312,5 +310,4 @@ const TagAttrib fujiAttribs[] = {
{ -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr}
}; };
} }
#endif

View File

@ -1,8 +1,6 @@
/* /*
* This file is part of RawTherapee. * This file is part of RawTherapee.
*/ */
#ifndef _KODAKATTRIBS_
#define _KODAKATTRIBS_
#include <string.h> #include <string.h>
#include "rtexif.h" #include "rtexif.h"
@ -161,5 +159,4 @@ const TagAttrib kodakIfdAttribs[] = {
}; };
} }
#endif

View File

@ -16,8 +16,6 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>. * along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/ */
#ifndef _NIKONATTRIBS_
#define _NIKONATTRIBS_
#include <cstdio> #include <cstdio>
#include <cstring> #include <cstring>
@ -627,6 +625,7 @@ const std::map<std::string, std::string> NALensDataInterpreter::lenses = {
{"02 48 65 65 24 24 02 00", "Sigma Macro 90mm f/2.8"}, {"02 48 65 65 24 24 02 00", "Sigma Macro 90mm f/2.8"},
{"03 43 5C 81 35 35 02 00", "Soligor AF C/D Zoom UMCS 70-210mm 1:4.5"}, {"03 43 5C 81 35 35 02 00", "Soligor AF C/D Zoom UMCS 70-210mm 1:4.5"},
{"03 48 5C 81 30 30 02 00", "AF Zoom-Nikkor 70-210mm f/4"}, {"03 48 5C 81 30 30 02 00", "AF Zoom-Nikkor 70-210mm f/4"},
{"03 54 68 68 0C 0C 00 00", "Zeiss Otus 1.4/100"},
{"04 48 3C 3C 24 24 03 00", "AF Nikkor 28mm f/2.8"}, {"04 48 3C 3C 24 24 03 00", "AF Nikkor 28mm f/2.8"},
{"05 54 50 50 0C 0C 04 00", "AF Nikkor 50mm f/1.4"}, {"05 54 50 50 0C 0C 04 00", "AF Nikkor 50mm f/1.4"},
{"06 3F 68 68 2C 2C 06 00", "Cosina AF 100mm f/3.5 Macro"}, {"06 3F 68 68 2C 2C 06 00", "Cosina AF 100mm f/3.5 Macro"},
@ -906,12 +905,14 @@ const std::map<std::string, std::string> NALensDataInterpreter::lenses = {
{"7F 48 2B 5C 24 34 1C 06", "Sigma 17-70mm f/2.8-4.5 DC Macro Asp. IF"}, {"7F 48 2B 5C 24 34 1C 06", "Sigma 17-70mm f/2.8-4.5 DC Macro Asp. IF"},
{"7F 48 2D 50 24 24 1C 06", "Sigma 18-50mm f/2.8 EX DC Macro"}, {"7F 48 2D 50 24 24 1C 06", "Sigma 18-50mm f/2.8 EX DC Macro"},
{"80 48 1A 1A 24 24 85 06", "AF DX Fisheye-Nikkor 10.5mm f/2.8G ED"}, {"80 48 1A 1A 24 24 85 06", "AF DX Fisheye-Nikkor 10.5mm f/2.8G ED"},
{"80 48 1C 29 24 24 7A 06", "Tokina atx-i 11-16mm f/2.8 CF"},
{"81 34 76 A6 38 40 4B 0E", "Sigma 150-600mm f/5-6.3 DG OS HSM | S"}, {"81 34 76 A6 38 40 4B 0E", "Sigma 150-600mm f/5-6.3 DG OS HSM | S"},
{"81 54 80 80 18 18 86 0E", "AF-S VR Nikkor 200mm f/2G IF-ED"}, {"81 54 80 80 18 18 86 0E", "AF-S VR Nikkor 200mm f/2G IF-ED"},
{"82 34 76 A6 38 40 4B 0E", "Sigma 150-600mm f/5-6.3 DG OS HSM | C"}, {"82 34 76 A6 38 40 4B 0E", "Sigma 150-600mm f/5-6.3 DG OS HSM | C"},
{"82 48 8E 8E 24 24 87 0E", "AF-S VR Nikkor 300mm f/2.8G IF-ED"}, {"82 48 8E 8E 24 24 87 0E", "AF-S VR Nikkor 300mm f/2.8G IF-ED"},
{"83 00 B0 B0 5A 5A 88 04", "FSA-L2, EDG 65, 800mm f/13 G"}, {"83 00 B0 B0 5A 5A 88 04", "FSA-L2, EDG 65, 800mm f/13 G"},
{"88 54 50 50 0C 0C 4B 06", "Sigma 50mm f/1.4 DG HSM | A"}, {"88 54 50 50 0C 0C 4B 06", "Sigma 50mm f/1.4 DG HSM | A"},
{"89 30 2D 80 2C 40 4B 0E", "Sigma 18-200mm f/3.5-6.3 DC Macro OS HS | C"},
{"89 3C 53 80 30 3C 8B 06", "AF-S DX Zoom-Nikkor 55-200mm f/4-5.6G ED"}, {"89 3C 53 80 30 3C 8B 06", "AF-S DX Zoom-Nikkor 55-200mm f/4-5.6G ED"},
{"8A 3C 37 6A 30 30 4B 0E", "Sigma 24-105mm f/4 DG OS HSM"}, {"8A 3C 37 6A 30 30 4B 0E", "Sigma 24-105mm f/4 DG OS HSM"},
{"8A 54 6A 6A 24 24 8C 0E", "AF-S VR Micro-Nikkor 105mm f/2.8G IF-ED"}, {"8A 54 6A 6A 24 24 8C 0E", "AF-S VR Micro-Nikkor 105mm f/2.8G IF-ED"},
@ -955,6 +956,7 @@ const std::map<std::string, std::string> NALensDataInterpreter::lenses = {
{"9E 38 11 29 34 3C 4B 06", "Sigma 8-16mm f/4.5-5.6 DC HSM"}, {"9E 38 11 29 34 3C 4B 06", "Sigma 8-16mm f/4.5-5.6 DC HSM"},
{"9E 40 2D 6A 2C 3C A0 0E", "AF-S DX VR Zoom-Nikkor 18-105mm f/3.5-5.6G ED"}, {"9E 40 2D 6A 2C 3C A0 0E", "AF-S DX VR Zoom-Nikkor 18-105mm f/3.5-5.6G ED"},
{"9F 37 50 A0 34 40 4B 0E", "Sigma 50-500mm f/4.5-6.3 DG OS HSM"}, {"9F 37 50 A0 34 40 4B 0E", "Sigma 50-500mm f/4.5-6.3 DG OS HSM"},
{"9F 48 48 48 24 24 A1 06", "Yongnuo YN40mm f/2.8N"},
{"9F 58 44 44 14 14 A1 06", "AF-S DX Nikkor 35mm f/1.8G"}, {"9F 58 44 44 14 14 A1 06", "AF-S DX Nikkor 35mm f/1.8G"},
{"A0 40 2D 53 2C 3C CA 0E", "AF-P DX Nikkor 18-55mm f/3.5-5.6G VR"}, {"A0 40 2D 53 2C 3C CA 0E", "AF-P DX Nikkor 18-55mm f/3.5-5.6G VR"},
{"A0 40 2D 53 2C 3C CA 8E", "AF-P DX Nikkor 18-55mm f/3.5-5.6G"}, {"A0 40 2D 53 2C 3C CA 8E", "AF-P DX Nikkor 18-55mm f/3.5-5.6G"},
@ -1007,6 +1009,7 @@ const std::map<std::string, std::string> NALensDataInterpreter::lenses = {
{"AA 48 88 A4 3C 3C D5 4E", "AF-S Nikkor 180-400mm f/4E TC1.4 FL ED VR + 1.4x TC"}, {"AA 48 88 A4 3C 3C D5 4E", "AF-S Nikkor 180-400mm f/4E TC1.4 FL ED VR + 1.4x TC"},
{"AB 3C A0 A0 30 30 C6 4E", "AF-S Nikkor 500mm f/4E FL ED VR"}, {"AB 3C A0 A0 30 30 C6 4E", "AF-S Nikkor 500mm f/4E FL ED VR"},
{"AB 44 5C 8E 34 3C D6 0E", "AF-P Nikkor 70-300mm f/4.5-5.6E ED VR"}, {"AB 44 5C 8E 34 3C D6 0E", "AF-P Nikkor 70-300mm f/4.5-5.6E ED VR"},
{"AB 44 5C 8E 34 3C D6 4E", "AF-P Nikkor 70-300mm f/4.5-5.6E ED VR"},
{"AB 44 5C 8E 34 3C D6 CE", "AF-P Nikkor 70-300mm f/4.5-5.6E ED VR"}, {"AB 44 5C 8E 34 3C D6 CE", "AF-P Nikkor 70-300mm f/4.5-5.6E ED VR"},
{"AC 38 53 8E 34 3C AE 0E", "AF-S DX Nikkor 55-300mm f/4.5-5.6G ED VR"}, {"AC 38 53 8E 34 3C AE 0E", "AF-S DX Nikkor 55-300mm f/4.5-5.6G ED VR"},
{"AC 3C A6 A6 30 30 C7 4E", "AF-S Nikkor 600mm f/4E FL ED VR"}, {"AC 3C A6 A6 30 30 C7 4E", "AF-S Nikkor 600mm f/4E FL ED VR"},
@ -1038,6 +1041,8 @@ const std::map<std::string, std::string> NALensDataInterpreter::lenses = {
{"C1 48 24 37 24 24 4B 46", "Sigma 14-24mm f/2.8 DG HSM | A"}, {"C1 48 24 37 24 24 4B 46", "Sigma 14-24mm f/2.8 DG HSM | A"},
{"C2 4C 24 24 14 14 4B 06", "Sigma 14mm f/1.8 DG HSM | A"}, {"C2 4C 24 24 14 14 4B 06", "Sigma 14mm f/1.8 DG HSM | A"},
{"C3 34 68 98 38 40 4B 4E", "Sigma 100-400mm f/5-6.3 DG OS HSM | C"}, {"C3 34 68 98 38 40 4B 4E", "Sigma 100-400mm f/5-6.3 DG OS HSM | C"},
{"C8 54 44 44 0D 0D DF 46", "Tamron SP 35mm f/1.4 Di USD (F045)"},
{"C8 54 62 62 0C 0C 4B 06", "Sigma 85mm f/1.4 DG HSM | A"},
{"C8 54 62 62 0C 0C 4B 46", "Sigma 85mm f/1.4 DG HSM | A"}, {"C8 54 62 62 0C 0C 4B 46", "Sigma 85mm f/1.4 DG HSM | A"},
{"C9 48 37 5C 24 24 4B 4E", "Sigma 24-70mm f/2.8 DG OS HSM | A"}, {"C9 48 37 5C 24 24 4B 4E", "Sigma 24-70mm f/2.8 DG OS HSM | A"},
{"CA 48 27 3E 24 24 DF 4E", "Tamron SP 15-30mm f/2.8 Di VC USD G2 (A041)"}, {"CA 48 27 3E 24 24 DF 4E", "Tamron SP 15-30mm f/2.8 Di VC USD G2 (A041)"},
@ -1051,21 +1056,22 @@ const std::map<std::string, std::string> NALensDataInterpreter::lenses = {
{"DC 48 19 19 24 24 4B 06", "Sigma 10mm f/2.8 EX DC HSM Fisheye"}, {"DC 48 19 19 24 24 4B 06", "Sigma 10mm f/2.8 EX DC HSM Fisheye"},
{"DE 54 50 50 0C 0C 4B 06", "Sigma 50mm f/1.4 EX DG HSM"}, {"DE 54 50 50 0C 0C 4B 06", "Sigma 50mm f/1.4 EX DG HSM"},
{"E0 3C 5C 8E 30 3C 4B 06", "Sigma 70-300mm f/4-5.6 APO DG Macro HSM"}, {"E0 3C 5C 8E 30 3C 4B 06", "Sigma 70-300mm f/4-5.6 APO DG Macro HSM"},
{"E0 40 2D 98 2C 41 DF 4E", "Tamron AF 18-400mm f/3.5-6.3 Di II VC HLD (B028)"}, {"E0 40 2D 98 2C 41 DF 4E", "Tamron 18-400mm f/3.5-6.3 Di II VC HLD (B028)"},
{"E1 40 19 36 2C 35 DF 4E", "Tamron 10-24mm f/3.5-4.5 Di II VC HLD (B023)"}, {"E1 40 19 36 2C 35 DF 4E", "Tamron 10-24mm f/3.5-4.5 Di II VC HLD (B023)"},
{"E1 58 37 37 14 14 1C 02", "Sigma 24mm f/1.8 EX DG Aspherical Macro"}, {"E1 58 37 37 14 14 1C 02", "Sigma 24mm f/1.8 EX DG Aspherical Macro"},
{"E2 47 5C 80 24 24 DF 4E", "Tamron SP 70-200mm f/2.8 Di VC USD G2 (A025)"}, {"E2 47 5C 80 24 24 DF 4E", "Tamron SP 70-200mm f/2.8 Di VC USD G2 (A025)"},
{"E3 40 76 A6 38 40 DF 4E", "Tamron SP 150-600mm f/5-6.3 Di VC USD G2"}, {"E3 40 76 A6 38 40 DF 4E", "Tamron SP 150-600mm f/5-6.3 Di VC USD G2"},
{"E3 54 50 50 24 24 35 02", "Sigma Macro 50mm f/2.8 EX DG"}, {"E3 54 50 50 24 24 35 02", "Sigma Macro 50mm f/2.8 EX DG"},
{"E4 54 64 64 24 24 DF 0E", "Tamron SP 90mm f/2.8 Di VC USD Macro 1:1 (F017)"}, {"E4 54 64 64 24 24 DF 0E", "Tamron SP 90mm f/2.8 Di VC USD Macro 1:1 (F017)"},
{"E5 4C 62 62 14 14 C9 4E", "Tamron SP 85mm f/1.8 Di VC USD (F016)"},
{"E5 54 6A 6A 24 24 35 02", "Sigma Macro 105mm f/2.8 EX DG"}, {"E5 54 6A 6A 24 24 35 02", "Sigma Macro 105mm f/2.8 EX DG"},
{"E6 40 2D 80 2C 40 DF 0E", "Tamron AF 18-200mm f/3.5-6.3 Di II VC (B018)"}, {"E6 40 2D 80 2C 40 DF 0E", "Tamron 18-200mm f/3.5-6.3 Di II VC (B018)"},
{"E6 41 3C 8E 2C 40 1C 02", "Sigma 28-300mm f/3.5-6.3 DG Macro"}, {"E6 41 3C 8E 2C 40 1C 02", "Sigma 28-300mm f/3.5-6.3 DG Macro"},
{"E7 4C 4C 4C 14 14 DF 0E", "Tamron SP 45mm f/1.8 Di VC USD (F013)"}, {"E7 4C 4C 4C 14 14 DF 0E", "Tamron SP 45mm f/1.8 Di VC USD (F013)"},
{"E8 4C 44 44 14 14 DF 0E", "Tamron SP 35mm f/1.8 Di VC USD (F012)"}, {"E8 4C 44 44 14 14 DF 0E", "Tamron SP 35mm f/1.8 Di VC USD (F012)"},
{"E9 48 27 3E 24 24 DF 0E", "Tamron SP 15-30mm f/2.8 Di VC USD (A012)"}, {"E9 48 27 3E 24 24 DF 0E", "Tamron SP 15-30mm f/2.8 Di VC USD (A012)"},
{"E9 54 37 5C 24 24 1C 02", "Sigma 24-70mm f/2.8 EX DG Macro"}, {"E9 54 37 5C 24 24 1C 02", "Sigma 24-70mm f/2.8 EX DG Macro"},
{"EA 40 29 8E 2C 40 DF 0E", "Tamron AF 16-300mm f/3.5-6.3 Di II VC PZD (B016)"}, {"EA 40 29 8E 2C 40 DF 0E", "Tamron 16-300mm f/3.5-6.3 Di II VC PZD (B016)"},
{"EA 48 27 27 24 24 1C 02", "Sigma 15mm f/2.8 EX Diagonal Fisheye"}, {"EA 48 27 27 24 24 1C 02", "Sigma 15mm f/2.8 EX Diagonal Fisheye"},
{"EB 40 76 A6 38 40 DF 0E", "Tamron SP AF 150-600mm f/5-6.3 VC USD (A011)"}, {"EB 40 76 A6 38 40 DF 0E", "Tamron SP AF 150-600mm f/5-6.3 VC USD (A011)"},
{"ED 40 2D 80 2C 40 4B 0E", "Sigma 18-200mm f/3.5-6.3 DC OS HSM"}, {"ED 40 2D 80 2C 40 4B 0E", "Sigma 18-200mm f/3.5-6.3 DC OS HSM"},
@ -1076,6 +1082,7 @@ const std::map<std::string, std::string> NALensDataInterpreter::lenses = {
{"F1 47 5C 8E 30 3C DF 0E", "Tamron SP 70-300mm f/4-5.6 Di VC USD (A005)"}, {"F1 47 5C 8E 30 3C DF 0E", "Tamron SP 70-300mm f/4-5.6 Di VC USD (A005)"},
{"F3 48 68 8E 30 30 4B 02", "Sigma APO 100-300mm f/4 EX IF HSM"}, {"F3 48 68 8E 30 30 4B 02", "Sigma APO 100-300mm f/4 EX IF HSM"},
{"F3 54 2B 50 24 24 84 0E", "Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical (IF) (B005)"}, {"F3 54 2B 50 24 24 84 0E", "Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical (IF) (B005)"},
{"F4 4C 7C 7C 2C 2C 4B 02", "Sigma APO Macro 180mm f/3.5 EX DG HSM"},
{"F4 54 56 56 18 18 84 06", "Tamron SP AF 60mm f/2.0 Di II Macro 1:1 (G005)"}, {"F4 54 56 56 18 18 84 06", "Tamron SP AF 60mm f/2.0 Di II Macro 1:1 (G005)"},
{"F5 40 2C 8A 2C 40 40 0E", "Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical (IF) Macro (B003)"}, {"F5 40 2C 8A 2C 40 40 0E", "Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical (IF) Macro (B003)"},
{"F5 48 76 76 24 24 4B 06", "Sigma APO Macro 150mm f/2.8 EX DG HSM"}, {"F5 48 76 76 24 24 4B 06", "Sigma APO Macro 150mm f/2.8 EX DG HSM"},
@ -1220,5 +1227,3 @@ const TagAttrib nikon3Attribs[] = {
}; };
} }
#endif

View File

@ -16,8 +16,6 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>. * along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/ */
#ifndef _OLYMPUSATTRIBS_
#define _OLYMPUSATTRIBS_
#include <string> #include <string>
#include <cmath> #include <cmath>
@ -130,6 +128,7 @@ public:
lenses["00 30 10"] = "Olympus M.Zuiko Digital ED 45mm f/1.2 Pro"; lenses["00 30 10"] = "Olympus M.Zuiko Digital ED 45mm f/1.2 Pro";
lenses["00 31 00"] = "Olympus Zuiko Digital ED 12-60mm f/2.8-4.0 SWD"; lenses["00 31 00"] = "Olympus Zuiko Digital ED 12-60mm f/2.8-4.0 SWD";
lenses["00 32 00"] = "Olympus Zuiko Digital ED 14-35mm f/2.0 SWD"; lenses["00 32 00"] = "Olympus Zuiko Digital ED 14-35mm f/2.0 SWD";
lenses["00 32 10"] = "Olympus M.Zuiko Digital ED 12-200mm f/3.5-6.3";
lenses["00 33 00"] = "Olympus Zuiko Digital 25mm f/2.8"; lenses["00 33 00"] = "Olympus Zuiko Digital 25mm f/2.8";
lenses["00 34 00"] = "Olympus Zuiko Digital ED 9-18mm f/4.0-5.6"; lenses["00 34 00"] = "Olympus Zuiko Digital ED 9-18mm f/4.0-5.6";
lenses["00 35 00"] = "Olympus Zuiko Digital 14-54mm f/2.8-3.5 II"; lenses["00 35 00"] = "Olympus Zuiko Digital 14-54mm f/2.8-3.5 II";
@ -190,6 +189,13 @@ public:
lenses["02 26 10"] = "Lumix G 25mm f/1.7 Asph."; lenses["02 26 10"] = "Lumix G 25mm f/1.7 Asph.";
lenses["02 27 10"] = "Leica DG Vario-Elmar 100-400mm f/4.0-6.3 Asph. Power OIS"; lenses["02 27 10"] = "Leica DG Vario-Elmar 100-400mm f/4.0-6.3 Asph. Power OIS";
lenses["02 28 10"] = "Lumix G Vario 12-60mm f/3.5-5.6 Asph. Power OIS"; lenses["02 28 10"] = "Lumix G Vario 12-60mm f/3.5-5.6 Asph. Power OIS";
lenses["02 29 10"] = "Leica DG Summilux 12mm f/1.4 Asph.";
lenses["02 30 10"] = "Leica DG Vario-Elmarit 12-60mm f/2.8-4 Asph. Power OIS";
lenses["02 33 10"] = "Lumix G X Vario 12-35mm f/2.8 II Asph. Power OIS";
lenses["02 35 10"] = "Leica DG Vario-Elmarit 8-18mm f/2.8-4 Asph.";
lenses["02 36 10"] = "Leica DG Elmarit 200mm f/2.8 Power OIS";
lenses["02 37 10"] = "Leica DG Vario-Elmarit 50-200mm f/2.8-4 Asph. Power OIS";
lenses["02 38 10"] = "Leica DG Vario-Summilux 10-25mm f/1.7 Asph.";
lenses["03 01 00"] = "Leica D Vario Elmarit 14-50mm f/2.8-3.5 Asph."; lenses["03 01 00"] = "Leica D Vario Elmarit 14-50mm f/2.8-3.5 Asph.";
lenses["03 02 00"] = "Leica D Summilux 25mm f/1.4 Asph."; lenses["03 02 00"] = "Leica D Summilux 25mm f/1.4 Asph.";
lenses["05 01 10"] = "Tamron 14-150mm f/3.5-5.8 Di III"; lenses["05 01 10"] = "Tamron 14-150mm f/3.5-5.8 Di III";
@ -842,5 +848,3 @@ const TagAttrib olympusAttribs[] = {
{ -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr}
}; };
} }
#endif

View File

@ -1,8 +1,6 @@
/* /*
* This file is part of RawTherapee. * This file is part of RawTherapee.
*/ */
#ifndef _PANASONICATTRIBS_
#define _PANASONICATTRIBS_
#include <string.h> #include <string.h>
#include "rtexif.h" #include "rtexif.h"
@ -138,5 +136,3 @@ const TagAttrib panasonicRawAttribs[] = {
}; };
} }
#endif

View File

@ -16,8 +16,6 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>. * along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/ */
#ifndef _PENTAXATTRIBS_
#define _PENTAXATTRIBS_
#include <cmath> #include <cmath>
#include <cstdio> #include <cstdio>
@ -696,7 +694,7 @@ public:
}; };
PAColorSpaceInterpreter paColorSpaceInterpreter; PAColorSpaceInterpreter paColorSpaceInterpreter;
class PALensTypeInterpreter : public IntLensInterpreter< int > class PALensTypeInterpreter final: public IntLensInterpreter< int >
{ {
public: public:
PALensTypeInterpreter () PALensTypeInterpreter ()
@ -752,7 +750,7 @@ public:
choices.insert (p_t (256 * 3 + 44, "Sigma 17-70mm f/2.8-4.5 DC Macro")); choices.insert (p_t (256 * 3 + 44, "Sigma 17-70mm f/2.8-4.5 DC Macro"));
choices.insert (p_t (256 * 3 + 44, "Sigma 18-50mm f/3.5-5.6 DC")); choices.insert (p_t (256 * 3 + 44, "Sigma 18-50mm f/3.5-5.6 DC"));
choices.insert (p_t (256 * 3 + 44, "Sigma 17-35mm f/2.8-4 EX DG")); choices.insert (p_t (256 * 3 + 44, "Sigma 17-35mm f/2.8-4 EX DG"));
choices.insert (p_t (256 * 3 + 44, "Tamron 35-90mm f/4 AF")); choices.insert (p_t (256 * 3 + 44, "Tamron 35-90mm f/4-5.6 AF"));
choices.insert (p_t (256 * 3 + 44, "Sigma AF 18-35mm f/3.5-4.5 Aspherical")); choices.insert (p_t (256 * 3 + 44, "Sigma AF 18-35mm f/3.5-4.5 Aspherical"));
choices.insert (p_t (256 * 3 + 46, "Sigma or Samsung Lens (3 46)")); choices.insert (p_t (256 * 3 + 46, "Sigma or Samsung Lens (3 46)"));
choices.insert (p_t (256 * 3 + 46, "Sigma APO 70-200mm f/2.8 EX")); choices.insert (p_t (256 * 3 + 46, "Sigma APO 70-200mm f/2.8 EX"));
@ -908,8 +906,9 @@ public:
choices.insert (p_t (256 * 7 + 243, "smc PENTAX-DA 70mm f/2.4 Limited")); choices.insert (p_t (256 * 7 + 243, "smc PENTAX-DA 70mm f/2.4 Limited"));
choices.insert (p_t (256 * 7 + 244, "smc PENTAX-DA 21mm f/3.2 AL Limited")); choices.insert (p_t (256 * 7 + 244, "smc PENTAX-DA 21mm f/3.2 AL Limited"));
choices.insert (p_t (256 * 8 + 0, "Sigma 50-150mm f/2.8 II APO EX DC HSM")); choices.insert (p_t (256 * 8 + 0, "Sigma 50-150mm f/2.8 II APO EX DC HSM"));
choices.insert (p_t (256 * 8 + 3, "Sigma AF 18-125mm f/3.5-5.6 DC")); choices.insert (p_t (256 * 8 + 3, "Sigma 18-125mm f/3.8-5.6 DC HSM"));
choices.insert (p_t (256 * 8 + 4, "Sigma 50mm f/1.4 EX DG HSM")); choices.insert (p_t (256 * 8 + 4, "Sigma 50mm f/1.4 EX DG HSM"));
choices.insert (p_t (256 * 8 + 6, "Sigma 4.5mm f/2.8 EX DC Fisheye"));
choices.insert (p_t (256 * 8 + 7, "Sigma 24-70mm f/2.8 IF EX DG HSM")); choices.insert (p_t (256 * 8 + 7, "Sigma 24-70mm f/2.8 IF EX DG HSM"));
choices.insert (p_t (256 * 8 + 8, "Sigma 18-250mm f/3.5-6.3 DC OS HSM")); choices.insert (p_t (256 * 8 + 8, "Sigma 18-250mm f/3.5-6.3 DC OS HSM"));
choices.insert (p_t (256 * 8 + 11, "Sigma 10-20mm f/3.5 EX DC HSM")); choices.insert (p_t (256 * 8 + 11, "Sigma 10-20mm f/3.5 EX DC HSM"));
@ -920,6 +919,7 @@ public:
choices.insert (p_t (256 * 8 + 16, "Sigma 70-200mm f/2.8 EX DG Macro HSM II")); choices.insert (p_t (256 * 8 + 16, "Sigma 70-200mm f/2.8 EX DG Macro HSM II"));
choices.insert (p_t (256 * 8 + 17, "Sigma 50-500mm f/4.5-6.3 DG OS HSM")); choices.insert (p_t (256 * 8 + 17, "Sigma 50-500mm f/4.5-6.3 DG OS HSM"));
choices.insert (p_t (256 * 8 + 18, "Sigma 8-16mm f/4.5-5.6 DC HSM")); choices.insert (p_t (256 * 8 + 18, "Sigma 8-16mm f/4.5-5.6 DC HSM"));
choices.insert (p_t (256 * 8 + 20, "Sigma 18-50mm f/2.8-4.5 DC HSM"));
choices.insert (p_t (256 * 8 + 21, "Sigma 17-50mm f/2.8 EX DC OS HSM")); choices.insert (p_t (256 * 8 + 21, "Sigma 17-50mm f/2.8 EX DC OS HSM"));
choices.insert (p_t (256 * 8 + 22, "Sigma 85mm f/1.4 EX DG HSM")); choices.insert (p_t (256 * 8 + 22, "Sigma 85mm f/1.4 EX DG HSM"));
choices.insert (p_t (256 * 8 + 23, "Sigma 70-200mm f/2.8 APO EX DG OS HSM")); choices.insert (p_t (256 * 8 + 23, "Sigma 70-200mm f/2.8 APO EX DG OS HSM"));
@ -938,6 +938,7 @@ public:
choices.insert (p_t (256 * 8 + 62, "HD PENTAX-D FA 24-70mm f/2.8 ED SDM WR")); choices.insert (p_t (256 * 8 + 62, "HD PENTAX-D FA 24-70mm f/2.8 ED SDM WR"));
choices.insert (p_t (256 * 8 + 63, "HD PENTAX-D FA 15-30mm f/2.8 ED SDM WR")); choices.insert (p_t (256 * 8 + 63, "HD PENTAX-D FA 15-30mm f/2.8 ED SDM WR"));
choices.insert (p_t (256 * 8 + 64, "HD PENTAX-D FA* 50mm f/1.4 SDM AW")); choices.insert (p_t (256 * 8 + 64, "HD PENTAX-D FA* 50mm f/1.4 SDM AW"));
choices.insert (p_t (256 * 8 + 196, "HD PENTAX-DA* 11-18mm f/2.8 ED DC AW"));
choices.insert (p_t (256 * 8 + 197, "HD PENTAX-DA 55-300mm f/4.5-6.3 ED PLM WR RE")); choices.insert (p_t (256 * 8 + 197, "HD PENTAX-DA 55-300mm f/4.5-6.3 ED PLM WR RE"));
choices.insert (p_t (256 * 8 + 198, "smc PENTAX-DA L 18-50mm f/4-5.6 DC WR RE")); choices.insert (p_t (256 * 8 + 198, "smc PENTAX-DA L 18-50mm f/4-5.6 DC WR RE"));
choices.insert (p_t (256 * 8 + 199, "HD PENTAX-DA 18-50mm f/4-5.6 DC WR RE")); choices.insert (p_t (256 * 8 + 199, "HD PENTAX-DA 18-50mm f/4-5.6 DC WR RE"));
@ -992,6 +993,7 @@ public:
choices.insert (p_t (256 * 22 + 3, "03 Fish-eye 3.2mm f/5.6")); choices.insert (p_t (256 * 22 + 3, "03 Fish-eye 3.2mm f/5.6"));
choices.insert (p_t (256 * 22 + 4, "04 Toy Lens Wide 6.3mm f/7.1")); choices.insert (p_t (256 * 22 + 4, "04 Toy Lens Wide 6.3mm f/7.1"));
choices.insert (p_t (256 * 22 + 5, "05 Toy Lens Telephoto 18mm f/8")); choices.insert (p_t (256 * 22 + 5, "05 Toy Lens Telephoto 18mm f/8"));
choices.insert (p_t (256 * 31 + 1, "GR Lens"));
} }
std::string toString (const Tag* t) const override std::string toString (const Tag* t) const override
{ {
@ -2212,7 +2214,6 @@ const TagAttrib pentaxCameraInfoAttribs[] = {
}; };
} }
#endif

View File

@ -163,14 +163,14 @@ public:
// Try to get the Tag in the current directory and in subdirectories // Try to get the Tag in the current directory and in subdirectories
// if lookUpward = true, it will scan the parents TagDirectory up to the root one, // if lookUpward = true, it will scan the parents TagDirectory up to the root one,
// but w/o looking into their subdirs // but w/o looking into their subdirs
virtual Tag* findTag (const char* name, bool lookUpward = false) const; Tag* findTag (const char* name, bool lookUpward = false) const;
// Find a all Tags with the given name by scanning the whole tag tree // Find a all Tags with the given name by scanning the whole tag tree
std::vector<const Tag*> findTags (const char* name); std::vector<const Tag*> findTags (const char* name);
// Find a all Tags with the given ID by scanning the whole tag tree // Find a all Tags with the given ID by scanning the whole tag tree
std::vector<const Tag*> findTags (int ID); std::vector<const Tag*> findTags (int ID);
// Try to get the Tag in the current directory and in parent directories // Try to get the Tag in the current directory and in parent directories
// (won't look into subdirs) // (won't look into subdirs)
virtual Tag* findTagUpward (const char* name) const; Tag* findTagUpward (const char* name) const;
bool getXMPTagValue (const char* name, char* value) const; bool getXMPTagValue (const char* name, char* value) const;
void keepTag (int ID); void keepTag (int ID);
@ -191,10 +191,10 @@ public:
virtual TagDirectory* clone (TagDirectory* parent) const; virtual TagDirectory* clone (TagDirectory* parent) const;
void applyChange (const std::string &field, const Glib::ustring &value); void applyChange (const std::string &field, const Glib::ustring &value);
virtual void printAll (unsigned int level = 0) const; // reentrant debug function, keep level=0 on first call ! void printAll (unsigned int level = 0) const; // reentrant debug function, keep level=0 on first call !
virtual bool CPBDump (const Glib::ustring &commFName, const Glib::ustring &imageFName, const Glib::ustring &profileFName, const Glib::ustring &defaultPParams, bool CPBDump (const Glib::ustring &commFName, const Glib::ustring &imageFName, const Glib::ustring &profileFName, const Glib::ustring &defaultPParams,
const CacheImageData* cfs, const bool flagMode, Glib::KeyFile *keyFile = nullptr, Glib::ustring tagDirName = "") const; const CacheImageData* cfs, const bool flagMode, Glib::KeyFile *keyFile = nullptr, Glib::ustring tagDirName = "") const;
virtual void sort (); void sort ();
}; };
// a table of tags: id are offset from beginning and not identifiers // a table of tags: id are offset from beginning and not identifiers

View File

@ -15,8 +15,6 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>. * along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/ */
#ifndef _SONYMINOLTAATTRIBS_
#define _SONYMINOLTAATTRIBS_
#include <cmath> #include <cmath>
@ -541,7 +539,7 @@ public:
}; };
SAAntiBlurInterpreter saAntiBlurInterpreter; SAAntiBlurInterpreter saAntiBlurInterpreter;
class SALensIDInterpreter : public IntLensInterpreter<int> class SALensIDInterpreter final : public IntLensInterpreter<int>
{ {
public: public:
SALensIDInterpreter () SALensIDInterpreter ()
@ -574,11 +572,12 @@ public:
{23, "Minolta AF 200mm f/4 Macro APO G"}, {23, "Minolta AF 200mm f/4 Macro APO G"},
{24, "Minolta/Sony AF 24-105mm f/3.5-4.5 (D) or Sigma or Tamron Lens"}, {24, "Minolta/Sony AF 24-105mm f/3.5-4.5 (D) or Sigma or Tamron Lens"},
{24, "Sigma 18-50mm f/2.8"}, {24, "Sigma 18-50mm f/2.8"},
{24, "Sigma 17-70mm f/2.8-4.5 (D)"}, {24, "Sigma 17-70mm f/2.8-4.5 DC Macro"},
{24, "Sigma 20-40mm f/2.8 EX DG Aspherical IF"}, {24, "Sigma 20-40mm f/2.8 EX DG Aspherical IF"},
{24, "Sigma 18-200mm f/3.5-6.3 DC"}, {24, "Sigma 18-200mm f/3.5-6.3 DC"},
{24, "Sigma DC 18-125mm f/4-5,6 D"}, {24, "Sigma DC 18-125mm f/4-5,6 D"},
{24, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro"}, {24, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro"},
{24, "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"},
{25, "Minolta AF 100-300mm f/4.5-5.6 APO (D) or Sigma Lens"}, {25, "Minolta AF 100-300mm f/4.5-5.6 APO (D) or Sigma Lens"},
{25, "Sigma 100-300mm f/4 EX (APO (D) or D IF)"}, {25, "Sigma 100-300mm f/4 EX (APO (D) or D IF)"},
{25, "Sigma 70mm f/2.8 EX DG Macro"}, {25, "Sigma 70mm f/2.8 EX DG Macro"},
@ -612,8 +611,9 @@ public:
{45, "Carl Zeiss Planar T* 85mm f/1.4 ZA (SAL85F14Z)"}, {45, "Carl Zeiss Planar T* 85mm f/1.4 ZA (SAL85F14Z)"},
{46, "Carl Zeiss Vario-Sonnar T* DT 16-80mm f/3.5-4.5 ZA (SAL1680Z)"}, {46, "Carl Zeiss Vario-Sonnar T* DT 16-80mm f/3.5-4.5 ZA (SAL1680Z)"},
{47, "Carl Zeiss Sonnar T* 135mm f/1.8 ZA (SAL135F18Z)"}, {47, "Carl Zeiss Sonnar T* 135mm f/1.8 ZA (SAL135F18Z)"},
{48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM (SAL2470Z) or ZA SSM II"}, {48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM (SAL2470Z) or Other Lens"},
{48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM II (SAL2470Z2)"}, {48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM II (SAL2470Z2)"},
{48, "Tamron SP 24-70mm f/2.8 Di USD"},
{49, "Sony DT 55-200mm f/4-5.6 (SAL55200)"}, {49, "Sony DT 55-200mm f/4-5.6 (SAL55200)"},
{50, "Sony DT 18-250mm f/3.5-6.3 (SAL18250)"}, {50, "Sony DT 18-250mm f/3.5-6.3 (SAL18250)"},
{51, "Sony DT 16-105mm f/3.5-5.6 (SAL16105)"}, {51, "Sony DT 16-105mm f/3.5-5.6 (SAL16105)"},
@ -645,7 +645,6 @@ public:
{128, "Tamron or Sigma Lens (128)"}, {128, "Tamron or Sigma Lens (128)"},
{128, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro"}, {128, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro"},
{128, "Tamron AF 28-300mm f/3.5-6.3 XR Di LD Aspherical [IF] Macro"}, {128, "Tamron AF 28-300mm f/3.5-6.3 XR Di LD Aspherical [IF] Macro"},
{128, "Tamron 80-300mm f/3.5-6.3"},
{128, "Tamron AF 28-200mm f/3.8-5.6 XR Di Aspherical [IF] Macro"}, {128, "Tamron AF 28-200mm f/3.8-5.6 XR Di Aspherical [IF] Macro"},
{128, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF"}, {128, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF"},
{128, "Sigma AF 50-150mm f/2.8 EX DC APO HSM II"}, {128, "Sigma AF 50-150mm f/2.8 EX DC APO HSM II"},
@ -680,7 +679,7 @@ public:
{137, "Cosina 70-210mm f/2.8-4 AF"}, {137, "Cosina 70-210mm f/2.8-4 AF"},
{138, "Soligor 19-35mm f/3.5-4.5"}, {138, "Soligor 19-35mm f/3.5-4.5"},
{139, "Tokina AF 28-300mm f/4-6.3"}, {139, "Tokina AF 28-300mm f/4-6.3"},
{142, "Voigtlander 70-300mm f/4.5-5.6"}, {142, "Cosina AF 70-300mm f/4.5-5.6 MC"},
{146, "Voigtlander Macro APO-Lanthar 125mm f/2.5 SL"}, {146, "Voigtlander Macro APO-Lanthar 125mm f/2.5 SL"},
{194, "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical [IF]"}, {194, "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical [IF]"},
{202, "Tamron SP AF 70-200mm f/2.8 Di LD [IF] Macro"}, {202, "Tamron SP AF 70-200mm f/2.8 Di LD [IF] Macro"},
@ -723,10 +722,11 @@ public:
{2552, "Angenieux AF 28-70mm f/2.6"}, {2552, "Angenieux AF 28-70mm f/2.6"},
{2552, "Tokina AT-X 17 AF 17mm f/3.5"}, {2552, "Tokina AT-X 17 AF 17mm f/3.5"},
{2552, "Tokina 20-35mm f/3.5-4.5 II AF"}, {2552, "Tokina 20-35mm f/3.5-4.5 II AF"},
{2553, "Minolta AF 28-135mm f/4-4.5 or Sigma Lens"}, {2553, "Minolta AF 28-135mm f/4-4.5 or Other Lens"},
{2553, "Sigma ZOOM-alpha 35-135mm f/3.5-4.5"}, {2553, "Sigma ZOOM-alpha 35-135mm f/3.5-4.5"},
{2553, "Sigma 28-105mm f/2.8-4 Aspherical"}, {2553, "Sigma 28-105mm f/2.8-4 Aspherical"},
{2553, "Sigma 28-105mm f/4-5.6 UC"}, {2553, "Sigma 28-105mm f/4-5.6 UC"},
{2553, "Tokina AT-X 242 AF 24-200mm f/3.5-5.6"},
{2554, "Minolta AF 35-105mm f/3.5-4.5"}, {2554, "Minolta AF 35-105mm f/3.5-4.5"},
{2555, "Minolta AF 70-210mm f/4 Macro or Sigma Lens"}, {2555, "Minolta AF 70-210mm f/4 Macro or Sigma Lens"},
{2555, "Sigma 70-210mm f/4-5.6 APO"}, {2555, "Sigma 70-210mm f/4-5.6 APO"},
@ -805,7 +805,7 @@ public:
{2624, "Minolta AF 35-80mm f/4-5.6 Power Zoom"}, {2624, "Minolta AF 35-80mm f/4-5.6 Power Zoom"},
{2628, "Minolta AF 80-200mm f/2.8 HS-APO G"}, {2628, "Minolta AF 80-200mm f/2.8 HS-APO G"},
{2629, "Minolta AF 85mm f/1.4 New"}, {2629, "Minolta AF 85mm f/1.4 New"},
{2631, "Minolta/Sony AF 100-300mm f/4.5-5.6 APO"}, {2631, "Minolta AF 100-300mm f/4.5-5.6 APO"},
{2632, "Minolta AF 24-50mm f/4 New"}, {2632, "Minolta AF 24-50mm f/4 New"},
{2638, "Minolta AF 50mm f/2.8 Macro New"}, {2638, "Minolta AF 50mm f/2.8 Macro New"},
{2639, "Minolta AF 100mm f/2.8 Macro"}, {2639, "Minolta AF 100mm f/2.8 Macro"},
@ -818,6 +818,7 @@ public:
{2672, "Minolta AF 24-105mm f/3.5-4.5 (D)"}, {2672, "Minolta AF 24-105mm f/3.5-4.5 (D)"},
{3046, "Metabones Canon EF Speed Booster"}, {3046, "Metabones Canon EF Speed Booster"},
{4567, "Tokina 70-210mm f/4-5.6"}, {4567, "Tokina 70-210mm f/4-5.6"},
{4568, "Tokina AF 35-200mm f/4-5.6 Zoom SD"},
{4570, "Tamron AF 35-135mm f/3.5-4.5"}, {4570, "Tamron AF 35-135mm f/3.5-4.5"},
{4571, "Vivitar 70-210mm f/4.5-5.6"}, {4571, "Vivitar 70-210mm f/4.5-5.6"},
{4574, "2x Teleconverter or Tamron or Tokina Lens"}, {4574, "2x Teleconverter or Tamron or Tokina Lens"},
@ -832,97 +833,6 @@ public:
{6118, "Canon EF Adapter"}, {6118, "Canon EF Adapter"},
{6528, "Sigma 16mm f/2.8 Filtermatic Fisheye"}, {6528, "Sigma 16mm f/2.8 Filtermatic Fisheye"},
{6553, "E-Mount, T-Mount, Other Lens or no lens"}, {6553, "E-Mount, T-Mount, Other Lens or no lens"},
{6553, "Sony E 16mm f/2.8"},
{6553, "Sony E 18-55mm f/3.5-5.6 OSS"},
{6553, "Sony E 55-210mm f/4.5-6.3 OSS"},
{6553, "Sony E 18-200mm f/3.5-6.3 OSS"},
{6553, "Sony E 30mm f/3.5 Macro"},
{6553, "Sony E 24mm f/1.8 ZA"},
{6553, "Sony E 50mm f/1.8 OSS"},
{6553, "Sony E 16-70mm f/4 ZA OSS"},
{6553, "Sony E 10-18mm f/4 OSS"},
{6553, "Sony E PZ 16-50mm f/3.5-5.6 OSS"},
{6553, "Sony FE 35mm f/2.8 ZA"},
{6553, "Sony FE 24-70mm f/4 ZA OSS"},
{6553, "Sony FE 85mm f/1.8"},
{6553, "Sony E 18-200mm f/3.5-6.3 OSS LE"},
{6553, "Sony E 20mm f/2.8"},
{6553, "Sony E 35mm f/1.8 OSS"},
{6553, "Sony E PZ 18-105mm f/4 G OSS"},
{6553, "Sony FE 12-24mm f/4 G"},
{6553, "Sony FE 90mm f/2.8 Macro G OSS"},
{6553, "Sony E 18-50mm f/4-5.6"},
{6553, "Sony FE 24mm f/1.4 GM"},
{6553, "Sony FE 24-105mm f/4 G OSS"},
{6553, "Sony E PZ 18-200mm f/3.5-6.3 OSS"},
{6553, "Sony FE 55mm f/1.8 ZA"},
{6553, "Sony FE 70-200mm f/4 G OSS"},
{6553, "Sony FE 16-35mm f/4 ZA OSS"},
{6553, "Sony FE 50mm f/2.8 Macro"},
{6553, "Sony FE 28-70mm f/3.5-5.6 OSS"},
{6553, "Sony FE 35mm f/1.4 ZA"},
{6553, "Sony FE 24-240mm f/3.5-6.3 OSS"},
{6553, "Sony FE 28mm f/2"},
{6553, "Sony FE PZ 28-135mm f/4 G OSS"},
{6553, "Sony FE 100mm f/2.8 STF GM OSS"},
{6553, "Sony E PZ 18-110mm f/4 G OSS"},
{6553, "Sony FE 24-70mm f/2.8 GM"},
{6553, "Sony FE 50mm f/1.4 ZA"},
{6553, "Sony FE 85mm f/1.4 GM"},
{6553, "Sony FE 50mm f/1.8"},
{6553, "Sony FE 21mm f/2.8 (SEL28F20 + SEL075UWC)"},
{6553, "Sony FE 16mm f/3.5 Fisheye (SEL28F20 + SEL057FEC)"},
{6553, "Sony FE 70-300mm f/4.5-5.6 G OSS"},
{6553, "Sony FE 100-400mm f/4.5-5.6 GM OSS"},
{6553, "Sony FE 70-200mm f/2.8 GM OSS"},
{6553, "Sony FE 16-35mm f/2.8 GM"},
{6553, "Sony FE 400mm f/2.8 GM OSS"},
{6553, "Sony E 18-135mm f/3.5-5.6 OSS"},
{6553, "Sony FE 70-200mm f/2.8 GM OSS + 1.4X Teleconverter"},
{6553, "Sony FE 70-200mm f/2.8 GM OSS + 2X Teleconverter"},
{6553, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 1.4X Teleconverter"},
{6553, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 2X Teleconverter"},
{6553, "Sony FE 400mm f/2.8 GM OSS + 1.4X Teleconverter"},
{6553, "Sony FE 400mm f/2.8 GM OSS + 2X Teleconverter"},
{6553, "Samyang AF 50mm f/1.4 FE"},
{6553, "Samyang AF 14mm f/2.8 FE"},
{6553, "Samyang AF 24mm f/2.8"},
{6553, "Samyang AF 35mm f/2.8 FE"},
{6553, "Samyang AF 35mm f/1.4"},
{6553, "Sigma 19mm f/2.8 [EX] DN"},
{6553, "Sigma 30mm f/2.8 [EX] DN"},
{6553, "Sigma 60mm f/2.8 DN"},
{6553, "Sigma 30mm f/1.4 DC DN | C"},
{6553, "Sigma 85mm f/1.4 DG HSM | A"},
{6553, "Sigma 16mm f/1.4 DC DN | C"},
{6553, "Sigma 105mm f/1.4 DG HSM | A"},
{6553, "Sigma 56mm f/1.4 DC DN | C"},
{6553, "Sigma 70-200mm f/2.8 DG OS HSM | S"},
{6553, "Sigma 70mm f/2.8 DG MACRO | A"},
{6553, "Tamron 18-200mm f/3.5-6.3 Di III VC"},
{6553, "Tamron 28-75mm f/2.8 Di III RXD"},
{6553, "Tokina Firin 20mm f/2 FE MF"},
{6553, "Voigtlander SUPER WIDE-HELIAR 15mm f/4.5 III"},
{6553, "Voigtlander HELIAR-HYPER WIDE 10mm f/5.6"},
{6553, "Voigtlander ULTRA WIDE-HELIAR 12mm f/5.6 III"},
{6553, "Voigtlander MACRO APO-LANTHAR 65mm f/2 Aspherical"},
{6553, "Voigtlander NOKTON 40mm f/1.2 Aspherical"},
{6553, "Voigtlander NOKTON classic 35mm f/1.4"},
{6553, "Voigtlander MACRO APO-LANTHAR 110mm f/2.5"},
{6553, "Voigtlander COLOR-SKOPAR 21mm f/3.5 Aspherical"},
{6553, "Zeiss Touit 12mm f/2.8"},
{6553, "Zeiss Touit 32mm f/1.8"},
{6553, "Zeiss Touit 50mm f/2.8 Macro"},
{6553, "Zeiss Batis 25mm f/2"},
{6553, "Zeiss Batis 85mm f/1.8"},
{6553, "Zeiss Batis 18mm f/2.8"},
{6553, "Zeiss Batis 135mm f/2.8"},
{6553, "Zeiss Batis 40mm f/2 CF"},
{6553, "Zeiss Loxia 50mm f/2"},
{6553, "Zeiss Loxia 35mm f/2"},
{6553, "Zeiss Loxia 21mm f/2.8"},
{6553, "Zeiss Loxia 85mm f/2.4"},
{6553, "Zeiss Loxia 25mm f/2.4"},
{6553, "Arax MC 35mm f/2.8 Tilt+Shift"}, {6553, "Arax MC 35mm f/2.8 Tilt+Shift"},
{6553, "Arax MC 80mm f/2.8 Tilt+Shift"}, {6553, "Arax MC 80mm f/2.8 Tilt+Shift"},
{6553, "Zenitar MF 16mm f/2.8 Fisheye M42"}, {6553, "Zenitar MF 16mm f/2.8 Fisheye M42"},
@ -948,10 +858,11 @@ public:
{25521, "Angenieux AF 28-70mm f/2.6"}, {25521, "Angenieux AF 28-70mm f/2.6"},
{25521, "Tokina AT-X 17 AF 17mm f/3.5"}, {25521, "Tokina AT-X 17 AF 17mm f/3.5"},
{25521, "Tokina 20-35mm f/3.5-4.5 II AF"}, {25521, "Tokina 20-35mm f/3.5-4.5 II AF"},
{25531, "Minolta AF 28-135mm f/4-4.5 or Sigma Lens"}, {25531, "Minolta AF 28-135mm f/4-4.5 or Other Lens"},
{25531, "Sigma ZOOM-alpha 35-135mm f/3.5-4.5"}, {25531, "Sigma ZOOM-alpha 35-135mm f/3.5-4.5"},
{25531, "Sigma 28-105mm f/2.8-4 Aspherical"}, {25531, "Sigma 28-105mm f/2.8-4 Aspherical"},
{25531, "Sigma 28-105mm f/4-5.6 UC"}, {25531, "Sigma 28-105mm f/4-5.6 UC"},
{25531, "Tokina AT-X 242 AF 24-200mm f/3.5-5.6"},
{25541, "Minolta AF 35-105mm f/3.5-4.5"}, {25541, "Minolta AF 35-105mm f/3.5-4.5"},
{25551, "Minolta AF 70-210mm f/4 Macro or Sigma Lens"}, {25551, "Minolta AF 70-210mm f/4 Macro or Sigma Lens"},
{25551, "Sigma 70-210mm f/4-5.6 APO"}, {25551, "Sigma 70-210mm f/4-5.6 APO"},
@ -1030,7 +941,7 @@ public:
{26241, "Minolta AF 35-80mm f/4-5.6 Power Zoom"}, {26241, "Minolta AF 35-80mm f/4-5.6 Power Zoom"},
{26281, "Minolta AF 80-200mm f/2.8 HS-APO G"}, {26281, "Minolta AF 80-200mm f/2.8 HS-APO G"},
{26291, "Minolta AF 85mm f/1.4 New"}, {26291, "Minolta AF 85mm f/1.4 New"},
{26311, "Minolta/Sony AF 100-300mm f/4.5-5.6 APO"}, {26311, "Minolta AF 100-300mm f/4.5-5.6 APO"},
{26321, "Minolta AF 24-50mm f/4 New"}, {26321, "Minolta AF 24-50mm f/4 New"},
{26381, "Minolta AF 50mm f/2.8 Macro New"}, {26381, "Minolta AF 50mm f/2.8 Macro New"},
{26391, "Minolta AF 100mm f/2.8 Macro"}, {26391, "Minolta AF 100mm f/2.8 Macro"},
@ -1043,6 +954,7 @@ public:
{26721, "Minolta AF 24-105mm f/3.5-4.5 (D)"}, {26721, "Minolta AF 24-105mm f/3.5-4.5 (D)"},
{30464, "Metabones Canon EF Speed Booster"}, {30464, "Metabones Canon EF Speed Booster"},
{45671, "Tokina 70-210mm f/4-5.6"}, {45671, "Tokina 70-210mm f/4-5.6"},
{45681, "Tokina AF 35-200mm f/4-5.6 Zoom SD"},
{45701, "Tamron AF 35-135mm f/3.5-4.5"}, {45701, "Tamron AF 35-135mm f/3.5-4.5"},
{45711, "Vivitar 70-210mm f/4.5-5.6"}, {45711, "Vivitar 70-210mm f/4.5-5.6"},
{45741, "2x Teleconverter or Tamron or Tokina Lens"}, {45741, "2x Teleconverter or Tamron or Tokina Lens"},
@ -1057,104 +969,13 @@ public:
{61184, "Canon EF Adapter"}, {61184, "Canon EF Adapter"},
{65280, "Sigma 16mm f/2.8 Filtermatic Fisheye"}, {65280, "Sigma 16mm f/2.8 Filtermatic Fisheye"},
{65535, "E-Mount, T-Mount, Other Lens or no lens"}, {65535, "E-Mount, T-Mount, Other Lens or no lens"},
{65535, "Sony E 16mm f/2.8"},
{65535, "Sony E 18-55mm f/3.5-5.6 OSS"},
{65535, "Sony E 55-210mm f/4.5-6.3 OSS"},
{65535, "Sony E 18-200mm f/3.5-6.3 OSS"},
{65535, "Sony E 30mm f/3.5 Macro"},
{65535, "Sony E 24mm f/1.8 ZA"},
{65535, "Sony E 50mm f/1.8 OSS"},
{65535, "Sony E 16-70mm f/4 ZA OSS"},
{65535, "Sony E 10-18mm f/4 OSS"},
{65535, "Sony E PZ 16-50mm f/3.5-5.6 OSS"},
{65535, "Sony FE 35mm f/2.8 ZA"},
{65535, "Sony FE 24-70mm f/4 ZA OSS"},
{65535, "Sony FE 85mm f/1.8"},
{65535, "Sony E 18-200mm f/3.5-6.3 OSS LE"},
{65535, "Sony E 20mm f/2.8"},
{65535, "Sony E 35mm f/1.8 OSS"},
{65535, "Sony E PZ 18-105mm f/4 G OSS"},
{65535, "Sony FE 12-24mm f/4 G"},
{65535, "Sony FE 90mm f/2.8 Macro G OSS"},
{65535, "Sony E 18-50mm f/4-5.6"},
{65535, "Sony FE 24mm f/1.4 GM"},
{65535, "Sony FE 24-105mm f/4 G OSS"},
{65535, "Sony E PZ 18-200mm f/3.5-6.3 OSS"},
{65535, "Sony FE 55mm f/1.8 ZA"},
{65535, "Sony FE 70-200mm f/4 G OSS"},
{65535, "Sony FE 16-35mm f/4 ZA OSS"},
{65535, "Sony FE 50mm f/2.8 Macro"},
{65535, "Sony FE 28-70mm f/3.5-5.6 OSS"},
{65535, "Sony FE 35mm f/1.4 ZA"},
{65535, "Sony FE 24-240mm f/3.5-6.3 OSS"},
{65535, "Sony FE 28mm f/2"},
{65535, "Sony FE PZ 28-135mm f/4 G OSS"},
{65535, "Sony FE 100mm f/2.8 STF GM OSS"},
{65535, "Sony E PZ 18-110mm f/4 G OSS"},
{65535, "Sony FE 24-70mm f/2.8 GM"},
{65535, "Sony FE 50mm f/1.4 ZA"},
{65535, "Sony FE 85mm f/1.4 GM"},
{65535, "Sony FE 50mm f/1.8"},
{65535, "Sony FE 21mm f/2.8 (SEL28F20 + SEL075UWC)"},
{65535, "Sony FE 16mm f/3.5 Fisheye (SEL28F20 + SEL057FEC)"},
{65535, "Sony FE 70-300mm f/4.5-5.6 G OSS"},
{65535, "Sony FE 100-400mm f/4.5-5.6 GM OSS"},
{65535, "Sony FE 70-200mm f/2.8 GM OSS"},
{65535, "Sony FE 16-35mm f/2.8 GM"},
{65535, "Sony FE 400mm f/2.8 GM OSS"},
{65535, "Sony E 18-135mm f/3.5-5.6 OSS"},
{65535, "Sony FE 70-200mm f/2.8 GM OSS + 1.4X Teleconverter"},
{65535, "Sony FE 70-200mm f/2.8 GM OSS + 2X Teleconverter"},
{65535, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 1.4X Teleconverter"},
{65535, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 2X Teleconverter"},
{65535, "Sony FE 400mm f/2.8 GM OSS + 1.4X Teleconverter"},
{65535, "Sony FE 400mm f/2.8 GM OSS + 2X Teleconverter"},
{65535, "Samyang AF 50mm f/1.4 FE"},
{65535, "Samyang AF 14mm f/2.8 FE"},
{65535, "Samyang AF 24mm f/2.8"},
{65535, "Samyang AF 35mm f/2.8 FE"},
{65535, "Samyang AF 35mm f/1.4"},
{65535, "Sigma 19mm f/2.8 [EX] DN"},
{65535, "Sigma 30mm f/2.8 [EX] DN"},
{65535, "Sigma 60mm f/2.8 DN"},
{65535, "Sigma 30mm f/1.4 DC DN | C"},
{65535, "Sigma 85mm f/1.4 DG HSM | A"},
{65535, "Sigma 16mm f/1.4 DC DN | C"},
{65535, "Sigma 105mm f/1.4 DG HSM | A"},
{65535, "Sigma 56mm f/1.4 DC DN | C"},
{65535, "Sigma 70-200mm f/2.8 DG OS HSM | S"},
{65535, "Sigma 70mm f/2.8 DG MACRO | A"},
{65535, "Tamron 18-200mm f/3.5-6.3 Di III VC"},
{65535, "Tamron 28-75mm f/2.8 Di III RXD"},
{65535, "Tokina Firin 20mm f/2 FE MF"},
{65535, "Voigtlander SUPER WIDE-HELIAR 15mm f/4.5 III"},
{65535, "Voigtlander HELIAR-HYPER WIDE 10mm f/5.6"},
{65535, "Voigtlander ULTRA WIDE-HELIAR 12mm f/5.6 III"},
{65535, "Voigtlander MACRO APO-LANTHAR 65mm f/2 Aspherical"},
{65535, "Voigtlander NOKTON 40mm f/1.2 Aspherical"},
{65535, "Voigtlander NOKTON classic 35mm f/1.4"},
{65535, "Voigtlander MACRO APO-LANTHAR 110mm f/2.5"},
{65535, "Voigtlander COLOR-SKOPAR 21mm f/3.5 Aspherical"},
{65535, "Zeiss Touit 12mm f/2.8"},
{65535, "Zeiss Touit 32mm f/1.8"},
{65535, "Zeiss Touit 50mm f/2.8 Macro"},
{65535, "Zeiss Batis 25mm f/2"},
{65535, "Zeiss Batis 85mm f/1.8"},
{65535, "Zeiss Batis 18mm f/2.8"},
{65535, "Zeiss Batis 135mm f/2.8"},
{65535, "Zeiss Batis 40mm f/2 CF"},
{65535, "Zeiss Loxia 50mm f/2"},
{65535, "Zeiss Loxia 35mm f/2"},
{65535, "Zeiss Loxia 21mm f/2.8"},
{65535, "Zeiss Loxia 85mm f/2.4"},
{65535, "Zeiss Loxia 25mm f/2.4"},
{65535, "Arax MC 35mm f/2.8 Tilt+Shift"}, {65535, "Arax MC 35mm f/2.8 Tilt+Shift"},
{65535, "Arax MC 80mm f/2.8 Tilt+Shift"}, {65535, "Arax MC 80mm f/2.8 Tilt+Shift"},
{65535, "Zenitar MF 16mm f/2.8 Fisheye M42"}, {65535, "Zenitar MF 16mm f/2.8 Fisheye M42"},
{65535, "Samyang 500mm Mirror f/8.0"}, {65535, "Samyang 500mm Mirror f/8.0"},
{65535, "Pentacon Auto 135mm f/2.8"}, {65535, "Pentacon Auto 135mm f/2.8"},
{65535, "Pentacon Auto 29mm f/2.8"}, {65535, "Pentacon Auto 29mm f/2.8"},
{65535, "Helios 44-2 58mm f/2.0"}, {65535, "Helios 44-2 58mm f/2.0"}
}; };
} }
@ -1192,18 +1013,31 @@ public:
}; };
SALensIDInterpreter saLensIDInterpreter; SALensIDInterpreter saLensIDInterpreter;
class SALensID2Interpreter : public IntLensInterpreter< int > class SALensID2Interpreter final : public IntLensInterpreter< int >
{ {
public: public:
SALensID2Interpreter () SALensID2Interpreter ()
{ {
choices.insert (p_t (0, "Unknown E-mount lens or other lens")); choices.insert (p_t (0, "Unknown E-mount lens or other lens"));
choices.insert (p_t (0, "Sigma 19mm f/2.8 [EX] DN"));
choices.insert (p_t (0, "Sigma 30mm f/2.8 [EX] DN"));
choices.insert (p_t (0, "Sigma 60mm f/2.8 DN"));
choices.insert (p_t (0, "Sony E 18-200mm f/3.5-6.3 OSS LE"));
choices.insert (p_t (0, "Tamron 18-200mm f/3.5-6.3 Di III VC"));
choices.insert (p_t (0, "Tokina FiRIN 20mm f/2 FE AF"));
choices.insert (p_t (0, "Tokina FiRIN 20mm f/2 FE MF"));
choices.insert (p_t (0, "Zeiss Touit 12mm f/2.8"));
choices.insert (p_t (0, "Zeiss Touit 32mm f/1.8"));
choices.insert (p_t (0, "Zeiss Touit 50mm f/2.8 Macro"));
choices.insert (p_t (0, "Zeiss Loxia 50mm f/2"));
choices.insert (p_t (0, "Zeiss Loxia 35mm f/2"));
choices.insert (p_t (1, "Sony LA-EA1 or Sigma MC-11 Adapter")); choices.insert (p_t (1, "Sony LA-EA1 or Sigma MC-11 Adapter"));
choices.insert (p_t (2, "Sony LA-EA2 Adapter")); choices.insert (p_t (2, "Sony LA-EA2 Adapter"));
choices.insert (p_t (3, "Sony LA-EA3 Adapter")); choices.insert (p_t (3, "Sony LA-EA3 Adapter"));
choices.insert (p_t (6, "Sony LA-EA4 Adapter")); choices.insert (p_t (6, "Sony LA-EA4 Adapter"));
choices.insert (p_t (44, "Metabones Canon EF Smart Adapter")); choices.insert (p_t (44, "Metabones Canon EF Smart Adapter"));
choices.insert (p_t (78, "Metabones Canon EF Smart Adapter Mark III or Other Adapter")); choices.insert (p_t (78, "Metabones Canon EF Smart Adapter Mark III or Other Adapter"));
choices.insert (p_t (184, "Metabones Canon EF Speed Booster Ultra"));
choices.insert (p_t (234, "Metabones Canon EF Smart Adapter Mark IV")); choices.insert (p_t (234, "Metabones Canon EF Smart Adapter Mark IV"));
choices.insert (p_t (239, "Metabones Canon EF Speed Booster")); choices.insert (p_t (239, "Metabones Canon EF Speed Booster"));
choices.insert (p_t (32784, "Sony E 16mm f/2.8")); choices.insert (p_t (32784, "Sony E 16mm f/2.8"));
@ -1211,17 +1045,19 @@ public:
choices.insert (p_t (32786, "Sony E 55-210mm f/4.5-6.3 OSS")); choices.insert (p_t (32786, "Sony E 55-210mm f/4.5-6.3 OSS"));
choices.insert (p_t (32787, "Sony E 18-200mm f/3.5-6.3 OSS")); choices.insert (p_t (32787, "Sony E 18-200mm f/3.5-6.3 OSS"));
choices.insert (p_t (32788, "Sony E 30mm f/3.5 Macro")); choices.insert (p_t (32788, "Sony E 30mm f/3.5 Macro"));
choices.insert (p_t (32789, "Sony E 24mm f/1.8 ZA or Samyang AF 50mm f/1.4 FE")); choices.insert (p_t (32789, "Sony E 24mm f/1.8 ZA or Samyang AF 50mm f/1.4"));
choices.insert (p_t (32789, "Samyang AF 50mm f/1.4 FE")); choices.insert (p_t (32789, "Samyang AF 50mm f/1.4"));
choices.insert (p_t (32790, "Sony E 50mm f/1.8 OSS or Samyang AF 14mm f/2.8 FE")); choices.insert (p_t (32790, "Sony E 50mm f/1.8 OSS or Samyang AF 14mm f/2.8"));
choices.insert (p_t (32790, "Samyang AF 14mm f/2.8 FE")); choices.insert (p_t (32790, "Samyang AF 14mm f/2.8"));
choices.insert (p_t (32791, "Sony E 16-70mm f/4 ZA OSS")); choices.insert (p_t (32791, "Sony E 16-70mm f/4 ZA OSS"));
choices.insert (p_t (32792, "Sony E 10-18mm f/4 OSS")); choices.insert (p_t (32792, "Sony E 10-18mm f/4 OSS"));
choices.insert (p_t (32793, "Sony E PZ 16-50mm f/3.5-5.6 OSS")); choices.insert (p_t (32793, "Sony E PZ 16-50mm f/3.5-5.6 OSS"));
choices.insert (p_t (32794, "Sony FE 35mm f/2.8 ZA or Samyang AF 24mm f/2.8 FE")); choices.insert (p_t (32794, "Sony FE 35mm f/2.8 ZA or Samyang Lens"));
choices.insert (p_t (32794, "Samyang AF 24mm f/2.8 FE")); choices.insert (p_t (32794, "Samyang AF 24mm f/2.8"));
choices.insert (p_t (32794, "Samyang AF 35mm f/2.8"));
choices.insert (p_t (32795, "Sony FE 24-70mm f/4 ZA OSS")); choices.insert (p_t (32795, "Sony FE 24-70mm f/4 ZA OSS"));
choices.insert (p_t (32796, "Sony FE 85mm f/1.8")); choices.insert (p_t (32796, "Sony FE 85mm f/1.8 or Viltrox PFU RBMH 85mm f/1.8"));
choices.insert (p_t (32796, "Viltrox PFU RBMH 85mm f/1.8"));
choices.insert (p_t (32797, "Sony E 18-200mm f/3.5-6.3 OSS LE")); choices.insert (p_t (32797, "Sony E 18-200mm f/3.5-6.3 OSS LE"));
choices.insert (p_t (32798, "Sony E 20mm f/2.8")); choices.insert (p_t (32798, "Sony E 20mm f/2.8"));
choices.insert (p_t (32799, "Sony E 35mm f/1.8 OSS")); choices.insert (p_t (32799, "Sony E 35mm f/1.8 OSS"));
@ -1245,7 +1081,8 @@ public:
choices.insert (p_t (32820, "Sony E PZ 18-110mm f/4 G OSS")); choices.insert (p_t (32820, "Sony E PZ 18-110mm f/4 G OSS"));
choices.insert (p_t (32821, "Sony FE 24-70mm f/2.8 GM")); choices.insert (p_t (32821, "Sony FE 24-70mm f/2.8 GM"));
choices.insert (p_t (32822, "Sony FE 50mm f/1.4 ZA")); choices.insert (p_t (32822, "Sony FE 50mm f/1.4 ZA"));
choices.insert (p_t (32823, "Sony FE 85mm f/1.4 GM")); choices.insert (p_t (32823, "Sony FE 85mm f/1.4 GM or Samyang AF 85mm f/1.4"));
choices.insert (p_t (32823, "Samyang AF 85mm f/1.4"));
choices.insert (p_t (32824, "Sony FE 50mm f/1.8")); choices.insert (p_t (32824, "Sony FE 50mm f/1.8"));
choices.insert (p_t (32826, "Sony FE 21mm f/2.8 (SEL28F20 + SEL075UWC)")); choices.insert (p_t (32826, "Sony FE 21mm f/2.8 (SEL28F20 + SEL075UWC)"));
choices.insert (p_t (32827, "Sony FE 16mm f/3.5 Fisheye (SEL28F20 + SEL057FEC)")); choices.insert (p_t (32827, "Sony FE 16mm f/3.5 Fisheye (SEL28F20 + SEL057FEC)"));
@ -1255,6 +1092,12 @@ public:
choices.insert (p_t (32831, "Sony FE 16-35mm f/2.8 GM")); choices.insert (p_t (32831, "Sony FE 16-35mm f/2.8 GM"));
choices.insert (p_t (32848, "Sony FE 400mm f/2.8 GM OSS")); choices.insert (p_t (32848, "Sony FE 400mm f/2.8 GM OSS"));
choices.insert (p_t (32849, "Sony E 18-135mm f/3.5-5.6 OSS")); choices.insert (p_t (32849, "Sony E 18-135mm f/3.5-5.6 OSS"));
choices.insert (p_t (32850, "Sony FE 135mm f/1.8 GM"));
choices.insert (p_t (32851, "Sony FE 200-600mm f/5.6-6.3 G OSS"));
choices.insert (p_t (32852, "Sony FE 600mm f/4 GM OSS"));
choices.insert (p_t (32853, "Sony E 16-55mm f/2.8 G"));
choices.insert (p_t (32854, "Sony E 70-350mm f/4.5-6.3 G OSS"));
choices.insert (p_t (32858, "Sony FE 35mm f/1.8"));
choices.insert (p_t (33072, "Sony FE 70-200mm f/2.8 GM OSS + 1.4X Teleconverter")); choices.insert (p_t (33072, "Sony FE 70-200mm f/2.8 GM OSS + 1.4X Teleconverter"));
choices.insert (p_t (33073, "Sony FE 70-200mm f/2.8 GM OSS + 2X Teleconverter")); choices.insert (p_t (33073, "Sony FE 70-200mm f/2.8 GM OSS + 2X Teleconverter"));
choices.insert (p_t (33076, "Sony FE 100mm f/2.8 STF GM OSS (macro mode)")); choices.insert (p_t (33076, "Sony FE 100mm f/2.8 STF GM OSS (macro mode)"));
@ -1262,6 +1105,10 @@ public:
choices.insert (p_t (33078, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 2X Teleconverter")); choices.insert (p_t (33078, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 2X Teleconverter"));
choices.insert (p_t (33079, "Sony FE 400mm f/2.8 GM OSS + 1.4X Teleconverter")); choices.insert (p_t (33079, "Sony FE 400mm f/2.8 GM OSS + 1.4X Teleconverter"));
choices.insert (p_t (33080, "Sony FE 400mm f/2.8 GM OSS + 2X Teleconverter")); choices.insert (p_t (33080, "Sony FE 400mm f/2.8 GM OSS + 2X Teleconverter"));
choices.insert (p_t (33081, "Sony FE 200-600mm f/5.6-6.3 G OSS + 1.4X Teleconverter"));
choices.insert (p_t (33082, "Sony FE 200-600mm f/5.6-6.3 G OSS + 2X Teleconverter"));
choices.insert (p_t (33083, "Sony FE 600mm f/4 GM OSS + 1.4X Teleconverter"));
choices.insert (p_t (33084, "Sony FE 600mm f/4 GM OSS + 2X Teleconverter"));
choices.insert (p_t (49201, "Zeiss Touit 12mm f/2.8")); choices.insert (p_t (49201, "Zeiss Touit 12mm f/2.8"));
choices.insert (p_t (49202, "Zeiss Touit 32mm f/1.8")); choices.insert (p_t (49202, "Zeiss Touit 32mm f/1.8"));
choices.insert (p_t (49203, "Zeiss Touit 50mm f/2.8 Macro")); choices.insert (p_t (49203, "Zeiss Touit 50mm f/2.8 Macro"));
@ -1276,11 +1123,17 @@ public:
choices.insert (p_t (49235, "Zeiss Loxia 85mm f/2.4")); choices.insert (p_t (49235, "Zeiss Loxia 85mm f/2.4"));
choices.insert (p_t (49236, "Zeiss Loxia 25mm f/2.4")); choices.insert (p_t (49236, "Zeiss Loxia 25mm f/2.4"));
choices.insert (p_t (49457, "Tamron 28-75mm f/2.8 Di III RXD")); choices.insert (p_t (49457, "Tamron 28-75mm f/2.8 Di III RXD"));
choices.insert (p_t (49458, "Tamron 17-28mm f/2.8 Di III RXD"));
choices.insert (p_t (49459, "Tamron 35mm f/2.8 Di III OSD M1:2"));
choices.insert (p_t (49460, "Tamron 24mm f/2.8 Di III OSD M1:2"));
choices.insert (p_t (49712, "Tokina FiRIN 20mm f/2 FE AF"));
choices.insert (p_t (49713, "Tokina FiRIN 100mm f/2.8 FE MACRO"));
choices.insert (p_t (50480, "Sigma 30mm f/1.4 DC DN | C")); choices.insert (p_t (50480, "Sigma 30mm f/1.4 DC DN | C"));
choices.insert (p_t (50481, "Sigma 50mm f/1.4 DG HSM | A")); choices.insert (p_t (50481, "Sigma 50mm f/1.4 DG HSM | A"));
choices.insert (p_t (50482, "Sigma 18-300mm f/3.5-6.3 DC MACRO OS HSM | C + MC-11")); choices.insert (p_t (50482, "Sigma 18-300mm f/3.5-6.3 DC MACRO OS HSM | C + MC-11"));
choices.insert (p_t (50483, "Sigma 18-35mm f/1.8 DC HSM | A + MC-11")); choices.insert (p_t (50483, "Sigma 18-35mm f/1.8 DC HSM | A + MC-11"));
choices.insert (p_t (50484, "Sigma 24-35mm f/2 DG HSM | A + MC-11")); choices.insert (p_t (50484, "Sigma 24-35mm f/2 DG HSM | A + MC-11"));
choices.insert (p_t (50485, "Sigma 24mm f/1.4 DG HSM | A + MC-11"));
choices.insert (p_t (50486, "Sigma 150-600mm f/5-6.3 DG OS HSM | C + MC-11")); choices.insert (p_t (50486, "Sigma 150-600mm f/5-6.3 DG OS HSM | C + MC-11"));
choices.insert (p_t (50487, "Sigma 20mm f/1.4 DG HSM | A + MC-11")); choices.insert (p_t (50487, "Sigma 20mm f/1.4 DG HSM | A + MC-11"));
choices.insert (p_t (50488, "Sigma 35mm f/1.4 DG HSM | A")); choices.insert (p_t (50488, "Sigma 35mm f/1.4 DG HSM | A"));
@ -1294,8 +1147,11 @@ public:
choices.insert (p_t (50503, "Sigma 16mm f/1.4 DC DN | C")); choices.insert (p_t (50503, "Sigma 16mm f/1.4 DC DN | C"));
choices.insert (p_t (50507, "Sigma 105mm f/1.4 DG HSM | A")); choices.insert (p_t (50507, "Sigma 105mm f/1.4 DG HSM | A"));
choices.insert (p_t (50508, "Sigma 56mm f/1.4 DC DN | C")); choices.insert (p_t (50508, "Sigma 56mm f/1.4 DC DN | C"));
choices.insert (p_t (50512, "Sigma 70-200mm f/2.8 DG OS HSM | S")); choices.insert (p_t (50512, "Sigma 70-200mm f/2.8 DG OS HSM | S + MC-11"));
choices.insert (p_t (50513, "Sigma 70mm f/2.8 DG MACRO | A")); choices.insert (p_t (50513, "Sigma 70mm f/2.8 DG MACRO | A"));
choices.insert (p_t (50514, "Sigma 45mm f/2.8 DG DN | C"));
choices.insert (p_t (50515, "Sigma 35mm f/1.2 DG DN | A"));
choices.insert (p_t (50516, "Sigma 14-24mm f/2.8 DG DN | A"));
choices.insert (p_t (50992, "Voigtlander SUPER WIDE-HELIAR 15mm f/4.5 III")); choices.insert (p_t (50992, "Voigtlander SUPER WIDE-HELIAR 15mm f/4.5 III"));
choices.insert (p_t (50993, "Voigtlander HELIAR-HYPER WIDE 10mm f/5.6")); choices.insert (p_t (50993, "Voigtlander HELIAR-HYPER WIDE 10mm f/5.6"));
choices.insert (p_t (50994, "Voigtlander ULTRA WIDE-HELIAR 12mm f/5.6 III")); choices.insert (p_t (50994, "Voigtlander ULTRA WIDE-HELIAR 12mm f/5.6 III"));
@ -1304,9 +1160,15 @@ public:
choices.insert (p_t (50997, "Voigtlander NOKTON classic 35mm f/1.4")); choices.insert (p_t (50997, "Voigtlander NOKTON classic 35mm f/1.4"));
choices.insert (p_t (50998, "Voigtlander MACRO APO-LANTHAR 110mm f/2.5")); choices.insert (p_t (50998, "Voigtlander MACRO APO-LANTHAR 110mm f/2.5"));
choices.insert (p_t (50999, "Voigtlander COLOR-SKOPAR 21mm f/3.5 Aspherical")); choices.insert (p_t (50999, "Voigtlander COLOR-SKOPAR 21mm f/3.5 Aspherical"));
choices.insert (p_t (51505, "Samyang AF 14mm f/2.8 FE or Samyang AF 35mm f/2.8 FE")); choices.insert (p_t (51000, "Voigtlander NOKTON 50mm f/1.2 Aspherical"));
choices.insert (p_t (51505, "Samyang AF 35mm f/2.8 FE")); choices.insert (p_t (51001, "Voigtlander NOKTON 21mm f/1.4 Aspherical"));
choices.insert (p_t (51002, "Voigtlander APO-LANTHAR 50mm f/2 Aspherical"));
choices.insert (p_t (51504, "Samyang AF 50mm f/1.4"));
choices.insert (p_t (51505, "Samyang AF 14mm f/2.8 or Samyang AF 35mm f/2.8"));
choices.insert (p_t (51505, "Samyang AF 35mm f/2.8"));
choices.insert (p_t (51507, "Samyang AF 35mm f/1.4")); choices.insert (p_t (51507, "Samyang AF 35mm f/1.4"));
choices.insert (p_t (51508, "Samyang AF 45mm f/1.8"));
choices.insert (p_t (51510, "Samyang AF 18mm f/2.8"));
} }
std::string toString (const Tag* t) const override std::string toString (const Tag* t) const override
@ -2635,6 +2497,4 @@ const TagAttrib sonyCameraSettingsAttribs3[] = {
{-1, AC_DONTWRITE, 0, 0, 0, AUTO, "", NULL}};*/ {-1, AC_DONTWRITE, 0, 0, 0, AUTO, "", NULL}};*/
} }
#endif

View File

@ -17,8 +17,6 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>. * along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/ */
#ifndef _STDATTRIBS_
#define _STDATTRIBS_
#include <cstdio> #include <cstdio>
#include <cstring> #include <cstring>
@ -927,5 +925,3 @@ const TagAttrib ifdAttribs[] = {
{ -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr}
}; };
} }
#endif

View File

@ -33,7 +33,7 @@ public:
typedef double(*double2double_fun)(double val); typedef double(*double2double_fun)(double val);
class Adjuster : public Gtk::Grid class Adjuster final : public Gtk::Grid
{ {
protected: protected:

View File

@ -50,7 +50,7 @@ struct BatchQueueEntryIdleHelper {
int pending; int pending;
}; };
class BatchQueueEntry : public ThumbBrowserEntryBase, public BQEntryUpdateListener, public rtengine::NonCopyable class BatchQueueEntry final : public ThumbBrowserEntryBase, public BQEntryUpdateListener, public rtengine::NonCopyable
{ {
guint8* opreview; guint8* opreview;

View File

@ -28,7 +28,7 @@
class FilePanel; class FilePanel;
class Thumbnail; class Thumbnail;
class BatchToolPanelCoordinator : class BatchToolPanelCoordinator final :
public ToolPanelCoordinator, public ToolPanelCoordinator,
public FileSelectionChangeListener, public FileSelectionChangeListener,
public BatchPParamsChangeListener, public BatchPParamsChangeListener,

View File

@ -30,7 +30,7 @@
* the bar itself, i.e. use render_background (depending on its Gtk::Style) * the bar itself, i.e. use render_background (depending on its Gtk::Style)
* *
*/ */
class ColoredBar : private BackBuffer, public ColorCaller class ColoredBar final : private BackBuffer, public ColorCaller
{ {
private: private:

View File

@ -69,7 +69,7 @@ public:
* *
* The position of the Axis in the vector will be used in the communication between the Adjuster and the Provider to identify the Axis * The position of the Axis in the vector will be used in the communication between the Adjuster and the Provider to identify the Axis
*/ */
class CoordinateAdjuster : public Gtk::FlowBox class CoordinateAdjuster final : public Gtk::FlowBox
{ {
public: public:

View File

@ -37,6 +37,7 @@
#include "rtsurface.h" #include "rtsurface.h"
#include "../rtengine/dcrop.h" #include "../rtengine/dcrop.h"
#include "../rtengine/imagesource.h"
#include "../rtengine/procparams.h" #include "../rtengine/procparams.h"
#include "../rtengine/rt_math.h" #include "../rtengine/rt_math.h"

View File

@ -54,7 +54,7 @@ public:
}; };
class ImageArea; class ImageArea;
class CropWindow : public LWButtonListener, public CropDisplayHandler, public EditCoordSystem, public ObjectMOBuffer, public rtengine::NonCopyable class CropWindow final : public LWButtonListener, public CropDisplayHandler, public EditCoordSystem, public ObjectMOBuffer, public rtengine::NonCopyable
{ {
static bool initialized; static bool initialized;

View File

@ -18,8 +18,8 @@
*/ */
#pragma once #pragma once
#include "coloredbar.h"
#include "editcallbacks.h" #include "editcallbacks.h"
#include "guiutils.h"
#include "../rtengine/diagonalcurvetypes.h" #include "../rtengine/diagonalcurvetypes.h"
#include "../rtengine/flatcurvetypes.h" #include "../rtengine/flatcurvetypes.h"
@ -28,6 +28,7 @@
class CurveEditorGroup; class CurveEditorGroup;
class CurveEditorSubGroup; class CurveEditorSubGroup;
class ColorProvider;
class PopUpToggleButton; class PopUpToggleButton;
/* /*

Some files were not shown because too many files have changed in this diff Show More