OSDN Git Service

次バージョンのための拡張を開始。
[gokigen/PKRemote.git] / app / src / main / java / net / osdn / gokigen / pkremote / camera / CameraInterfaceProvider.java
index 4317c7f..fa04c76 100644 (file)
@@ -1,9 +1,12 @@
 package net.osdn.gokigen.pkremote.camera;
 
-import android.app.Activity;
+import android.content.SharedPreferences;
+
+import net.osdn.gokigen.pkremote.IInformationReceiver;
 import net.osdn.gokigen.pkremote.camera.interfaces.control.ICameraButtonControl;
 import net.osdn.gokigen.pkremote.camera.interfaces.control.ICameraConnection;
 import net.osdn.gokigen.pkremote.camera.interfaces.liveview.ILiveViewListener;
+import net.osdn.gokigen.pkremote.camera.interfaces.playback.ICameraContentsRecognizer;
 import net.osdn.gokigen.pkremote.camera.interfaces.status.ICameraHardwareStatus;
 import net.osdn.gokigen.pkremote.camera.interfaces.status.ICameraInformation;
 import net.osdn.gokigen.pkremote.camera.interfaces.control.ICameraRunMode;
@@ -17,9 +20,23 @@ import net.osdn.gokigen.pkremote.camera.interfaces.IInterfaceProvider;
 import net.osdn.gokigen.pkremote.camera.interfaces.liveview.ILiveViewControl;
 import net.osdn.gokigen.pkremote.camera.interfaces.playback.IPlaybackControl;
 import net.osdn.gokigen.pkremote.camera.interfaces.control.IZoomLensControl;
+import net.osdn.gokigen.pkremote.camera.playback.CameraContentsRecognizer;
+import net.osdn.gokigen.pkremote.camera.utils.CameraStatusListener;
+import net.osdn.gokigen.pkremote.camera.vendor.fujix.wrapper.FujiXInterfaceProvider;
+import net.osdn.gokigen.pkremote.camera.vendor.olympus.IOlympusInterfaceProvider;
+import net.osdn.gokigen.pkremote.camera.vendor.olympus.wrapper.OlympusInterfaceProvider;
+import net.osdn.gokigen.pkremote.camera.vendor.olympuspen.wrapper.OlympusPenInterfaceProvider;
+import net.osdn.gokigen.pkremote.camera.vendor.panasonic.wrapper.PanasonicCameraWrapper;
+import net.osdn.gokigen.pkremote.camera.vendor.ptpip.IPtpIpInterfaceProvider;
+import net.osdn.gokigen.pkremote.camera.vendor.ptpip.wrapper.PtpIpInterfaceProvider;
 import net.osdn.gokigen.pkremote.camera.vendor.ricoh.wrapper.RicohGr2InterfaceProvider;
+import net.osdn.gokigen.pkremote.camera.vendor.sony.ISonyInterfaceProvider;
+import net.osdn.gokigen.pkremote.camera.vendor.sony.wrapper.SonyCameraWrapper;
+import net.osdn.gokigen.pkremote.preference.IPreferencePropertyAccessor;
 
 import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.preference.PreferenceManager;
 
 /**
  *
@@ -27,33 +44,47 @@ import androidx.annotation.NonNull;
  */
 public class CameraInterfaceProvider implements IInterfaceProvider
 {
-    //private final Activity context;
-    //private final SonyCameraWrapper sony;
+    private final SonyCameraWrapper sony;
+    private final OlympusInterfaceProvider olympus;
     private final RicohGr2InterfaceProvider ricohGr2;
-    //private final Activity context;
+    private final FujiXInterfaceProvider fujiX;
+    private final PanasonicCameraWrapper panasonic;
+    private final PtpIpInterfaceProvider ptpip;
+    private final OlympusPenInterfaceProvider olympuspen;
+    private final IInformationReceiver informationReceiver;
+    private final CameraContentsRecognizer cameraContentsRecognizer;
+    private final AppCompatActivity context;
+    //private final CameraStatusListener statusListener;
     private ICameraConnection.CameraConnectionMethod connectionMethod = ICameraConnection.CameraConnectionMethod.UNKNOWN;
 
-    public static IInterfaceProvider newInstance(@NonNull Activity context, @NonNull ICameraStatusReceiver provider)
+    public static IInterfaceProvider newInstance(@NonNull AppCompatActivity context, @NonNull ICameraStatusReceiver provider, @NonNull IInformationReceiver informationReceiver)
     {
-        return (new CameraInterfaceProvider(context, provider));
+        return (new CameraInterfaceProvider(context, provider, informationReceiver));
     }
 
     /**
      *
      *
      */
-    private CameraInterfaceProvider(@NonNull Activity context, @NonNull ICameraStatusReceiver provider)
+    private CameraInterfaceProvider(@NonNull AppCompatActivity context, @NonNull ICameraStatusReceiver provider, @NonNull IInformationReceiver informationReceiver)
     {
-        //this.context = context;
+        this.context = context;
+        CameraStatusListener statusListener = new CameraStatusListener();
+        olympus = new OlympusInterfaceProvider(context, provider);
         ricohGr2 = new RicohGr2InterfaceProvider(context, provider);
-        //sony = new SonyCameraWrapper(context, provider);
+        fujiX = new FujiXInterfaceProvider(context, provider, statusListener, informationReceiver);
+        sony = new SonyCameraWrapper(context, provider, statusListener, informationReceiver);
+        ptpip = new PtpIpInterfaceProvider(context, provider, statusListener, informationReceiver);
+        panasonic = new PanasonicCameraWrapper(context, provider, statusListener, informationReceiver);
+        olympuspen = new OlympusPenInterfaceProvider(context, provider);
+        this.informationReceiver = informationReceiver;
+        this.cameraContentsRecognizer = new CameraContentsRecognizer(context, this);
     }
 
-/*
     @Override
-    public IOlympusLiveViewListener getOlympusLiveViewListener()
+    public IOlympusInterfaceProvider getOlympusInterfaceProvider()
     {
-        return (olympus.getLiveViewListener());
+        return (olympus);
     }
 
     @Override
@@ -61,15 +92,12 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     {
         return (sony);
     }
-*/
 
-/*
     @Override
-    public IRicohGr2InterfaceProvider getRicohGr2Infterface()
+    public IPtpIpInterfaceProvider getPtpIpInterface()
     {
-        return (ricohGr2);
+        return (ptpip);
     }
-*/
 
     /**
      *
@@ -80,18 +108,39 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     {
         try
         {
-/*
             ICameraConnection.CameraConnectionMethod connectionMethod = getCammeraConnectionMethodImpl();
             if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
             {
                 return (olympus.getOlyCameraConnection());
             }
-            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X)
+            {
+                return (fujiX.getFujiXCameraConnection());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.PANASONIC)
+            {
+                return (panasonic.getPanasonicCameraConnection());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
+            {
+                return (sony.getSonyCameraConnection());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.CANON)
+            {
+                return (ptpip.getPtpIpCameraConnection());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.NIKON)
+            {
+                return (ptpip.getPtpIpCameraConnection());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.OLYMPUS)
+            {
+                return (olympuspen.getOlyCameraConnection());
+            }
+            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH)
             {
                 return (ricohGr2.getRicohGr2CameraConnection());
             }
-*/
-            return (ricohGr2.getRicohGr2CameraConnection());
         }
         catch (Exception e)
         {
@@ -105,18 +154,39 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     {
         try
         {
-/*
             ICameraConnection.CameraConnectionMethod connectionMethod = getCammeraConnectionMethodImpl();
             if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
             {
                 return (olympus.getButtonControl());
             }
-            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X)
+            {
+                return (fujiX.getButtonControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.PANASONIC)
+            {
+                return (panasonic.getButtonControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
+            {
+                return (sony.getButtonControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.CANON)
+            {
+                return (ptpip.getButtonControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.NIKON)
+            {
+                return (ptpip.getButtonControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.OLYMPUS)
+            {
+                return (olympuspen.getButtonControl());
+            }
+            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH)
             {
                 return (ricohGr2.getButtonControl());
             }
-*/
-            return (ricohGr2.getButtonControl());
         }
         catch (Exception e)
         {
@@ -130,18 +200,39 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     {
         try
         {
-/*
             ICameraConnection.CameraConnectionMethod connectionMethod = getCammeraConnectionMethodImpl();
             if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
             {
                 return (olympus.getDisplayInjector());
             }
-            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X)
+            {
+                return (fujiX.getDisplayInjector());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.PANASONIC)
+            {
+                return (panasonic.getDisplayInjector());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
+            {
+                return (sony.getDisplayInjector());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.CANON)
+            {
+                return (ptpip.getDisplayInjector());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.NIKON)
+            {
+                return (ptpip.getDisplayInjector());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.OLYMPUS)
+            {
+                return (olympuspen.getDisplayInjector());
+            }
+            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH)
             {
                 return (ricohGr2.getDisplayInjector());
             }
-*/
-            return (ricohGr2.getDisplayInjector());
         }
         catch (Exception e)
         {
@@ -155,18 +246,39 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     {
         try
         {
-/*
             ICameraConnection.CameraConnectionMethod connectionMethod = getCammeraConnectionMethodImpl();
             if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
             {
                 return (olympus.getLiveViewControl());
             }
-            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X)
+            {
+                return (fujiX.getLiveViewControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.PANASONIC)
+            {
+                return (panasonic.getPanasonicLiveViewControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
+            {
+                return (sony.getLiveViewControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.CANON)
+            {
+                return (ptpip.getLiveViewControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.NIKON)
+            {
+                return (ptpip.getLiveViewControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.OLYMPUS)
+            {
+                return (olympuspen.getLiveViewControl());
+            }
+            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH)
             {
                 return (ricohGr2.getLiveViewControl());
             }
-*/
-            return (ricohGr2.getLiveViewControl());
         }
         catch (Exception e)
         {
@@ -180,18 +292,39 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     {
         try
         {
-/*
             ICameraConnection.CameraConnectionMethod connectionMethod = getCammeraConnectionMethodImpl();
             if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
             {
                 return (olympus.getLiveViewListener());
             }
-            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X)
+            {
+                return (fujiX.getLiveViewListener());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.PANASONIC)
+            {
+                return (panasonic.getLiveViewListener());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
+            {
+                return (sony.getLiveViewListener());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.CANON)
+            {
+                return (ptpip.getLiveViewListener());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.NIKON)
+            {
+                return (ptpip.getLiveViewListener());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.OLYMPUS)
+            {
+                return (olympuspen.getLiveViewListener());
+            }
+            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH)
             {
                 return (ricohGr2.getLiveViewListener());
             }
-*/
-            return (ricohGr2.getLiveViewListener());
         }
         catch (Exception e)
         {
@@ -205,18 +338,39 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     {
         try
         {
-/*
             ICameraConnection.CameraConnectionMethod connectionMethod = getCammeraConnectionMethodImpl();
             if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
             {
                 return (olympus.getFocusingControl());
             }
-            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X)
+            {
+                return (fujiX.getFocusingControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.PANASONIC)
+            {
+                return (panasonic.getFocusingControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
+            {
+                return (sony.getFocusingControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.CANON)
+            {
+                return (ptpip.getFocusingControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.NIKON)
+            {
+                return (ptpip.getFocusingControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.OLYMPUS)
+            {
+                return (olympuspen.getFocusingControl());
+            }
+            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH)
             {
                 return (ricohGr2.getFocusingControl());
             }
-*/
-            return (ricohGr2.getFocusingControl());
         }
         catch (Exception e)
         {
@@ -230,18 +384,39 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     {
         try
         {
-/*
             ICameraConnection.CameraConnectionMethod connectionMethod = getCammeraConnectionMethodImpl();
             if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
             {
                 return (olympus.getCameraInformation());
             }
-            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X)
+            {
+                return (fujiX.getCameraInformation());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.PANASONIC)
+            {
+                return (panasonic.getCameraInformation());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
+            {
+                return (sony.getCameraInformation());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.CANON)
+            {
+                return (ptpip.getCameraInformation());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.NIKON)
+            {
+                return (ptpip.getCameraInformation());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.OLYMPUS)
+            {
+                return (olympuspen.getCameraInformation());
+            }
+            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH)
             {
                 return (ricohGr2.getCameraInformation());
             }
-*/
-            return (ricohGr2.getCameraInformation());
         }
         catch (Exception e)
         {
@@ -255,18 +430,39 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     {
         try
         {
-/*
             ICameraConnection.CameraConnectionMethod connectionMethod = getCammeraConnectionMethodImpl();
             if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
             {
                 return (olympus.getZoomLensControl());
             }
-            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X)
+            {
+                return (fujiX.getZoomLensControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.PANASONIC)
+            {
+                return (panasonic.getZoomLensControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
+            {
+                return (sony.getZoomLensControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.CANON)
+            {
+                return (ptpip.getZoomLensControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.NIKON)
+            {
+                return (ptpip.getZoomLensControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.OLYMPUS)
+            {
+                return (olympuspen.getZoomLensControl());
+            }
+            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH)
             {
                 return (ricohGr2.getZoomLensControl());
             }
-*/
-            return (ricohGr2.getZoomLensControl());
         }
         catch (Exception e)
         {
@@ -280,18 +476,39 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     {
         try
         {
-/*
             ICameraConnection.CameraConnectionMethod connectionMethod = getCammeraConnectionMethodImpl();
             if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
             {
                 return (olympus.getCaptureControl());
             }
-            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X)
+            {
+                return (fujiX.getCaptureControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.PANASONIC)
+            {
+                return (panasonic.getCaptureControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
+            {
+                return (sony.getCaptureControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.CANON)
+            {
+                return (ptpip.getCaptureControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.NIKON)
+            {
+                return (ptpip.getCaptureControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.OLYMPUS)
+            {
+                return (olympuspen.getCaptureControl());
+            }
+            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH)
             {
                 return (ricohGr2.getCaptureControl());
             }
-*/
-            return (ricohGr2.getCaptureControl());
         }
         catch (Exception e)
         {
@@ -305,18 +522,39 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     {
         try
         {
-/*
             ICameraConnection.CameraConnectionMethod connectionMethod = getCammeraConnectionMethodImpl();
             if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
             {
                 return (olympus.getCameraStatusListHolder());
             }
-            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X)
+            {
+                return (fujiX.getCameraStatusListHolder());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.PANASONIC)
+            {
+                return (panasonic.getCameraStatusListHolder());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
+            {
+                return (sony.getCameraStatusListHolder());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.CANON)
+            {
+                return (ptpip.getCameraStatusListHolder());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.NIKON)
+            {
+                return (ptpip.getCameraStatusListHolder());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.OLYMPUS)
+            {
+                return (olympuspen.getCameraStatusListHolder());
+            }
+            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH)
             {
                 return (ricohGr2.getCameraStatusListHolder());
             }
-*/
-            return (ricohGr2.getCameraStatusListHolder());
         }
         catch (Exception e)
         {
@@ -330,18 +568,39 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     {
         try
         {
-/*
             ICameraConnection.CameraConnectionMethod connectionMethod = getCammeraConnectionMethodImpl();
             if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
             {
                 return (olympus.getCameraStatusWatcher());
             }
-            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X)
+            {
+                return (fujiX.getCameraStatusWatcher());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.PANASONIC)
+            {
+                return (panasonic.getCameraStatusWatcher());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
+            {
+                return (sony.getCameraStatusWatcher());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.CANON)
+            {
+                return (ptpip.getCameraStatusWatcher());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.NIKON)
+            {
+                return (ptpip.getCameraStatusWatcher());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.OLYMPUS)
+            {
+                return (olympuspen.getCameraStatusWatcher());
+            }
+            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH)
             {
                 return (ricohGr2.getCameraStatusWatcher());
             }
-*/
-            return (ricohGr2.getCameraStatusWatcher());
         }
         catch (Exception e)
         {
@@ -355,18 +614,39 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     {
         try
         {
-/*
             ICameraConnection.CameraConnectionMethod connectionMethod = getCammeraConnectionMethodImpl();
             if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
             {
                 return (olympus.getPlaybackControl());
             }
-            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X)
+            {
+                return (fujiX.getPlaybackControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.PANASONIC)
+            {
+                return (panasonic.getPlaybackControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
+            {
+                return (sony.getPlaybackControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.CANON)
+            {
+                return (ptpip.getPlaybackControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.NIKON)
+            {
+                return (ptpip.getPlaybackControl());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.OLYMPUS)
+            {
+                return (olympuspen.getPlaybackControl());
+            }
+            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH)
             {
                 return (ricohGr2.getPlaybackControl());
             }
-*/
-            return (ricohGr2.getPlaybackControl());
         }
         catch (Exception e)
         {
@@ -380,18 +660,39 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     {
         try
         {
-/*
             ICameraConnection.CameraConnectionMethod connectionMethod = getCammeraConnectionMethodImpl();
             if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
             {
                 return (olympus.getHardwareStatus());
             }
-            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X)
+            {
+                return (fujiX.getHardwareStatus());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.PANASONIC)
+            {
+                return (panasonic.getHardwareStatus());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
+            {
+                return (sony.getHardwareStatus());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.CANON)
+            {
+                return (ptpip.getHardwareStatus());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.NIKON)
+            {
+                return (ptpip.getHardwareStatus());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.OLYMPUS)
+            {
+                return (olympuspen.getHardwareStatus());
+            }
+            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH)
             {
                 return (ricohGr2.getHardwareStatus());
             }
-*/
-            return (ricohGr2.getHardwareStatus());
         }
         catch (Exception e)
         {
@@ -405,18 +706,39 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     {
         try
         {
-/*
             ICameraConnection.CameraConnectionMethod connectionMethod = getCammeraConnectionMethodImpl();
             if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
             {
                 return (olympus.getCameraRunMode());
             }
-            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X)
+            {
+                return (fujiX.getCameraRunMode());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.PANASONIC)
+            {
+                return (panasonic.getCameraRunMode());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
+            {
+                return (sony.getCameraRunMode());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.CANON)
+            {
+                return (ptpip.getCameraRunMode());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.NIKON)
+            {
+                return (ptpip.getCameraRunMode());
+            }
+            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.OLYMPUS)
+            {
+                return (olympuspen.getCameraRunMode());
+            }
+            else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH)
             {
                 return (ricohGr2.getCameraRunMode());
             }
-*/
-            return (ricohGr2.getCameraRunMode());
         }
         catch (Exception e)
         {
@@ -428,7 +750,7 @@ public class CameraInterfaceProvider implements IInterfaceProvider
     /**
      *   OPC/GR2/SONY カメラを使用するかどうか
      *
-     * @return OPC / SONY / RICOH_GR2  (ICameraConnection.CameraConnectionMethod)
+     * @return OPC / SONY / RICOH  (ICameraConnection.CameraConnectionMethod)
      */
     public ICameraConnection.CameraConnectionMethod getCammeraConnectionMethod()
     {
@@ -449,6 +771,22 @@ public class CameraInterfaceProvider implements IInterfaceProvider
      *
      *
      */
+    @Override
+    public IInformationReceiver getInformationReceiver()
+    {
+        return (informationReceiver);
+    }
+
+    @Override
+    public ICameraContentsRecognizer getCameraContentsRecognizer()
+    {
+        return (cameraContentsRecognizer);
+    }
+
+    /**
+     *
+     *
+     */
     private ICameraConnection.CameraConnectionMethod getCammeraConnectionMethodImpl()
     {
         if (connectionMethod != ICameraConnection.CameraConnectionMethod.UNKNOWN)
@@ -458,23 +796,46 @@ public class CameraInterfaceProvider implements IInterfaceProvider
         ICameraConnection.CameraConnectionMethod ret;
         try
         {
-/*
             SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
-            String connectionMethod = preferences.getString(IPreferencePropertyAccessor.CONNECTION_METHOD, "RICOH_GR2");
-            if (connectionMethod.contains("RICOH_GR2"))
+            String connectionMethod = preferences.getString(IPreferencePropertyAccessor.CONNECTION_METHOD, "RICOH");
+            if (connectionMethod.contains("RICOH"))
+            {
+                ret = ICameraConnection.CameraConnectionMethod.RICOH;
+            }
+            else if (connectionMethod.contains("FUJI_X"))
+            {
+                ret = ICameraConnection.CameraConnectionMethod.FUJI_X;
+            }
+            else if (connectionMethod.contains("PANASONIC"))
+            {
+                ret = ICameraConnection.CameraConnectionMethod.PANASONIC;
+            }
+            else if (connectionMethod.contains("SONY"))
+            {
+                ret = ICameraConnection.CameraConnectionMethod.SONY;
+            }
+            else if (connectionMethod.contains("CANON"))
+            {
+                ret = ICameraConnection.CameraConnectionMethod.CANON;
+            }
+            else if (connectionMethod.contains("NIKON"))
             {
-                ret = ICameraConnection.CameraConnectionMethod.RICOH_GR2;
+                ret = ICameraConnection.CameraConnectionMethod.NIKON;
+            }
+            else if (connectionMethod.contains("OLYMPUS"))
+            {
+                ret = ICameraConnection.CameraConnectionMethod.OLYMPUS;
             }
             else // if (connectionMethod.contains("OPC"))
             {
                 ret = ICameraConnection.CameraConnectionMethod.OPC;
             }
+/*
             else if (connectionMethod.contains("SONY"))
             {
                 ret = ICameraConnection.CameraConnectionMethod.SONY;
             }
 */
-            ret = ICameraConnection.CameraConnectionMethod.RICOH_GR2;
         }
         catch (Exception e)
         {