OSDN Git Service

ISOの設定も変更できるようになった。
authorMRSa <mrsa@myad.jp>
Mon, 4 May 2020 03:23:12 +0000 (12:23 +0900)
committerMRSa <mrsa@myad.jp>
Mon, 4 May 2020 03:23:12 +0000 (12:23 +0900)
app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/FujiXStatusHolder.java
app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/values/IFujiXFilmSimulation.java
app/src/main/res/layout-land/fragment_live_view.xml
app/src/main/res/layout/fragment_live_view.xml
app/src/main/res/values-ja/arrays.xml
app/src/main/res/values/arrays.xml

index c83f602..75b8bbe 100644 (file)
@@ -281,55 +281,58 @@ class FujiXStatusHolder
         switch (current)
         {
             case IFujiXFilmSimulation.FILM_SIMULATION_PROVIA:
-                value = "PROVIA";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_PROVIA_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_VELVIA:
-                value = "VELVIA";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_VELVIA_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_ASTIA:
-                value = "ASTIA";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_ASTIA_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_MONOCHROME:
-                value = "MONO";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_MONOCHROME_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_SEPIA:
-                value = "SEPIA";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_SEPIA_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_PRO_NEG_HI:
-                value = "NEG_HI";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_PRO_NEG_HI_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_PRO_NEG_STD:
-                value = "NEG_STD";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_PRO_NEG_STD_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_MONOCHROME_Y_FILTER:
-                value = "MONO_Y";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_MONOCHROME_Y_FILTER_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_MONOCHROME_R_FILTER:
-                value = "MONO_R";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_MONOCHROME_R_FILTER_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_MONOCHROME_G_FILTER:
-                value = "MONO_G";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_MONOCHROME_G_FILTER_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_CLASSIC_CHROME:
-                value = "CLASSIC CHROME";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_CLASSIC_CHROME_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_ACROS:
-                value = "ACROS";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_ACROS_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_ACROS_Y:
-                value = "ACROS_Y";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_ACROS_Y_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_ACROS_R:
-                value = "ACROS_R";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_ACROS_R_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_ACROS_G:
-                value = "ACROS_G";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_ACROS_G_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_ETERNA:
-                value = "ETERNA";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_ETERNA_STR;
                 break;
             case IFujiXFilmSimulation.FILM_SIMULATION_CLASSIC_NEGATIVE:
-                value = "CLASSIC NEGATIVE";
+                value = IFujiXFilmSimulation.FILM_SIMULATION_CLASSIC_NEGATIVE_STR;
+                break;
+            case IFujiXFilmSimulation.FILM_SIMULATION_ETERNA_BLEACH_BYPASS:
+                value = IFujiXFilmSimulation.FILM_SIMULATION_ETERNA_BLEACH_BYPASS_STR;
                 break;
             default:
                 value = "??? " + current;
@@ -374,7 +377,7 @@ class FujiXStatusHolder
                 value = "? " + current;
                 break;
         }
-        logcat("  Image Aspect : " + value);
+        logcat(" Image Aspect : " + value);
     }
 
 
@@ -480,12 +483,30 @@ class FujiXStatusHolder
         String iso = "";
         try
         {
-            iso = "" + (0x0000ffff & current);
+            int isoValue = (0x0000ffff & current);
+            if ((0xffff0000 & current) != 0)
+            {
+                iso = "AUTO_" + isoValue;
+            }
+            else if (isoValue > 12800)
+            {
+                iso = "H" + isoValue;
+
+            }
+            else if (isoValue < 200)
+            {
+                iso = "L" + isoValue;
+            }
+            else
+            {
+                iso = "" + isoValue;
+            }
         }
         catch (Exception e)
         {
             e.printStackTrace();
         }
+        logcat(" ISO SENSITIVITY : " + iso);
         notifier.updateIsoSensitivity(iso);
     }
 
@@ -611,7 +632,7 @@ class FujiXStatusHolder
         {
             mode = mode + current;
         }
-        logcat("  Focus Mode : " + mode);
+        logcat(" Focus Mode : " + mode);
     }
 
     private void updateFocusedStatus(@NonNull ICameraStatusUpdateNotify notifier, int previous, int current)
@@ -729,11 +750,11 @@ class FujiXStatusHolder
         }
         if (listKey.matches(ICameraStatus.WHITE_BALANCE))
         {
-            return (getAvailableWhiteBalanceItemList());
+            return (getAvailableResourceArrayItemList(R.array.fuji_x_white_balance));
         }
         if (listKey.matches(ICameraStatus.ISO_SENSITIVITY))
         {
-            return (getAvailableIsoSensitivityItemList());
+            return (getAvailableResourceArrayItemList(R.array.fuji_x_iso_sensitivity));
         }
 
 
@@ -777,15 +798,16 @@ class FujiXStatusHolder
         selection.add(IFujiXFilmSimulation.FILM_SIMULATION_ACROS_G_STR);
         selection.add(IFujiXFilmSimulation.FILM_SIMULATION_ETERNA_STR);
         selection.add(IFujiXFilmSimulation.FILM_SIMULATION_CLASSIC_NEGATIVE_STR);
+        selection.add(IFujiXFilmSimulation.FILM_SIMULATION_ETERNA_BLEACH_BYPASS_STR);
         return(selection);
     }
 
-    private List<String> getAvailableWhiteBalanceItemList()
+    private List<String> getAvailableResourceArrayItemList(int id)
     {
-        // WHITE BALANCEの選択肢をリストにして返す
+        // リソースのの選択肢をリストにして返す
         ArrayList<String> selection = new ArrayList<>();
 
-        String[] items = activity.getResources().getStringArray(R.array.fuji_x_white_balance);
+        String[] items = activity.getResources().getStringArray(id);
         for (String item : items)
         {
             selection.add(item);
@@ -793,14 +815,6 @@ class FujiXStatusHolder
         return (selection);
     }
 
-    private List<String> getAvailableIsoSensitivityItemList()
-    {
-        // ISO感度設定の選択肢をリストにして返す
-        ArrayList<String> selection = new ArrayList<>();
-        return (selection);
-    }
-
-
     private String getCurrentEffectStatus()
     {
         // EFFECTの現在状態を応答する : FILM Simulationにした
@@ -848,27 +862,35 @@ class FujiXStatusHolder
 
     private String getCurrentIsoSensitivityStatus()
     {
-        // ISO感度設定の現在状態を取得する
-        String isoValue = "";
+        String iso = "";
         try
         {
-            int value = statusHolder.get(IFujiXCameraProperties.ISO);
-            int iso = ((0x0000ffff & value));
-            int auto = ((0xffff0000 & value));
-            if (auto != 0)
+            int current = statusHolder.get(IFujiXCameraProperties.ISO);
+            int isoValue = (0x0000ffff & current);
+            if ((0xffff0000 & current) != 0)
             {
-                isoValue = "A (" + iso + ")";
+                iso = "AUTO_" + isoValue;
+            }
+            else if (isoValue > 12800)
+            {
+                iso = "H" + isoValue;
+
+            }
+            else if (isoValue < 200)
+            {
+                iso = "L" + isoValue;
             }
             else
             {
-                isoValue = "" + iso;
+                iso = "" + isoValue;
             }
         }
         catch (Exception e)
         {
             e.printStackTrace();
         }
-        return (isoValue);
+        logcat(" ISO SENSITIVITY : " + iso);
+        return (iso);
     }
 
     private void setEffectItem(String value)
@@ -896,6 +918,7 @@ class FujiXStatusHolder
 
     private void setCurrentWhiteBalanceStatus(String value)
     {
+        // White Balanceを設定する
         try
         {
             String[] items = activity.getResources().getStringArray(R.array.fuji_x_white_balance);
@@ -923,8 +946,30 @@ class FujiXStatusHolder
     private void setCurrentIsoSensitivityStatus(String value)
     {
         // ISO感度を設定する
-
-
+        try
+        {
+            String[] items = activity.getResources().getStringArray(R.array.fuji_x_iso_sensitivity);
+            String[] itemValues = activity.getResources().getStringArray(R.array.fuji_x_iso_sensitivity_value);
+            int index = 0;
+            for (String item : items)
+            {
+                Log.v(TAG, " ===== ISO : " + value + " " + item + " ===== ");
+                if (item.matches(value))
+                {
+                    // 見つかった! この値を設定する
+                    String itemValue = itemValues[index];
+                    int itemValueInt = (int) Long.parseLong(itemValue,16);
+                    logcat(" SET ISO SENSITIVITY : " + value + " " + itemValueInt);
+                    publisher.enqueueCommand(new SetPropertyValue(new FujiXReplyMessageReceiver(" Set ISO", true), IFujiXCameraProperties.ISO, 8, itemValueInt));
+                    return;
+                }
+                index++;
+            }
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
     }
 
     String getItemStatus(String key)
index 650cc55..dd6509e 100644 (file)
@@ -20,6 +20,7 @@ public interface IFujiXFilmSimulation
     int FILM_SIMULATION_ACROS_G  =15;
     int FILM_SIMULATION_ETERNA  =16;
     int FILM_SIMULATION_CLASSIC_NEGATIVE = 17;
+    int FILM_SIMULATION_ETERNA_BLEACH_BYPASS = 18;
     int FILM_SIMULATION_MAX = 18;
 
     String FILM_SIMULATION_PROVIA_STR  = "PROVIA";
@@ -39,5 +40,6 @@ public interface IFujiXFilmSimulation
     String FILM_SIMULATION_ACROS_G_STR  = "ACROS+G";
     String FILM_SIMULATION_ETERNA_STR  = "ETERNA";
     String FILM_SIMULATION_CLASSIC_NEGATIVE_STR = "CLASSIC Neg.";
+    String FILM_SIMULATION_ETERNA_BLEACH_BYPASS_STR = "ETERNA BLEACH BYPASS";
 
 }
index 6908dbe..ae969fb 100644 (file)
     <RelativeLayout
         android:id="@+id/fuji_x_keyPanelLayout"
         android:orientation="horizontal"
-        android:layout_width="125pt"
+        android:layout_width="100pt"
         android:layout_height="120pt"
         android:layout_alignLeft="@id/controlPanelLayout"
         android:layout_alignStart="@id/controlPanelLayout"
index 3fd10b4..e70ad0b 100644 (file)
     <RelativeLayout
         android:id="@+id/fuji_x_keyPanelLayout"
         android:orientation="horizontal"
-        android:layout_width="125pt"
+        android:layout_width="100pt"
         android:layout_height="120pt"
         android:layout_alignParentLeft="true"
         android:layout_alignParentStart="true"
index 16d7bb8..4ded025 100644 (file)
         <item>ACROS+G</item>
         <item>ETERNA</item>
         <item>CLASSIC Neg.</item>
+        <item>ETERNA BLEACH BYPASS</item>
     </string-array>
 
     <string-array name="fuji_x_film_simulation_value">
         <item>15</item>
         <item>16</item>
         <item>17</item>
+        <item>18</item>
     </string-array>
 
     <string-array name="fuji_x_white_balance">
         <item>32780</item>
     </string-array>
 
+    <string-array name="fuji_x_iso_sensitivity">
+        <item>AUTO_6400</item>
+        <item>AUTO_3200</item>
+        <item>AUTO_1600</item>
+        <item>AUTO_800</item>
+        <item>AUTO_400</item>
+        <item>200</item>
+        <item>250</item>
+        <item>320</item>
+        <item>400</item>
+        <item>500</item>
+        <item>640</item>
+        <item>800</item>
+        <item>1000</item>
+        <item>1250</item>
+        <item>1600</item>
+        <item>2000</item>
+        <item>2500</item>
+        <item>3200</item>
+        <item>4000</item>
+        <item>5000</item>
+        <item>6400</item>
+        <item>8000</item>
+        <item>10000</item>
+        <item>12800</item>
+        <item>H25600</item>
+        <item>H51200</item>
+        <item>L100</item>
+    </string-array>
+
+    <string-array name="fuji_x_iso_sensitivity_value">
+        <item>80001900</item>
+        <item>80000C80</item>
+        <item>80000640</item>
+        <item>80000320</item>
+        <item>80000190</item>
+        <item>C8</item>
+        <item>FA</item>
+        <item>140</item>
+        <item>190</item>
+        <item>1F4</item>
+        <item>280</item>
+        <item>320</item>
+        <item>3E8</item>
+        <item>4E2</item>
+        <item>640</item>
+        <item>7D0</item>
+        <item>9C4</item>
+        <item>C80</item>
+        <item>FA0</item>
+        <item>1388</item>
+        <item>1900</item>
+        <item>1F40</item>
+        <item>2710</item>
+        <item>3200</item>
+        <item>6400</item>
+        <item>C800</item>
+        <item>64</item>
+    </string-array>
+
 </resources>
index 16d7bb8..4ded025 100644 (file)
         <item>ACROS+G</item>
         <item>ETERNA</item>
         <item>CLASSIC Neg.</item>
+        <item>ETERNA BLEACH BYPASS</item>
     </string-array>
 
     <string-array name="fuji_x_film_simulation_value">
         <item>15</item>
         <item>16</item>
         <item>17</item>
+        <item>18</item>
     </string-array>
 
     <string-array name="fuji_x_white_balance">
         <item>32780</item>
     </string-array>
 
+    <string-array name="fuji_x_iso_sensitivity">
+        <item>AUTO_6400</item>
+        <item>AUTO_3200</item>
+        <item>AUTO_1600</item>
+        <item>AUTO_800</item>
+        <item>AUTO_400</item>
+        <item>200</item>
+        <item>250</item>
+        <item>320</item>
+        <item>400</item>
+        <item>500</item>
+        <item>640</item>
+        <item>800</item>
+        <item>1000</item>
+        <item>1250</item>
+        <item>1600</item>
+        <item>2000</item>
+        <item>2500</item>
+        <item>3200</item>
+        <item>4000</item>
+        <item>5000</item>
+        <item>6400</item>
+        <item>8000</item>
+        <item>10000</item>
+        <item>12800</item>
+        <item>H25600</item>
+        <item>H51200</item>
+        <item>L100</item>
+    </string-array>
+
+    <string-array name="fuji_x_iso_sensitivity_value">
+        <item>80001900</item>
+        <item>80000C80</item>
+        <item>80000640</item>
+        <item>80000320</item>
+        <item>80000190</item>
+        <item>C8</item>
+        <item>FA</item>
+        <item>140</item>
+        <item>190</item>
+        <item>1F4</item>
+        <item>280</item>
+        <item>320</item>
+        <item>3E8</item>
+        <item>4E2</item>
+        <item>640</item>
+        <item>7D0</item>
+        <item>9C4</item>
+        <item>C80</item>
+        <item>FA0</item>
+        <item>1388</item>
+        <item>1900</item>
+        <item>1F40</item>
+        <item>2710</item>
+        <item>3200</item>
+        <item>6400</item>
+        <item>C800</item>
+        <item>64</item>
+    </string-array>
+
 </resources>