Look for mot-zoom-step
authorsrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Wed, 7 Apr 2010 08:10:35 +0000 (08:10 +0000)
committersrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Wed, 7 Apr 2010 08:10:35 +0000 (08:10 +0000)
git-svn-id: http://zxing.googlecode.com/svn/trunk@1290 59b500cc-1b3d-0410-9834-0bbf25fbcc57

android/src/com/google/zxing/client/android/CameraManager.java

index 5d7f598..c18fc6d 100755 (executable)
@@ -476,14 +476,27 @@ final class CameraManager {
       }
     }
 
-    String motZoomValues = parameters.get("mot-zoom-values");
-    if (motZoomValues != null) {
-      tenDesiredZoom = findBestMotZoomValue(motZoomValues, tenDesiredZoom);
+    String motZoomValuesString = parameters.get("mot-zoom-values");
+    if (motZoomValuesString != null) {
+      tenDesiredZoom = findBestMotZoomValue(motZoomValuesString, tenDesiredZoom);
+    }
+
+    String motZoomStepString = parameters.get("mot-zoom-step");
+    if (motZoomStepString != null) {
+      try {
+        double motZoomStep = Double.parseDouble(motZoomStepString.trim());
+        int tenZoomStep = (int) (10.0 * motZoomStep);
+        if (tenZoomStep > 1) {
+          tenDesiredZoom -= tenDesiredZoom % tenZoomStep;
+        }
+      } catch (NumberFormatException nfe) {
+        // continue
+      }
     }
 
     // Set zoom. This helps encourage the user to pull back.
     // Some devices like the Behold have a zoom parameter
-    if (maxZoomString != null || motZoomValues != null) {
+    if (maxZoomString != null || motZoomValuesString != null) {
       parameters.set("zoom", String.valueOf(tenDesiredZoom / 10.0));
     }