OSDN Git Service

カメラ内のオブジェクト数を取得する部分を作りこむ。(SONY)
authorMRSa <mrsa@myad.jp>
Tue, 3 Sep 2019 15:43:28 +0000 (00:43 +0900)
committerMRSa <mrsa@myad.jp>
Tue, 3 Sep 2019 15:43:28 +0000 (00:43 +0900)
app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/sony/wrapper/ISonyCameraApi.java
app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/sony/wrapper/ISonyCameraHolder.java
app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/sony/wrapper/SonyCameraApi.java
app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/sony/wrapper/SonyCameraWrapper.java
app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/sony/wrapper/SonyRunMode.java
app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/sony/wrapper/connection/SonyCameraConnectSequence.java
app/src/main/java/net/osdn/gokigen/pkremote/camera/vendor/sony/wrapper/playback/SonyPlaybackControl.java

index b1cbafa..089b2b8 100644 (file)
@@ -50,6 +50,8 @@ public interface ISonyCameraApi
 
     JSONObject getAvcontentMethodTypes();
 
+    JSONObject getStorageInformation();
+
     JSONObject getSchemeList();
     JSONObject getSourceList(String scheme);
 
index f9a5831..69ebe66 100644 (file)
@@ -10,5 +10,6 @@ public interface ISonyCameraHolder
     void detectedCamera(@NonNull ISonyCamera camera);
     void prepare();
     void startRecMode();
+    void startPlaybackMode();
     void startEventWatch(@Nullable ICameraChangeListener listener);
 }
index 0bc9516..374656b 100644 (file)
@@ -438,6 +438,17 @@ class SonyCameraApi implements ISonyCameraApi
     }
 
     @Override
+    public JSONObject getStorageInformation()
+    {
+        try {
+            return (communicateJSON("camera", "getStorageInformation", new JSONArray(), "1.0", -1));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return (new JSONObject());
+    }
+
+    @Override
     public JSONObject getSchemeList()
     {
         try {
index 9d73a93..a6e308d 100644 (file)
@@ -80,10 +80,20 @@ public class SonyCameraWrapper implements ISonyCameraHolder, ISonyInterfaceProvi
             this.sonyCameraApi = SonyCameraApi.newInstance(sonyCamera);
             eventObserver = CameraEventObserver.newInstance(context, sonyCameraApi);
             liveViewControl = new SonyLiveViewControl(sonyCameraApi);
-
-            focusControl.setCameraApi(sonyCameraApi);
-            captureControl.setCameraApi(sonyCameraApi);
-            zoomControl.setCameraApi(sonyCameraApi);
+            playbackControl.setCameraApi(sonyCameraApi);
+            runMode.setCameraApi(sonyCameraApi);
+            if (focusControl != null)
+            {
+                focusControl.setCameraApi(sonyCameraApi);
+            }
+            if (captureControl != null)
+            {
+                captureControl.setCameraApi(sonyCameraApi);
+            }
+            if (zoomControl != null)
+            {
+                zoomControl.setCameraApi(sonyCameraApi);
+            }
         }
         catch (Exception e)
         {
@@ -111,6 +121,23 @@ public class SonyCameraWrapper implements ISonyCameraHolder, ISonyInterfaceProvi
     }
 
     @Override
+    public void startPlaybackMode()
+    {
+        try
+        {
+            startRecMode();
+            runMode.changeRunMode(false);
+            Log.v(TAG, "----- CHANGE PLAYBACK MODE -----");
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+    }
+
+
+
+    @Override
     public void startEventWatch(@Nullable ICameraChangeListener listener)
     {
         try
index 754d08f..c729432 100644 (file)
@@ -1,13 +1,48 @@
 package net.osdn.gokigen.pkremote.camera.vendor.sony.wrapper;
 
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+
 import net.osdn.gokigen.pkremote.camera.interfaces.control.ICameraRunMode;
 
+import org.json.JSONObject;
+
+
 public class SonyRunMode implements ICameraRunMode
 {
+    private final String TAG = toString();
+    private ISonyCameraApi cameraApi = null;
+
+    void setCameraApi(@NonNull ISonyCameraApi sonyCameraApi)
+    {
+        cameraApi = sonyCameraApi;
+    }
+
     @Override
     public void changeRunMode(boolean isRecording)
     {
-
+        try
+        {
+            if (cameraApi == null)
+            {
+                return;
+            }
+            JSONObject reply = cameraApi.setCameraFunction((isRecording)? "Remote Shooting" : "Contents Transfer");
+            try
+            {
+                int value = reply.getInt("result");
+                Log.v(TAG, "CHANGE RUN MODE : " + value);
+            }
+            catch (Exception ee)
+            {
+                ee.printStackTrace();
+            }
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
     }
 
     @Override
index 4212f88..9eccdb1 100644 (file)
@@ -80,8 +80,9 @@ public class SonyCameraConnectSequence implements Runnable, SonySsdpClient.ISear
                     try
                     {
                         cameraHolder.prepare();
-                        cameraHolder.startRecMode();
-                        cameraHolder.startEventWatch(listener);
+                        cameraHolder.startPlaybackMode();
+                        //cameraHolder.startRecMode();
+                        //cameraHolder.startEventWatch(listener);
                     }
                     catch (Exception e)
                     {
index 37d2c1f..cedd710 100644 (file)
@@ -1,5 +1,9 @@
 package net.osdn.gokigen.pkremote.camera.vendor.sony.wrapper.playback;
 
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+
 import net.osdn.gokigen.pkremote.camera.interfaces.playback.ICameraContentListCallback;
 import net.osdn.gokigen.pkremote.camera.interfaces.playback.ICameraFileInfo;
 import net.osdn.gokigen.pkremote.camera.interfaces.playback.IContentInfoCallback;
@@ -7,52 +11,100 @@ import net.osdn.gokigen.pkremote.camera.interfaces.playback.IDownloadContentCall
 import net.osdn.gokigen.pkremote.camera.interfaces.playback.IDownloadContentListCallback;
 import net.osdn.gokigen.pkremote.camera.interfaces.playback.IDownloadThumbnailImageCallback;
 import net.osdn.gokigen.pkremote.camera.interfaces.playback.IPlaybackControl;
+import net.osdn.gokigen.pkremote.camera.vendor.sony.wrapper.ISonyCameraApi;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
 
 public class SonyPlaybackControl implements IPlaybackControl
 {
+    private final String TAG = toString();
+    private ISonyCameraApi cameraApi = null;
+
     public SonyPlaybackControl()
     {
+        Log.v(TAG, "SonyPlaybackControl()");
 
     }
 
+    public void setCameraApi(@NonNull ISonyCameraApi sonyCameraApi)
+    {
+        cameraApi = sonyCameraApi;
+    }
 
     @Override
-    public String getRawFileSuffix() {
-        return null;
+    public String getRawFileSuffix()
+    {
+        return "ARW";
     }
 
     @Override
-    public void downloadContentList(IDownloadContentListCallback callback) {
+    public void downloadContentList(IDownloadContentListCallback callback)
+    {
+        Log.v(TAG, "downloadContentList()");
 
     }
 
     @Override
-    public void getContentInfo(String path, String name, IContentInfoCallback callback) {
+    public void getContentInfo(String path, String name, IContentInfoCallback callback)
+    {
+        Log.v(TAG, "getContentInfo()");
 
     }
 
     @Override
-    public void updateCameraFileInfo(ICameraFileInfo info) {
+    public void updateCameraFileInfo(ICameraFileInfo info)
+    {
+        Log.v(TAG, "updateCameraFileInfo()");
 
     }
 
     @Override
-    public void downloadContentScreennail(String path, IDownloadThumbnailImageCallback callback) {
+    public void downloadContentScreennail(String path, IDownloadThumbnailImageCallback callback)
+    {
+        Log.v(TAG, "downloadContentScreennail()");
 
     }
 
     @Override
-    public void downloadContentThumbnail(String path, IDownloadThumbnailImageCallback callback) {
+    public void downloadContentThumbnail(String path, IDownloadThumbnailImageCallback callback)
+    {
+        Log.v(TAG, "downloadContentThumbnail()");
 
     }
 
     @Override
-    public void downloadContent(String path, boolean isSmallSize, IDownloadContentCallback callback) {
+    public void downloadContent(String path, boolean isSmallSize, IDownloadContentCallback callback)
+    {
+        Log.v(TAG, "downloadContent()");
 
     }
 
     @Override
-    public void getCameraContentList(ICameraContentListCallback callback) {
-
+    public void getCameraContentList(ICameraContentListCallback callback)
+    {
+        Log.v(TAG, "getCameraContentList()");
+        try
+        {
+            if (cameraApi == null)
+            {
+                Log.v(TAG, "CAMERA API is NULL.");
+                return;
+            }
+            JSONObject storageInformationObj = cameraApi.getStorageInformation();
+            JSONObject schemeListObj = cameraApi.getSchemeList();
+            //JSONArray schemeArray = schemeListObj.getJSONArray("result");
+            JSONObject sourceObj = cameraApi.getSourceList("storage");
+            //JSONArray sourceArray = sourceObj.getJSONArray("result");
+            JSONObject countObject = cameraApi.getContentCountFlatAll("storage:memoryCard1");
+            JSONArray resultArray = countObject.getJSONArray("result");
+            int objectCount = resultArray.getJSONObject(0).getInt("count");
+            Log.v(TAG, "  OBJECT COUNT  : " + objectCount);
+
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
     }
 }