OSDN Git Service

微修正。
authorMRSa <mrsa@myad.jp>
Sun, 17 Jan 2021 05:47:22 +0000 (14:47 +0900)
committerMRSa <mrsa@myad.jp>
Sun, 17 Jan 2021 05:47:22 +0000 (14:47 +0900)
wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/OlyCameraCoordinator.java
wear/src/main/java/jp/sfjp/gokigen/a01c/thetacamerawrapper/ThetaFeatureDispatcher.kt
wear/src/main/res/values/arrays.xml

index 49fd5d6..3797937 100644 (file)
@@ -15,7 +15,6 @@ import androidx.preference.PreferenceManager;
 
 import jp.co.olympus.camerakit.OLYCamera;
 
-import jp.co.olympus.camerakit.OLYCameraLiveViewListener;
 import jp.sfjp.gokigen.a01c.ICameraConnection;
 import jp.sfjp.gokigen.a01c.ICameraController;
 import jp.sfjp.gokigen.a01c.ICameraFeatureDispatcher;
index 82b4f59..3ca62c2 100644 (file)
@@ -9,8 +9,6 @@ import jp.sfjp.gokigen.a01c.ICameraFeatureDispatcher
 import jp.sfjp.gokigen.a01c.IShowInformation
 import jp.sfjp.gokigen.a01c.R
 import jp.sfjp.gokigen.a01c.liveview.ILiveImageStatusNotify
-import jp.sfjp.gokigen.a01c.olycamerawrapper.property.IOlyCameraProperty
-import jp.sfjp.gokigen.a01c.olycamerawrapper.takepicture.IBracketingShotStyle
 import jp.sfjp.gokigen.a01c.thetacamerawrapper.operation.ThetaOptionUpdateControl
 
 class ThetaFeatureDispatcher(private val context: AppCompatActivity, private val statusDrawer: IShowInformation, private val camera: ICameraController, private val preferences: PreferenceDataStore, private val liveImageView: ILiveImageStatusNotify, private val optionSet : ThetaOptionUpdateControl, private val statusHolder : IThetaStatusHolder, private val sessionIdProvider : IThetaSessionIdProvider): ICameraFeatureDispatcher
@@ -19,6 +17,8 @@ class ThetaFeatureDispatcher(private val context: AppCompatActivity, private val
     private var exposureProgramIndex : Int = 1
     private var thetaFilterModeIndex : Int = 0
     private var thetaWhiteBalanceIndex : Int = 0
+    private var thetaIsoSensitivityIndex: Int = 2
+    private var thetaShutterSpeedIndex : Int = 26
 
     /**
      * 指定した機能を実行する
@@ -36,11 +36,6 @@ class ThetaFeatureDispatcher(private val context: AppCompatActivity, private val
             return false
         }
 
-        // AREA1: Movie/Video切替
-        // AREA2: Exposure Program
-        // AREA3: Filter
-        // AREA4: Settings (未実装)
-
         // 機能実行の割り当て...
         var duration = IShowInformation.VIBRATE_PATTERN_SIMPLE_SHORT
         when (featureNumber) {
@@ -49,10 +44,17 @@ class ThetaFeatureDispatcher(private val context: AppCompatActivity, private val
             ICameraFeatureDispatcher.FEATURE_SHUTTER_SINGLESHOT ->                  // シャッター(一枚撮影)
                 pushShutterButton()
             ICameraFeatureDispatcher.FEATURE_SETTINGS -> {
-                showSettingsScreen()                                                // 設定画面を開く
-                duration = IShowInformation.VIBRATE_PATTERN_NONE
+                if (statusHolder.captureMode != "Movie")
+                {
+                    showSettingsScreen()                                            // 設定画面を開く
+                    duration = IShowInformation.VIBRATE_PATTERN_NONE
+                }
+                else
+                {
+                    changeIsoSensitivity()                                         // ISO感度を変更(Movieモード時)
+                }
             }
-            ICameraFeatureDispatcher.FEATURE_CONTROL_MOVIE ->                       // 動画の撮影・撮影終了
+            ICameraFeatureDispatcher.FEATURE_CONTROL_MOVIE ->                      // 動画の撮影・撮影終了
                 movieControl()
             ICameraFeatureDispatcher.FEATURE_CHANGE_TAKEMODE ->                    // 撮影モードの変更
                 changeTakeMode()
@@ -68,125 +70,18 @@ class ThetaFeatureDispatcher(private val context: AppCompatActivity, private val
                 changeFilterMode()
             ICameraFeatureDispatcher.FEATURE_CHANGE_AE ->                          // FILTER MODE AE(測光方式)を選択
                 changeFilterMode()
-            ICameraFeatureDispatcher.FEATURE_WB_DOWN ->                            // ホワイトバランスを選択
-                changeWhiteBalanceDown()
-            ICameraFeatureDispatcher.FEATURE_WB_UP ->                              // ホワイトバランスを選択
-                changeWhiteBalanceUp()
-
-/*
-            ICameraFeatureDispatcher.FEATURE_APERTURE_DOWN ->                      // 絞り値を1段階下げる
-                changeApertureValueDown()
-            ICameraFeatureDispatcher.FEATURE_APERTURE_UP ->                        // 絞り値を1段階上げる
-                changeApertureValueUp()
-            ICameraFeatureDispatcher.FEATURE_SHUTTER_SPEED_DOWN ->                 // シャッター速度を1段階下げる
+            ICameraFeatureDispatcher.FEATURE_WB_DOWN ->                            // シャッタースピードDOWN (ホワイトバランスを選択)
                 changeShutterSpeedDown()
-            ICameraFeatureDispatcher.FEATURE_SHUTTER_SPEED_UP ->                   // シャッター速度を1段階上げる
+            ICameraFeatureDispatcher.FEATURE_WB_UP ->                              // シャッタースピードUP (ホワイトバランスを選択)
                 changeShutterSpeedUp()
-            ICameraFeatureDispatcher.FEATURE_COLORTONE_DOWN ->                    // 仕上がり・ピクチャーモードを選択
-                changeColorToneDown()
-            ICameraFeatureDispatcher.FEATURE_COLORTONE_UP ->                       // 仕上がり・ピクチャーモードを選択
-                changeColorToneUp()
-            ICameraFeatureDispatcher.FEATURE_ART_FILTER_DOWN ->                    // アートフィルターを選択
-                changeArtFilterDown()
-            ICameraFeatureDispatcher.FEATURE_ART_FILTER_UP ->                      // アートフィルターを選択
-                changeArtFilterUp()
-            ICameraFeatureDispatcher.FEATURE_TOGGLE_SHOW_LEVEL_GAUGE ->                 // デジタル水準器の表示・非表示
-                changeShowLevelGauge()
-            ICameraFeatureDispatcher.FEATURE_AE_DOWN ->                 // AE(測光方式)を選択
-                changeAEModeDown()
-            ICameraFeatureDispatcher.FEATURE_AE_UP ->                 // AE(測光方式)を選択
-                changeAEModeUp()
-            ICameraFeatureDispatcher.FEATURE_ISO_DOWN ->                 // ISO感度を選択
+            ICameraFeatureDispatcher.FEATURE_COLORTONE_DOWN ->                     // ホワイトバランス(仕上がり・ピクチャーモードを選択)
+                changeWhiteBalanceDown()
+            ICameraFeatureDispatcher.FEATURE_COLORTONE_UP ->                       // ホワイトバランス(仕上がり・ピクチャーモードを選択)
+                changeWhiteBalanceUp()
+            ICameraFeatureDispatcher.FEATURE_ISO_DOWN ->                           // ISO感度を選択
                 changeIsoSensitivityDown()
-            ICameraFeatureDispatcher.FEATURE_ISO_UP ->                 // ISO感度を選択
+            ICameraFeatureDispatcher.FEATURE_ISO_UP ->                             // ISO感度を選択
                 changeIsoSensitivityUp()
-            ICameraFeatureDispatcher.FEATURE_QUALITY_MOVIE_DOWN ->                 // 動画撮影クオリティを選択
-                changeMovieQualityModeDown()
-            ICameraFeatureDispatcher.FEATURE_QUALITY_MOVIE_UP ->                 // 動画撮影クオリティを選択
-                changeMovieQualityModeUp()
-            ICameraFeatureDispatcher.FEATURE_SHORT_MOVIE_RECORD_TIME_DOWN ->                 // ショートムービー時の撮影時間を選択
-                changeShortMovieRecordLengthDown()
-            ICameraFeatureDispatcher.FEATURE_SHORT_MOVIE_RECORD_TIME_UP ->                 // ショートムービー時の撮影時間を選択
-                changeShortMovieRecordLengthUp()
-            ICameraFeatureDispatcher.FEATURE_EXPOSE_MOVIE_SELECT_DOWN ->                 // 動画の撮影モードを選択
-                changeMovieTakeModeDown()
-            ICameraFeatureDispatcher.FEATURE_EXPOSE_MOVIE_SELECT_UP ->                 // 動画の撮影モードを選択
-                changeMovieTakeModeUp()
-            ICameraFeatureDispatcher.FEATURE_CHANGE_AF_MF ->                 // AF/MFの切り替えを行う
-                toggleAfMf()
-            ICameraFeatureDispatcher.FEATURE_CHANGE_AE ->                 // AE(測光方式)を選択
-                changeAEMode(1)
-            ICameraFeatureDispatcher.FEATURE_CHANGE_AE_REVERSE ->                 // AE(測光方式)を選択
-                changeAEMode(-1)
-            ICameraFeatureDispatcher.FEATURE_SHOT_INTERVAL_3SEC ->                 // 3秒待ってから1枚撮影する
-                intervalOneShot(3)
-            ICameraFeatureDispatcher.FEATURE_SHOT_INTERVAL_5SEC ->                 // 5秒待ってから1枚撮影する
-                intervalOneShot(5)
-            ICameraFeatureDispatcher.FEATURE_SHOT_INTERVAL_10SEC ->                 // 10秒待ってから1枚撮影する
-                intervalOneShot(10)
-            ICameraFeatureDispatcher.FEATURE_SHOT_BRACKET_EXPOSURE ->                 // 露出ブラケット撮影を行う (5枚)
-                bracketingShot(IBracketingShotStyle.BRACKET_EXPREV, 5)
-            ICameraFeatureDispatcher.FEATURE_SHOT_BRACKET_APERATURE ->                 // 絞りブラケット撮影を行う
-                bracketingShot(IBracketingShotStyle.BRACKET_APERTURE, 5)
-            ICameraFeatureDispatcher.FEATURE_SHOT_BRACKET_SHUTTER ->                       // シャッターブラケット撮影を行う
-                bracketingShot(IBracketingShotStyle.BRACKET_SHUTTER, 5)
-            ICameraFeatureDispatcher.FEATURE_SHOT_BRACKET_COLORTONE ->                      // カラートーンブラケット撮影を行う
-                bracketingShot(IBracketingShotStyle.BRACKET_COLOR_TONE, 11)
-            ICameraFeatureDispatcher.FEATURE_SHOT_BRACKET_WB ->                             // ホワイトバランスブラケット撮影を行う
-                bracketingShot(IBracketingShotStyle.BRACKET_WB, 7)
-            ICameraFeatureDispatcher.FEATURE_SHOT_BRACKET_ART_FILTER ->                     // アートフィルターブラケット撮影を行う
-                bracketingShot(IBracketingShotStyle.BRACKET_ART_FILTER, 5)
-            ICameraFeatureDispatcher.FEATURE_SHOT_BRACKET_ISO ->                            // ブラケット撮影を行う
-                bracketingShot(IBracketingShotStyle.BRACKET_ISO, 3)
-            ICameraFeatureDispatcher.FEATURE_SHOW_FAVORITE_DIALOG ->                        // お気に入りのダイアログ表示を行う
-                showFavoriteDialog()
-            ICameraFeatureDispatcher.FEATURE_LENS_ZOOMIN ->                                 // ズームイン(パワーズームレンズ装着時)
-                if (!driveZoomLens(1)) {
-                    duration = IShowInformation.VIBRATE_PATTERN_NONE
-                }
-            ICameraFeatureDispatcher.FEATURE_LENS_ZOOMOUT ->                                // ズームアウト(パワーズームレンズ装着時)
-                if (!driveZoomLens(-1)) {
-                    duration = IShowInformation.VIBRATE_PATTERN_NONE
-                }
-            ICameraFeatureDispatcher.FEATURE_LENS_ZOOMIN_2X ->                              // ズームイン(パワーズームレンズ装着時)
-                if (!driveZoomLens(2)) {
-                    duration = IShowInformation.VIBRATE_PATTERN_NONE
-                }
-            ICameraFeatureDispatcher.FEATURE_LENS_ZOOMOUT_2X ->                             // ズームアウト(パワーズームレンズ装着時)
-                if (!driveZoomLens(-2)) {
-                    duration = IShowInformation.VIBRATE_PATTERN_NONE
-                }
-            ICameraFeatureDispatcher.FEATURE_DIGITAL_ZOOM_RESET ->                         // デジタルズームのリセット
-                resetDigitalZoom()
-            ICameraFeatureDispatcher.FEATURE_DIGITAL_ZOOM_CHANGE ->                        // デジタルズームの設定 (繰り返し)
-                if (!driveDigitalZoom(0)) {
-                    duration = IShowInformation.VIBRATE_PATTERN_NONE
-                }
-            ICameraFeatureDispatcher.FEATURE_DIGITAL_ZOOMIN ->                             // デジタルズーム ズームイン
-                if (!driveDigitalZoom(1)) {
-                    duration = IShowInformation.VIBRATE_PATTERN_NONE
-                }
-            ICameraFeatureDispatcher.FEATURE_DIGITAL_ZOOMOUT ->                            // デジタルズーム ズームアウト
-                if (!driveDigitalZoom(-1)) {
-                    duration = IShowInformation.VIBRATE_PATTERN_NONE
-                }
-            ICameraFeatureDispatcher.FEATURE_CHANGE_LIVEVIEW_MAGNIFY_X5 ->                 // ライブビュー拡大(5倍)
-                if (!changeLiveViewMagnify(5)) {
-                    duration = IShowInformation.VIBRATE_PATTERN_NONE
-                }
-            ICameraFeatureDispatcher.FEATURE_CHANGE_LIVEVIEW_MAGNIFY_X7 ->                 // ライブビュー拡大(7倍)
-                if (!changeLiveViewMagnify(7)) {
-                    duration = IShowInformation.VIBRATE_PATTERN_NONE
-                }
-            ICameraFeatureDispatcher.FEATURE_CHANGE_LIVEVIEW_MAGNIFY_X10 ->                 // ライブビュー拡大(10倍)
-                if (!changeLiveViewMagnify(10)) {
-                    duration = IShowInformation.VIBRATE_PATTERN_NONE
-                }
-            ICameraFeatureDispatcher.FEATURE_CHANGE_LIVEVIEW_MAGNIFY_X14 ->                 // ライブビュー拡大(14倍)
-                if (!changeLiveViewMagnify(14)) {
-                    duration = IShowInformation.VIBRATE_PATTERN_NONE
-                }
-*/
             else ->                 // 上記以外...なにもしない
                 duration = IShowInformation.VIBRATE_PATTERN_NONE
         }
@@ -204,9 +99,9 @@ class ThetaFeatureDispatcher(private val context: AppCompatActivity, private val
             ICameraFeatureDispatcher.FEATURE_AREA_ACTION_DRIVE_AUTOFOCUS -> ret = camera.driveAutoFocus(event)
             ICameraFeatureDispatcher.FEATURE_AREA_ACTION_NOT_CONNECTED -> {
             }
-            ICameraFeatureDispatcher.FEATURE_AREA_ACTION_CHECK_CONTAINS_AUTOFOCUS_AREA ->                 // AUTOFOCUS エリアに含まれているかどうかチェックする
+            ICameraFeatureDispatcher.FEATURE_AREA_ACTION_CHECK_CONTAINS_AUTOFOCUS_AREA ->    // AUTOFOCUS エリアに含まれているかどうかチェックする
                 ret = camera.isContainsAutoFocusPoint(event)
-            ICameraFeatureDispatcher.FEATURE_AREA_ACTION_NONE ->                 // 何もしない
+            ICameraFeatureDispatcher.FEATURE_AREA_ACTION_NONE ->                             // 何もしない
                 ret = false
             else -> ret = false
         }
@@ -304,14 +199,6 @@ class ThetaFeatureDispatcher(private val context: AppCompatActivity, private val
     }
 
     /**
-     * AF/MFの切り替えを行う
-     */
-    private fun toggleAfMf()
-    {
-        camera.toggleManualFocus()
-    }
-
-    /**
      * グリッド表示の ON/OFFを切り替える
      *
      */
@@ -322,31 +209,12 @@ class ThetaFeatureDispatcher(private val context: AppCompatActivity, private val
     }
 
     /**
-     *  デジタル水準器の ON/OFFを切り替える
-     *
-     */
-    private fun changeShowLevelGauge()
-    {
-        liveImageView.toggleShowLevelGauge()
-    }
-
-    /**
-     * AE-Lock/Lock解除を行う
-     *
-     */
-    private fun changeAeLockMode()
-    {
-        camera.toggleAutoExposure()
-    }
-
-    /**
      * グリッドフレームの表示・非表示ボタンを更新する
      *
      */
     private fun updateGridStatusButton(buttonId: Int)
     {
-        val btnResId: Int
-        btnResId = if (liveImageView.isShowGrid) {
+        val btnResId: Int = if (liveImageView.isShowGrid) {
             // グリッドがON状態、グリッドをOFFにするボタンを出す
             R.drawable.btn_ic_grid_off
         } else {
@@ -400,31 +268,24 @@ class ThetaFeatureDispatcher(private val context: AppCompatActivity, private val
     }
 
     /**
-     *    絞り値を1段階下げる
-     */
-    private fun changeApertureValueDown()
-    {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyDown(IOlyCameraProperty.APERTURE)
-    }
-
-    /**
-     * 絞り値を1段階あげる
-     *
-     */
-    private fun changeApertureValueUp()
-    {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyUp(IOlyCameraProperty.APERTURE)
-    }
-
-    /**
      *    シャッター速度を1段階下げる
      */
     private fun changeShutterSpeedDown()
     {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyDown(IOlyCameraProperty.SHUTTER_SPEED)
+        try
+        {
+            if (thetaShutterSpeedIndex > 0)
+            {
+                thetaShutterSpeedIndex--
+
+                val optionStr = context.resources.getStringArray(R.array.theta_shutter_speed_value)[thetaShutterSpeedIndex]
+                optionSet.setOptions(optionStr, sessionIdProvider.sessionId.isEmpty())
+            }
+        }
+        catch (e : Exception)
+        {
+            e.printStackTrace()
+        }
     }
 
     /**
@@ -433,78 +294,45 @@ class ThetaFeatureDispatcher(private val context: AppCompatActivity, private val
      */
     private fun changeShutterSpeedUp()
     {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyUp(IOlyCameraProperty.SHUTTER_SPEED)
-    }
-
-    /**
-     *    仕上がり・ピクチャーモードを1段階下げる
-     */
-    private fun changeColorToneDown()
-    {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyDown(IOlyCameraProperty.COLOR_TONE)
-    }
-
-    /**
-     * 仕上がり・ピクチャーモードを1段階あげる
-     *
-     */
-    private fun changeColorToneUp()
-    {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyUp(IOlyCameraProperty.COLOR_TONE)
-    }
-
-    /**
-     * アートフィルターを1段階さげる
-     *
-     */
-    private fun changeArtFilterDown()
-    {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyDown(IOlyCameraProperty.ART_FILTER)
-    }
-
-    /**
-     * アートフィルターを1段階あげる
-     *
-     */
-    private fun changeArtFilterUp()
-    {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyUp(IOlyCameraProperty.ART_FILTER)
-    }
-
-
-    /**
-     * 測光方式を1段階さげる
-     *
-     */
-    private fun changeAEModeDown()
-    {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyDown(IOlyCameraProperty.AE_MODE)
-    }
+        try
+        {
+            if (thetaShutterSpeedIndex > MAX_SHUTTER_SPEED)
+            {
+                thetaShutterSpeedIndex++
 
-    /**
-     * 測光方式を1段階あげる
-     *
-     */
-    private fun changeAEModeUp()
-    {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyUp(IOlyCameraProperty.AE_MODE)
+                val optionStr = context.resources.getStringArray(R.array.theta_shutter_speed_value)[thetaShutterSpeedIndex]
+                optionSet.setOptions(optionStr, sessionIdProvider.sessionId.isEmpty())
+            }
+        }
+        catch (e : Exception)
+        {
+            e.printStackTrace()
+        }
     }
 
     /**
-     * 測光方式を更新する
+     * ISO感度
      *
      */
-    private fun changeAEMode(direction: Int)
+    private fun changeIsoSensitivity()
     {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.changeCameraProperty(IOlyCameraProperty.AE_MODE, direction)
+        try
+        {
+            if (thetaIsoSensitivityIndex == MAX_ISO_SENSITIVITY)
+            {
+                thetaIsoSensitivityIndex = 0
+            }
+            else
+            {
+                thetaIsoSensitivityIndex++
+            }
+            val optionStr = context.resources.getStringArray(R.array.theta_iso_sensitivity_value)[thetaIsoSensitivityIndex]
+            optionSet.setOptions(optionStr, sessionIdProvider.sessionId.isEmpty())
+        }
+        catch (e : Exception)
+        {
+            e.printStackTrace()
+        }
     }
 
     /**
@@ -513,8 +341,21 @@ class ThetaFeatureDispatcher(private val context: AppCompatActivity, private val
      */
     private fun changeIsoSensitivityDown()
     {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyDown(IOlyCameraProperty.ISO_SENSITIVITY)
+        try
+        {
+            if (thetaIsoSensitivityIndex > 0)
+            {
+                thetaIsoSensitivityIndex--
+
+                val optionStr = context.resources.getStringArray(R.array.theta_iso_sensitivity_value)[thetaIsoSensitivityIndex]
+                optionSet.setOptions(optionStr, sessionIdProvider.sessionId.isEmpty())
+            }
+
+        }
+        catch (e : Exception)
+        {
+            e.printStackTrace()
+        }
     }
 
     /**
@@ -523,10 +364,21 @@ class ThetaFeatureDispatcher(private val context: AppCompatActivity, private val
      */
     private fun changeIsoSensitivityUp()
     {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyUp(IOlyCameraProperty.ISO_SENSITIVITY)
-    }
+        try
+        {
+            if (thetaIsoSensitivityIndex < MAX_ISO_SENSITIVITY)
+            {
+                thetaIsoSensitivityIndex++
 
+                val optionStr = context.resources.getStringArray(R.array.theta_iso_sensitivity_value)[thetaIsoSensitivityIndex]
+                optionSet.setOptions(optionStr, sessionIdProvider.sessionId.isEmpty())
+            }
+        }
+        catch (e : Exception)
+        {
+            e.printStackTrace()
+        }
+    }
 
     /**
      * ホワイトバランスを1段階さげる
@@ -573,176 +425,6 @@ class ThetaFeatureDispatcher(private val context: AppCompatActivity, private val
     }
 
     /**
-     * 動画撮影モードを1段階さげる
-     *
-     */
-    private fun changeMovieQualityModeDown()
-    {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyDown(IOlyCameraProperty.QUALITY_MOVIE)
-    }
-
-    /**
-     * 動画撮影モードを1段階あげる
-     *
-     */
-    private fun changeMovieQualityModeUp()
-    {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyUp(IOlyCameraProperty.QUALITY_MOVIE)
-    }
-
-
-    /**
-     * 動画撮影モードがショートムービーのときの撮影時間を1段階さげる
-     *
-     */
-    private fun changeShortMovieRecordLengthDown()
-    {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyDown(IOlyCameraProperty.SHORT_MOVIE_RECORD_TIME)
-    }
-
-    /**
-     * 動画撮影モードがショートムービーのときの撮影時間を1段階あげる
-     *
-     */
-    private fun changeShortMovieRecordLengthUp()
-    {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyUp(IOlyCameraProperty.SHORT_MOVIE_RECORD_TIME)
-    }
-
-
-    /**
-     * 動画撮影モードを1段階さげる
-     *
-     */
-    private fun changeMovieTakeModeDown()
-    {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyDown(IOlyCameraProperty.TAKE_MODE_MOVIE)
-    }
-
-    /**
-     * 動画撮影モードを1段階あげる
-     *
-     */
-    private fun changeMovieTakeModeUp()
-    {
-        val propertyProxy = camera.cameraPropertyProvider
-        propertyProxy.updateCameraPropertyUp(IOlyCameraProperty.TAKE_MODE_MOVIE)
-    }
-
-    /**
-     * インターバル撮影(1枚)を行う
-     *
-     * @param waitSeconds  撮影待ち時間(単位:秒)
-     */
-    private fun intervalOneShot(waitSeconds: Int)
-    {
-        camera.bracketingShot(IBracketingShotStyle.BRACKET_NONE, 1, waitSeconds)
-    }
-
-    /**
-     * ブラケット撮影を行う
-     *
-     * @param style  撮影スタイル
-     * @param count  撮影枚数
-     */
-    private fun bracketingShot(style: Int, count: Int)
-    {
-        camera.bracketingShot(style, count, 0)
-    }
-
-
-    /**
-     * 「お気に入り設定」表示画面を開く
-     *
-     */
-    private fun showFavoriteDialog()
-    {
-        // お気に入り設定表示画面を開く
-        statusDrawer.showFavoriteSettingsDialog()
-    }
-
-    /**
-     * ズームイン・ズームアウト操作を行う
-     *
-     * @param direction ズーム操作の方向
-     */
-    private fun driveZoomLens(direction: Int): Boolean
-    {
-        var isExecute = false
-        val zoom = camera.zoomLensHolder
-        if (zoom != null)
-        {
-            zoom.updateStatus()
-            if (zoom.canZoom())
-            {
-                // ズーム操作を行う
-                try
-                {
-                    zoom.driveZoomLens(direction)
-                    isExecute = true
-                }
-                catch (e: Exception)
-                {
-                    e.printStackTrace()
-                }
-            }
-        }
-        return isExecute
-    }
-
-    private fun resetDigitalZoom()
-    {
-        val zoom = camera.zoomLensHolder
-        if (zoom != null)
-        {
-            zoom.updateStatus()
-            zoom.changeDigitalZoomScale(1.0f, false)
-        }
-    }
-
-    private fun driveDigitalZoom(zoomType: Int): Boolean
-    {
-        var isExecute = false
-        val zoom = camera.zoomLensHolder
-        if (zoom != null)
-        {
-            zoom.updateStatus()
-            var magnify = zoomType.toFloat()
-            if (zoomType == 0)
-            {
-                magnify = 1.0f
-            }
-            val currentScale = zoom.currentDigitalZoomScale
-            val targetScale = currentScale + magnify * 0.5f
-            zoom.changeDigitalZoomScale(targetScale, zoomType == 0)
-            isExecute = true
-        }
-        return isExecute
-    }
-
-    /**
-     * ライブビューのサイズを指定した倍率に拡大する(拡大中の場合にはもとに戻す。)
-     *
-     * @param scale  拡大倍率
-     * @return  実行した場合true, 実行しなかった場合はfalse
-     */
-    private fun changeLiveViewMagnify(scale: Int): Boolean
-    {
-        var isExecute = false
-        val zoom = camera.zoomLensHolder
-        if (zoom != null)
-        {
-            isExecute = zoom.magnifyLiveView(scale)
-        }
-        return isExecute
-    }
-
-    /**
      * 設定画面を開く
      *
      */
@@ -763,9 +445,10 @@ class ThetaFeatureDispatcher(private val context: AppCompatActivity, private val
         private val TAG = ThetaFeatureDispatcher::class.java.simpleName
 
         private const val MAX_EXPOSURE_COMPENSATION = 12 // exposureCompensation
-        private const val MAX_EXPOSURE_PROGRAM = 4 // exposureProgram
-        private const val MAX_FILTER_SELECTION = 4 // _filter
-        private const val MAX_WHITE_BALANCE = 11 // whiteBalance
-
+        private const val MAX_EXPOSURE_PROGRAM = 4       // exposureProgram
+        private const val MAX_FILTER_SELECTION = 4       // _filter
+        private const val MAX_WHITE_BALANCE = 11         // whiteBalance
+        private const val MAX_ISO_SENSITIVITY = 21       //  ISO Sensitivity
+        private const val MAX_SHUTTER_SPEED = 60         //  Shutter Speed
     }
 }
index 2df0607..7c2ceea 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<resources>
+<resources xmlns:tools="http://schemas.android.com/tools">
     <string-array name="connection_method">
         <item >OPC (Olympus Air)</item>
         <item >Ricoh THETA Series</item>
         <item>\"whiteBalance\" : \"_underwater\" </item>
     </string-array>
 
-</resources>
\ No newline at end of file
+    <string-array name="theta_iso_sensitivity">
+        <item>64</item>
+        <item>80</item>
+        <item>100</item>
+        <item>125</item>
+        <item>160</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>6000</item>
+        <item>6400</item>
+    </string-array>
+
+    <string-array name="theta_iso_sensitivity_value">
+        <item>\"iso\" : 64</item>
+        <item>\"iso\" : 80</item>
+        <item>\"iso\" : 100</item>
+        <item>\"iso\" : 125</item>
+        <item>\"iso\" : 160</item>
+        <item>\"iso\" : 200</item>
+        <item>\"iso\" : 250</item>
+        <item>\"iso\" : 320</item>
+        <item>\"iso\" : 400</item>
+        <item>\"iso\" : 500</item>
+        <item>\"iso\" : 640</item>
+        <item>\"iso\" : 800</item>
+        <item>\"iso\" : 1000</item>
+        <item>\"iso\" : 1250</item>
+        <item>\"iso\" : 1600</item>
+        <item>\"iso\" : 2000</item>
+        <item>\"iso\" : 2500</item>
+        <item>\"iso\" : 3200</item>
+        <item>\"iso\" : 4000</item>
+        <item>\"iso\" : 5000</item>
+        <item>\"iso\" : 6000</item>
+        <item>\"iso\" : 6400</item>
+    </string-array>
+
+    <string-array name="theta_shutter_speed">
+        <item>1/25000</item>
+        <item>1/20000</item>
+        <item>1/16000</item>
+        <item>1/12500</item>
+        <item>1/10000</item>
+        <item>1/8000</item>
+        <item>1/6400</item>
+        <item>1/5000</item>
+        <item>1/4000</item>
+        <item>1/3200</item>
+        <item>1/2500</item>
+        <item>1/2000</item>
+        <item>1/1600</item>
+        <item>1/1250</item>
+        <item>1/1000</item>
+        <item>1/800</item>
+        <item>1/640</item>
+        <item>1/500</item>
+        <item>1/400</item>
+        <item>1/320</item>
+        <item>1/250</item>
+        <item>1/200</item>
+        <item>1/160</item>
+        <item>1/125</item>
+        <item>1/100</item>
+        <item>1/80</item>
+        <item>1/60</item>
+        <item>1/50</item>
+        <item>1/40</item>
+        <item>1/30</item>
+        <item>1/25</item>
+        <item>1/20</item>
+        <item>1/15</item>
+        <item>1/13</item>
+        <item>1/10</item>
+        <item>1/8</item>
+        <item>1/6</item>
+        <item>1/5</item>
+        <item tools:ignore="TypographyFractions">1/4</item>
+        <item tools:ignore="TypographyFractions">1/3</item>
+        <item tools:ignore="TypographyFractions">1/2.5</item>
+        <item tools:ignore="TypographyFractions">1/2</item>
+        <item>1/1.6</item>
+        <item>1/1.3</item>
+        <item>1s</item>
+        <item>1.3s</item>
+        <item>1.6s</item>
+        <item>2s</item>
+        <item>2.5s</item>
+        <item>3.2s</item>
+        <item>4s</item>
+        <item>5s</item>
+        <item>6s</item>
+        <item>8s</item>
+        <item>10s</item>
+        <item>13s</item>
+        <item>15s</item>
+        <item>20s</item>
+        <item>25s</item>
+        <item>30s</item>
+        <item>60s</item>
+    </string-array>
+
+    <string-array name="theta_shutter_speed_value">
+        <item>\"shutterSpeed\" : 0.00004</item>
+        <item>\"shutterSpeed\" : 0.00005</item>
+        <item>\"shutterSpeed\" : 0.0000625</item>
+        <item>\"shutterSpeed\" : 0.00008</item>
+        <item>\"shutterSpeed\" : 0.0001</item>
+        <item>\"shutterSpeed\" : 0.000125</item>
+        <item>\"shutterSpeed\" : 0.00015625</item>
+        <item>\"shutterSpeed\" : 0.0002</item>
+        <item>\"shutterSpeed\" : 0.00025</item>
+        <item>\"shutterSpeed\" : 0.0003125</item>
+        <item>\"shutterSpeed\" : 0.0004</item>
+        <item>\"shutterSpeed\" : 0.0005</item>
+        <item>\"shutterSpeed\" : 0.000625</item>
+        <item>\"shutterSpeed\" : 0.0008</item>
+        <item>\"shutterSpeed\" : 0.001</item>
+        <item>\"shutterSpeed\" : 0.00125</item>
+        <item>\"shutterSpeed\" : 0.0015625</item>
+        <item>\"shutterSpeed\" : 0.002</item>
+        <item>\"shutterSpeed\" : 0.0025</item>
+        <item>\"shutterSpeed\" : 0.003125</item>
+        <item>\"shutterSpeed\" : 0.004</item>
+        <item>\"shutterSpeed\" : 0.005</item>
+        <item>\"shutterSpeed\" : 0.00625</item>
+        <item>\"shutterSpeed\" : 0.008</item>
+        <item>\"shutterSpeed\" : 0.01</item>
+        <item>\"shutterSpeed\" : 0.0125</item>
+        <item>\"shutterSpeed\" : 0.01666666</item>
+        <item>\"shutterSpeed\" : 0.02</item>
+        <item>\"shutterSpeed\" : 0.025</item>
+        <item>\"shutterSpeed\" : 0.03333333</item>
+        <item>\"shutterSpeed\" : 0.04</item>
+        <item>\"shutterSpeed\" : 0.05</item>
+        <item>\"shutterSpeed\" : 0.06666666</item>
+        <item>\"shutterSpeed\" : 0.07692307</item>
+        <item>\"shutterSpeed\" : 0.1</item>
+        <item>\"shutterSpeed\" : 0.125</item>
+        <item>\"shutterSpeed\" : 0.16666666</item>
+        <item>\"shutterSpeed\" : 0.2</item>
+        <item>\"shutterSpeed\" : 0.25</item>
+        <item>\"shutterSpeed\" : 0.33333333</item>
+        <item>\"shutterSpeed\" : 0.4</item>
+        <item>\"shutterSpeed\" : 0.5</item>
+        <item>\"shutterSpeed\" : 0.625</item>
+        <item>\"shutterSpeed\" : 0.76923076</item>
+        <item>\"shutterSpeed\" : 1</item>
+        <item>\"shutterSpeed\" : 1.3</item>
+        <item>\"shutterSpeed\" : 1.6</item>
+        <item>\"shutterSpeed\" : 2</item>
+        <item>\"shutterSpeed\" : 2.5</item>
+        <item>\"shutterSpeed\" : 3.2</item>
+        <item>\"shutterSpeed\" : 4</item>
+        <item>\"shutterSpeed\" : 5</item>
+        <item>\"shutterSpeed\" : 6</item>
+        <item>\"shutterSpeed\" : 8</item>
+        <item>\"shutterSpeed\" : 10</item>
+        <item>\"shutterSpeed\" : 13</item>
+        <item>\"shutterSpeed\" : 15</item>
+        <item>\"shutterSpeed\" : 20</item>
+        <item>\"shutterSpeed\" : 25</item>
+        <item>\"shutterSpeed\" : 30</item>
+        <item>\"shutterSpeed\" : 60</item>
+    </string-array>
+
+</resources>