OSDN Git Service

GR2 / PENTAXモードの自動認識・切り替えをできるようにした。
[gokigen/A01d.git] / app / src / main / java / net / osdn / gokigen / a01d / camera / ricohgr2 / operation / takepicture / RicohGr2AutoFocusControl.java
index d415c2f..14dd0c9 100644 (file)
@@ -2,30 +2,41 @@ package net.osdn.gokigen.a01d.camera.ricohgr2.operation.takepicture;
 
 import android.graphics.PointF;
 import android.graphics.RectF;
-import android.support.annotation.NonNull;
 import android.util.Log;
 
+import net.osdn.gokigen.a01d.camera.ricohgr2.wrapper.IUsePentaxCommand;
 import net.osdn.gokigen.a01d.camera.utils.SimpleHttpClient;
 import net.osdn.gokigen.a01d.liveview.IAutoFocusFrameDisplay;
 import net.osdn.gokigen.a01d.liveview.IIndicatorControl;
 
 import org.json.JSONObject;
 
+import androidx.annotation.NonNull;
+
+/**
+ *
+ *
+ */
 public class RicohGr2AutoFocusControl
 {
     private static final String TAG = RicohGr2AutoFocusControl.class.getSimpleName();
     private final IIndicatorControl indicator;
     private final IAutoFocusFrameDisplay frameDisplayer;
-    private String lockAutoFocusUrl = "http://192.168.0.1/v1/lens/focus/lock";    // Pentax機の場合は /v1/lens/focus
+    private final IUsePentaxCommand usePentaxCommand;
     private String unlockAutoFocusUrl = "http://192.168.0.1/v1/lens/focus/unlock";
     private String halfPressShutterUrl = "http://192.168.0.1/_gr";
     private int timeoutMs = 6000;
 
 
-    public RicohGr2AutoFocusControl(@NonNull final IAutoFocusFrameDisplay frameDisplayer, final IIndicatorControl indicator)
+    /**
+     *
+     *
+     */
+    public RicohGr2AutoFocusControl(@NonNull final IAutoFocusFrameDisplay frameDisplayer, final IIndicatorControl indicator, @NonNull IUsePentaxCommand usePentaxCommand)
     {
         this.frameDisplayer = frameDisplayer;
         this.indicator = indicator;
+        this.usePentaxCommand = usePentaxCommand;
     }
 
     /**
@@ -47,6 +58,7 @@ public class RicohGr2AutoFocusControl
                     {
                         showFocusFrame(preFocusFrameRect, IAutoFocusFrameDisplay.FocusFrameStatus.Running, 0.0);
 
+                        String lockAutoFocusUrl = (usePentaxCommand.getUsePentaxCommand()) ? "http://192.168.0.1/v1/lens/focus" : "http://192.168.0.1/v1/lens/focus/lock";
                         //int posX = (int) (Math.round(point.x * 100.0));
                         //int posY = (int) (Math.round(point.y * 100.0));
                         String postData = "pos=" + ( (int) (Math.round(point.x * 100.0))) + "," + ((int) (Math.round(point.y * 100.0)));