OSDN Git Service

GR2 / PENTAXモードの自動認識・切り替えをできるようにした。
[gokigen/A01d.git] / app / src / main / java / net / osdn / gokigen / a01d / camera / ricohgr2 / operation / RicohGr2CameraFocusControl.java
1 package net.osdn.gokigen.a01d.camera.ricohgr2.operation;
2
3 import android.graphics.PointF;
4 import android.util.Log;
5 import android.view.MotionEvent;
6
7 import net.osdn.gokigen.a01d.camera.IFocusingControl;
8 import net.osdn.gokigen.a01d.camera.ricohgr2.operation.takepicture.RicohGr2AutoFocusControl;
9 import net.osdn.gokigen.a01d.camera.ricohgr2.wrapper.IUsePentaxCommand;
10 import net.osdn.gokigen.a01d.liveview.IAutoFocusFrameDisplay;
11 import net.osdn.gokigen.a01d.liveview.IIndicatorControl;
12
13 import androidx.annotation.NonNull;
14
15 public class RicohGr2CameraFocusControl implements IFocusingControl
16 {
17     private final String TAG = toString();
18     private final RicohGr2AutoFocusControl afControl;
19     private final IAutoFocusFrameDisplay frameDisplay;
20
21     public RicohGr2CameraFocusControl(@NonNull final IAutoFocusFrameDisplay frameDisplayer, @NonNull final IIndicatorControl indicator, @NonNull IUsePentaxCommand usePentaxCommand)
22     {
23         this.frameDisplay = frameDisplayer;
24         this.afControl = new RicohGr2AutoFocusControl(frameDisplayer, indicator, usePentaxCommand);
25     }
26
27     @Override
28     public boolean driveAutoFocus(MotionEvent motionEvent)
29     {
30         Log.v(TAG, "driveAutoFocus()");
31         if (motionEvent.getAction() != MotionEvent.ACTION_DOWN)
32         {
33             return (false);
34         }
35         try
36         {
37             PointF point = frameDisplay.getPointWithEvent(motionEvent);
38             if (frameDisplay.isContainsPoint(point))
39             {
40                 afControl.lockAutoFocus(point);
41             }
42         }
43         catch (Exception e)
44         {
45             e.printStackTrace();
46         }
47         return (false);
48     }
49
50     @Override
51     public void unlockAutoFocus()
52     {
53         afControl.unlockAutoFocus();
54     }
55
56     @Override
57     public void halfPressShutter(boolean isPressed)
58     {
59         afControl.halfPressShutter(isPressed);
60     }
61 }