OSDN Git Service

Pass the ImagePreset to ImageFilter
[android-x86/packages-apps-Camera2.git] / src / com / android / gallery3d / filtershow / filters / ImageFilter.java
index 3d96a33..256f5d6 100644 (file)
@@ -1,39 +1,71 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 package com.android.gallery3d.filtershow.filters;
 
 import android.graphics.Bitmap;
 
-public class ImageFilter {
+import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.editors.BasicEditor;
+import com.android.gallery3d.filtershow.presets.ImagePreset;
 
-    protected int mParameter = 0;
+public class ImageFilter implements Cloneable {
 
-    public String name() {
-        return "Original";
+    private ImagePreset mImagePreset;
+
+    protected String mName = "Original";
+    private final String LOGTAG = "ImageFilter";
+
+    public void setName(String name) {
+        mName = name;
     }
 
-    // TODO: maybe use clone instead?
-    public ImageFilter copy() {
-        ImageFilter filter = new ImageFilter();
-        filter.setParameter(mParameter);
-        return filter;
+    public String getName() {
+        return mName;
     }
 
-    public void apply(Bitmap bitmap) {
+    public Bitmap apply(Bitmap bitmap, float scaleFactor, int quality) {
         // do nothing here, subclasses will implement filtering here
+        return bitmap;
+    }
+
+    /**
+     * Called on small bitmaps to create button icons for each filter.
+     * Override this to provide filter-specific button icons.
+     */
+    public Bitmap iconApply(Bitmap bitmap, float scaleFactor, int quality) {
+        return apply(bitmap, scaleFactor, quality);
     }
 
-    public void setParameter(int value) {
-        mParameter = value;
+    public ImagePreset getImagePreset() {
+        return mImagePreset;
     }
 
-    public boolean same(ImageFilter filter) {
-        if (!filter.name().equalsIgnoreCase(name())) {
-            return false;
-        }
-        return true;
+    public void setImagePreset(ImagePreset imagePreset) {
+        mImagePreset = imagePreset;
+    }
+
+    public void useRepresentation(FilterRepresentation representation) {
     }
 
     native protected void nativeApplyGradientFilter(Bitmap bitmap, int w, int h,
             int[] redGradient, int[] greenGradient, int[] blueGradient);
 
+    public FilterRepresentation getDefaultRepresentation() {
+        return null;
+    }
+
 }