1 package net.osdn.gokigen.a01d.camera.ricohgr2.wrapper;
3 import android.app.Activity;
4 import android.content.SharedPreferences;
5 import android.preference.PreferenceManager;
6 import android.util.Log;
8 import net.osdn.gokigen.a01d.camera.ICameraConnection;
9 import net.osdn.gokigen.a01d.camera.ICameraInformation;
10 import net.osdn.gokigen.a01d.camera.ICameraStatusReceiver;
11 import net.osdn.gokigen.a01d.camera.ICaptureControl;
12 import net.osdn.gokigen.a01d.camera.IFocusingControl;
13 import net.osdn.gokigen.a01d.camera.ILiveViewControl;
14 import net.osdn.gokigen.a01d.camera.IFocusingModeNotify;
15 import net.osdn.gokigen.a01d.camera.IZoomLensControl;
16 import net.osdn.gokigen.a01d.camera.ricohgr2.IRicohGr2InterfaceProvider;
17 import net.osdn.gokigen.a01d.camera.ricohgr2.operation.RicohGr2CameraCaptureControl;
18 import net.osdn.gokigen.a01d.camera.ricohgr2.operation.RicohGr2CameraFocusControl;
19 import net.osdn.gokigen.a01d.camera.ricohgr2.operation.RicohGr2CameraZoomLensControl;
20 import net.osdn.gokigen.a01d.camera.ricohgr2.wrapper.connection.RicohGr2Connection;
21 import net.osdn.gokigen.a01d.camera.IDisplayInjector;
22 import net.osdn.gokigen.a01d.liveview.IAutoFocusFrameDisplay;
23 import net.osdn.gokigen.a01d.liveview.IIndicatorControl;
24 import net.osdn.gokigen.a01d.liveview.liveviewlistener.ILiveViewListener;
25 import net.osdn.gokigen.a01d.preference.IPreferencePropertyAccessor;
27 import androidx.annotation.NonNull;
33 public class RicohGr2InterfaceProvider implements IRicohGr2InterfaceProvider, IDisplayInjector, IUsePentaxCommand
35 private final String TAG = toString();
36 private final Activity activity;
37 //private final ICameraStatusReceiver provider;
38 private final RicohGr2Connection gr2Connection;
39 private RicohGr2LiveViewControl liveViewControl;
40 private RicohGr2CameraCaptureControl captureControl;
41 private RicohGr2CameraZoomLensControl zoomControl;
42 private RicohGr2CameraFocusControl focusControl;
44 private boolean usePentaxCommand = false;
50 public RicohGr2InterfaceProvider(@NonNull Activity context, @NonNull ICameraStatusReceiver provider)
52 this.activity = context;
53 //this.provider = provider;
54 gr2Connection = new RicohGr2Connection(context, provider, this);
55 liveViewControl = new RicohGr2LiveViewControl(context, this);
56 zoomControl = new RicohGr2CameraZoomLensControl();
65 // liveViewControl = new RicohGr2LiveViewControl();
73 public void injectDisplay(IAutoFocusFrameDisplay frameDisplayer, IIndicatorControl indicator, IFocusingModeNotify focusingModeNotify)
75 Log.v(TAG, "injectDisplay()");
76 focusControl = new RicohGr2CameraFocusControl(frameDisplayer, indicator, this);
77 captureControl = new RicohGr2CameraCaptureControl(frameDisplayer, this);
85 public ICameraConnection getRicohGr2CameraConnection()
87 return (gr2Connection);
95 public ILiveViewControl getLiveViewControl()
97 return (liveViewControl);
105 public ILiveViewListener getLiveViewListener()
107 if (liveViewControl == null)
111 return (liveViewControl.getLiveViewListener());
115 public IFocusingControl getFocusingControl()
117 return (focusControl);
121 public ICameraInformation getCameraInformation()
127 public IZoomLensControl getZoomLensControl()
129 return (zoomControl);
133 public ICaptureControl getCaptureControl()
135 return (captureControl);
139 public IDisplayInjector getDisplayInjector() {
144 public void setUsePentaxCommand(boolean usePentaxCommand)
146 this.usePentaxCommand = usePentaxCommand;
149 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
150 SharedPreferences.Editor editor = preferences.edit();
151 editor.putBoolean(IPreferencePropertyAccessor.USE_PENTAX_AUTOFOCUS, usePentaxCommand);
158 Log.v(TAG, " setUsePentaxCommand : " + usePentaxCommand);
162 public boolean getUsePentaxCommand()
164 return (usePentaxCommand);