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
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
/**
* 指定した機能を実行する
return false
}
- // AREA1: Movie/Video切替
- // AREA2: Exposure Program
- // AREA3: Filter
- // AREA4: Settings (未実装)
-
// 機能実行の割り当て...
var duration = IShowInformation.VIBRATE_PATTERN_SIMPLE_SHORT
when (featureNumber) {
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()
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
}
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
}
}
/**
- * AF/MFの切り替えを行う
- */
- private fun toggleAfMf()
- {
- camera.toggleManualFocus()
- }
-
- /**
* グリッド表示の ON/OFFを切り替える
*
*/
}
/**
- * デジタル水準器の 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 {
}
/**
- * 絞り値を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()
+ }
}
/**
*/
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()
+ }
}
/**
*/
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()
+ }
}
/**
*/
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段階さげる
}
/**
- * 動画撮影モードを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
- }
-
- /**
* 設定画面を開く
*
*/
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
}
}
<?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>