~berthold-daum/zora/trunk

« back to all changes in this revision

Viewing changes to com.bdaum.zoom.recipes.acr/src/com/bdaum/zoom/recipes/acr/internal/AcrDetector.java

  • Committer: bdaum
  • Date: 2015-12-26 10:21:51 UTC
  • Revision ID: berthold.daum@bdaum.de-20151226102151-44f1j5113167thb9
VersionĀ 2.4.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
50
50
import com.bdaum.zoom.image.recipe.SplitTone;
51
51
import com.bdaum.zoom.image.recipe.UnsharpMask;
52
52
import com.bdaum.zoom.image.recipe.Vignette;
 
53
import com.bdaum.zoom.program.BatchUtilities;
 
54
import com.bdaum.zoom.program.DiskFullException;
53
55
 
54
56
public class AcrDetector extends AbstractRecipeDetector {
55
57
        private static final String XMP = ".xmp"; //$NON-NLS-1$
114
116
        }
115
117
 
116
118
        public Recipe loadRecipeForImage(String uri, boolean highres,
117
 
                        IFocalLengthProvider focalLengthProvider, Map<String, String> overlayMap) {
 
119
                        IFocalLengthProvider focalLengthProvider,
 
120
                        Map<String, String> overlayMap) {
118
121
                String xmpUri = uri;
119
122
 
120
123
                InputStream xmpIn = null;
144
147
                                // no XMP file
145
148
                        }
146
149
                }
147
 
                return (xmpIn != null) ? loadRecipeFile(xmpUri, xmpIn, overlayMap) : null;
 
150
                return (xmpIn != null) ? loadRecipeFile(xmpUri, xmpIn, overlayMap)
 
151
                                : null;
148
152
        }
149
153
 
150
 
        private Recipe loadRecipeFile(String xmpUri, InputStream xmpIn, Map<String, String> overlayMap) {
 
154
        private Recipe loadRecipeFile(String xmpUri, InputStream xmpIn,
 
155
                        Map<String, String> overlayMap) {
151
156
                Recipe recipe = null;
152
157
                // Values
153
158
                int orientation = 1;
841
846
                return false;
842
847
        }
843
848
 
 
849
        public File[] getMetafiles(String uri) {
 
850
                if (isRecipeEmbbedded(uri) < 0) {
 
851
                        try {
 
852
                                URI[] sidecarURIs = Core.getSidecarURIs(new URI(uri));
 
853
                                for (URI u : sidecarURIs) {
 
854
                                        File xmpFile = new File(u);
 
855
                                        if (xmpFile.exists())
 
856
                                                return new File[] { xmpFile };
 
857
                                }
 
858
                        } catch (URISyntaxException e1) {
 
859
                                // should never happen
 
860
                        }
 
861
                }
 
862
                return null;
 
863
        }
 
864
 
 
865
        public void archiveRecipes(File targetFolder, String uri, String newUri,
 
866
                        boolean readOnly) throws IOException, DiskFullException {
 
867
                File[] metafiles = getMetafiles(uri);
 
868
                if (metafiles != null) {
 
869
                        for (File file : metafiles) {
 
870
                                File targetFile = new File(targetFolder, Core.getFileName(
 
871
                                                newUri, false) + XMP);
 
872
                                BatchUtilities.copyFile(file, targetFile, null);
 
873
                                if (readOnly)
 
874
                                        targetFile.setReadOnly();
 
875
                        }
 
876
                }
 
877
 
 
878
        }
 
879
 
844
880
        public Recipe loadRecipe(String uri, boolean highres,
845
 
                        IFocalLengthProvider focalLengthProvider, Map<String, String> overlayMap) {
 
881
                        IFocalLengthProvider focalLengthProvider,
 
882
                        Map<String, String> overlayMap) {
846
883
                uri = uri.toLowerCase();
847
884
                try {
848
885
                        if (uri.endsWith(XMP))