1 package net.osdn.gokigen.a01d.camera;
3 import android.app.Activity;
4 import android.content.SharedPreferences;
6 import net.osdn.gokigen.a01d.camera.olympus.wrapper.IOlympusLiveViewListener;
7 import net.osdn.gokigen.a01d.camera.olympus.IOlympusInterfaceProvider;
8 import net.osdn.gokigen.a01d.camera.olympus.wrapper.OlympusInterfaceProvider;
9 import net.osdn.gokigen.a01d.camera.ricohgr2.IRicohGr2InterfaceProvider;
10 import net.osdn.gokigen.a01d.camera.ricohgr2.wrapper.RicohGr2InterfaceProvider;
11 import net.osdn.gokigen.a01d.camera.sony.ISonyInterfaceProvider;
12 import net.osdn.gokigen.a01d.camera.sony.wrapper.SonyCameraWrapper;
13 import net.osdn.gokigen.a01d.liveview.ICameraStatusUpdateNotify;
14 import net.osdn.gokigen.a01d.preference.IPreferencePropertyAccessor;
16 import androidx.annotation.NonNull;
17 import androidx.preference.PreferenceManager;
19 public class CameraInterfaceProvider implements IInterfaceProvider
21 private final Activity context;
22 private final OlympusInterfaceProvider olympus;
23 private final SonyCameraWrapper sony;
24 private final RicohGr2InterfaceProvider ricohGr2;
25 private final CameraStatusListener statusListener;
27 public CameraInterfaceProvider(@NonNull Activity context, @NonNull ICameraStatusReceiver provider)
29 this.context = context;
30 this.statusListener = new CameraStatusListener();
31 olympus = new OlympusInterfaceProvider(context, provider);
32 sony = new SonyCameraWrapper(context, provider, statusListener);
33 ricohGr2 = new RicohGr2InterfaceProvider(context, provider);
37 public void setUpdateReceiver(@NonNull ICameraStatusUpdateNotify receiver)
41 statusListener.setUpdateReceiver(receiver);
50 public IOlympusInterfaceProvider getOlympusInterface()
56 public IOlympusLiveViewListener getOlympusLiveViewListener()
58 return (olympus.getLiveViewListener());
62 public ISonyInterfaceProvider getSonyInterface()
68 public IRicohGr2InterfaceProvider getRicohGr2Infterface()
76 * @return OPC / SONY / RICOH_GR2 (ICameraConnection.CameraConnectionMethod)
78 public ICameraConnection.CameraConnectionMethod getCammeraConnectionMethod()
80 ICameraConnection.CameraConnectionMethod ret = ICameraConnection.CameraConnectionMethod.OPC;
83 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
84 String connectionMethod = preferences.getString(IPreferencePropertyAccessor.CONNECTION_METHOD, "OPC");
85 if (connectionMethod.contains("SONY"))
87 ret = ICameraConnection.CameraConnectionMethod.SONY;
89 else if (connectionMethod.contains("RICOH_GR2"))
91 ret = ICameraConnection.CameraConnectionMethod.RICOH_GR2;