package jp.osdn.gokigen.gokigenassets.camera
-class CameraPreference(private val method : String, private val sequence : String = "0", private val option1 : String = "", private val option2 : String = "", private val option3 : String = "", private val option4 : String = "", private val option5 : String = "") : ICameraPreferenceProvider
+import jp.osdn.gokigen.gokigenassets.preference.PreferenceAccessWrapper
+
+class CameraPreference(private val wrapper : PreferenceAccessWrapper, method0 : String, sequence0 : String = "0", option1_ : String = "", option2_ : String = "", option3_ : String = "", option4_ : String = "", option5_ : String = "", private val keySet : CameraPreferenceKeySet? = null) : ICameraPreferenceProvider, ICameraPreferenceUpdater
{
+ private var method = method0
+ private var sequence = sequence0
+ private var option1 = option1_
+ private var option2 = option2_
+ private var option3 = option3_
+ private var option4 = option4_
+ private var option5 = option5_
+
override fun getCameraMethod(): String
{
return (method)
{
return (option5)
}
+
+ override fun setCameraOption1(value: String)
+ {
+ option1 = value
+ if (keySet != null)
+ {
+ wrapper.putString(keySet.getOption1Key(), option1)
+ }
+ }
+
+ override fun setCameraOption2(value: String)
+ {
+ option2 = value
+ if (keySet != null)
+ {
+ wrapper.putString(keySet.getOption2Key(), option2)
+ }
+ }
+
+ override fun setCameraOption3(value: String)
+ {
+ option3 = value
+ if (keySet != null)
+ {
+ wrapper.putString(keySet.getOption3Key(), option3)
+ }
+ }
+
+ override fun setCameraOption4(value: String)
+ {
+ option4 = value
+ if (keySet != null)
+ {
+ wrapper.putString(keySet.getOption4Key(), option4)
+ }
+ }
+
+ override fun setCameraOption5(value: String)
+ {
+ option5 = value
+ if (keySet != null)
+ {
+ wrapper.putString(keySet.getOption5Key(), option5)
+ }
+ }
}
--- /dev/null
+package jp.osdn.gokigen.gokigenassets.camera
+
+class CameraPreferenceKeySet(private val key1 : String, private val key2 : String, private val key3 : String, private val key4 : String, private val key5 : String)
+{
+ fun getOption1Key() : String { return (key1) }
+ fun getOption2Key() : String { return (key2) }
+ fun getOption3Key() : String { return (key3) }
+ fun getOption4Key() : String { return (key4) }
+ fun getOption5Key() : String { return (key5) }
+}
import jp.osdn.gokigen.gokigenassets.liveview.ILiveView
import jp.osdn.gokigen.gokigenassets.liveview.ILiveViewRefresher
-class DummyCameraControl() : ICameraControl, View.OnClickListener, IKeyDown
+class DummyCameraControl() : ICameraControl, View.OnClickListener, View.OnLongClickListener, IKeyDown
{
override fun getConnectionMethod(): String { return ("NONE") }
override fun initialize() { }
override fun needRotateImage(): Boolean { return (false) }
override fun setRefresher(refresher: ILiveViewRefresher, imageView: ILiveView) { }
override fun captureButtonReceiver(id: Int): View.OnClickListener { return (this) }
+ override fun onLongClickReceiver(id: Int): View.OnLongClickListener { return (this) }
override fun keyDownReceiver(id: Int): IKeyDown { return (this) }
override fun getFocusingControl(id: Int): IFocusingControl? { return (null) }
override fun getDisplayInjector(): IDisplayInjector? { return (null) }
override fun onClick(v: View?) { }
override fun handleKeyDown(keyCode: Int, event: KeyEvent): Boolean { return (false) }
+ override fun onLongClick(v: View?): Boolean { return (false) }
}
--- /dev/null
+package jp.osdn.gokigen.gokigenassets.camera
+
+interface ICameraPreferenceUpdater
+{
+ fun setCameraOption1(value : String)
+ fun setCameraOption2(value : String)
+ fun setCameraOption3(value : String)
+ fun setCameraOption4(value : String)
+ fun setCameraOption5(value : String)
+}
.also {
it.setSurfaceProvider(activity.findViewById<androidx.camera.view.PreviewView>(ID_CAMERA_X_PREVIEW_LAYOUT).surfaceProvider)
}
- //val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
val imageCapture = fileControl.prepare()
try
val cameraProviderFuture = ProcessCameraProvider.getInstance(activity)
cameraProviderFuture.addListener( {
val cameraProvider: ProcessCameraProvider = cameraProviderFuture.get()
-/*
- val preview = Preview.Builder()
- .build()
- .also {
- it.setSurfaceProvider(activity.findViewById<androidx.camera.view.PreviewView>(R.id.viewFinder).createSurfaceProvider())
- }
-*/
- //val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
val imageCapture = fileControl.prepare()
val option1 = preference.getCameraOption1() // プレビューサイズを設定する
val previewSize = if (option1.isNotBlank()) {
when (option1) {
+ "_8K" -> Size(4320, 7680)
+ "_6K" -> Size(3384, 6016)
"_4K" -> Size(4096, 2160)
"_WQHD" -> Size(2560, 1440)
"_2K" -> Size(2048, 1080)
"_XGA" -> Size(1024, 768) // XGA : 1600x1200 @ Pixel3a
"_SVGA" -> Size(800, 600) // SVGA : 1280x960 @ Pixel3a
"_VGA" -> Size(640, 480) // SVGA : 1280x960 @ Pixel3a
+ "8K" -> Size(7680, 4320)
+ "6K" -> Size(6016, 3384)
"4K" -> Size(2160, 4096)
"WQHD" -> Size(1440, 2560)
"2K" -> Size(1080, 2048)
return (fileControl)
}
+ override fun onLongClickReceiver(id: Int): View.OnLongClickListener
+ {
+ try
+ {
+ fileControl.setId(id)
+ }
+ catch (e : Exception)
+ {
+ e.printStackTrace()
+ }
+ return (fileControl)
+ }
+
override fun keyDownReceiver(id: Int): IKeyDown
{
try
--- /dev/null
+package jp.osdn.gokigen.gokigenassets.camera.example
+
+import android.view.KeyEvent
+import android.view.View
+import androidx.appcompat.app.AppCompatActivity
+import jp.osdn.gokigen.gokigenassets.camera.ICameraPreferenceProvider
+import jp.osdn.gokigen.gokigenassets.camera.interfaces.*
+import jp.osdn.gokigen.gokigenassets.camera.theta.status.ICaptureModeReceiver
+import jp.osdn.gokigen.gokigenassets.liveview.IIndicatorControl
+import jp.osdn.gokigen.gokigenassets.liveview.ILiveView
+import jp.osdn.gokigen.gokigenassets.liveview.ILiveViewRefresher
+import jp.osdn.gokigen.gokigenassets.liveview.focusframe.IAutoFocusFrameDisplay
+import jp.osdn.gokigen.gokigenassets.liveview.image.CameraLiveViewListenerImpl
+import jp.osdn.gokigen.gokigenassets.scene.IVibrator
+
+class ExamplePictureControl(private val context: AppCompatActivity, private val vibrator : IVibrator, private val preference: ICameraPreferenceProvider) : IDisplayInjector, ILiveViewController, ICameraControl, View.OnClickListener, View.OnLongClickListener, ICaptureModeReceiver, ICameraShutter, IKeyDown
+{
+ private val liveViewListener = CameraLiveViewListenerImpl(context, isDisableCache = true)
+
+ override fun injectDisplay(frameDisplayer: IAutoFocusFrameDisplay, indicator: IIndicatorControl, focusingModeNotify: IFocusingModeNotify) { }
+ override fun initialize() { updateExamplePicture() }
+ override fun startLiveView() { }
+ override fun stopLiveView() { }
+ override fun getConnectionMethod(): String { return ("EXAMPLE") }
+ override fun connectToCamera() { }
+ override fun startCamera(isPreviewView: Boolean, cameraSequence: Int) { }
+ override fun finishCamera() { }
+ override fun changeCaptureMode(mode: String) { }
+ override fun needRotateImage(): Boolean { return (false) }
+ override fun captureButtonReceiver(id: Int): View.OnClickListener { return (this) }
+ override fun onLongClickReceiver(id: Int): View.OnLongClickListener { return (this) }
+
+ override fun keyDownReceiver(id: Int): IKeyDown { return (this) }
+ override fun getFocusingControl(id: Int): IFocusingControl? { return (null) }
+ override fun getDisplayInjector(): IDisplayInjector? { return (null) }
+ override fun onClick(v: View?) { }
+ override fun changedCaptureMode(captureMode: String) { }
+ override fun doShutter() { }
+ override fun doShutterOff() { }
+ override fun handleKeyDown(keyCode: Int, event: KeyEvent): Boolean { return (false) }
+
+ override fun setRefresher(refresher: ILiveViewRefresher, imageView: ILiveView)
+ {
+ try
+ {
+ liveViewListener.setRefresher(refresher)
+ imageView.setImageProvider(liveViewListener)
+ }
+ catch (e : Exception)
+ {
+ e.printStackTrace()
+ }
+ }
+
+ private fun updateExamplePicture()
+ {
+ try
+ {
+ //liveViewListener.onUpdateLiveView(receivedData.copyOfRange(offset, dataLength), null)
+ }
+ catch (e : Exception)
+ {
+ e.printStackTrace()
+ }
+
+
+ }
+
+ override fun onLongClick(v: View?): Boolean
+ {
+ vibrator.vibrate(IVibrator.VibratePattern.SIMPLE_SHORT)
+ return (true)
+ }
+
+
+}
fun setRefresher(refresher : ILiveViewRefresher, imageView : ILiveView)
fun captureButtonReceiver(id : Int = 0) : View.OnClickListener
+ fun onLongClickReceiver(id : Int = 0) : View.OnLongClickListener
fun keyDownReceiver(id : Int = 0) : IKeyDown
fun getFocusingControl(id : Int = 0) : IFocusingControl?
import jp.osdn.gokigen.gokigenassets.camera.panasonic.operation.PanasonicCameraFocusControl
import jp.osdn.gokigen.gokigenassets.camera.panasonic.operation.PanasonicCameraZoomLensControl
import jp.osdn.gokigen.gokigenassets.camera.panasonic.status.CameraEventObserver
-import jp.osdn.gokigen.gokigenassets.camera.theta.status.ICaptureModeReceiver
import jp.osdn.gokigen.gokigenassets.constants.IApplicationConstantConvert
import jp.osdn.gokigen.gokigenassets.liveview.IIndicatorControl
import jp.osdn.gokigen.gokigenassets.liveview.ILiveView
import jp.osdn.gokigen.gokigenassets.scene.IVibrator
import jp.osdn.gokigen.gokigenassets.utils.communication.SimpleHttpClient
-class PanasonicCameraControl(private val context: AppCompatActivity, private val vibrator : IVibrator, private val preference: ICameraPreferenceProvider, private val provider: ICameraStatusReceiver) : IPanasonicCameraHolder, IDisplayInjector,ILiveViewController, ICameraControl, View.OnClickListener, ICaptureModeReceiver, ICameraShutter, IKeyDown
+class PanasonicCameraControl(private val context: AppCompatActivity, private val vibrator : IVibrator, private val preference: ICameraPreferenceProvider, private val provider: ICameraStatusReceiver) : IPanasonicCameraHolder, IDisplayInjector,ILiveViewController, ICameraControl, View.OnClickListener, View.OnLongClickListener, ICameraShutter, IKeyDown
{
private val cardSlotSelector = PanasonicCardSlotSelector()
private val liveViewListener = CameraLiveViewListenerImpl(context)
// TODO("Not yet implemented")
}
- override fun changedCaptureMode(captureMode: String)
- {
- //TODO("Not yet implemented")
- }
-
override fun needRotateImage(): Boolean
{
return (false)
return (this)
}
+ override fun onLongClickReceiver(id: Int): View.OnLongClickListener
+ {
+ cameraPositionId = id
+ return (this)
+ }
+
override fun keyDownReceiver(id: Int): IKeyDown
{
cameraPositionId = id
return (false)
}
+ override fun onLongClick(v: View?): Boolean
+ {
+ return (false)
+ }
}
import jp.osdn.gokigen.gokigenassets.preference.PreferenceAccessWrapper
import jp.osdn.gokigen.gokigenassets.scene.IVibrator
-class RicohPentaxCameraControl(private val context: AppCompatActivity, private val vibrator : IVibrator, private val preference: ICameraPreferenceProvider, statusReceiver : ICameraStatusReceiver) : ILiveViewController, ICameraControl, View.OnClickListener, ICaptureModeReceiver, ICameraShutter, IDisplayInjector, IUseGR2CommandNotify, IKeyDown
+class RicohPentaxCameraControl(private val context: AppCompatActivity, private val vibrator : IVibrator, private val preference: ICameraPreferenceProvider, statusReceiver : ICameraStatusReceiver) : ILiveViewController, ICameraControl, View.OnClickListener, View.OnLongClickListener, ICaptureModeReceiver, ICameraShutter, IDisplayInjector, IUseGR2CommandNotify, IKeyDown
{
//private final Activity activity;
return (this)
}
+ override fun onLongClickReceiver(id: Int): View.OnLongClickListener
+ {
+ cameraPositionId = id
+ return (this)
+ }
+
override fun keyDownReceiver(id: Int): IKeyDown
{
cameraPositionId = id
return (false)
}
+ override fun onLongClick(v: View?): Boolean
+ {
+ return (false)
+ }
+
/**
*
*
private val TAG = RicohPentaxCameraControl::class.java.simpleName
private const val communicationTimeoutMs = 5000
}
+
}
\ No newline at end of file
import jp.osdn.gokigen.gokigenassets.scene.IVibrator
class ThetaCameraControl(private val context: AppCompatActivity, private val vibrator : IVibrator, private val preference: ICameraPreferenceProvider, statusReceiver : ICameraStatusReceiver) : ILiveViewController,
- ICameraControl, View.OnClickListener, ICaptureModeReceiver, ICameraShutter, IKeyDown
+ ICameraControl, View.OnClickListener, View.OnLongClickListener, ICaptureModeReceiver, ICameraShutter, IKeyDown
{
private val sessionIdHolder = ThetaSessionHolder()
private val cameraConnection = ThetaCameraConnection(context, statusReceiver, sessionIdHolder, sessionIdHolder, this)
return (this)
}
+ override fun onLongClickReceiver(id: Int): View.OnLongClickListener
+ {
+ cameraPositionId = id
+ return (this)
+ }
+
override fun keyDownReceiver(id: Int): IKeyDown
{
cameraPositionId = id
return (false)
}
+ override fun onLongClick(v: View?): Boolean
+ {
+ return (false)
+ }
+
}
{
// --- CONNECTION METHOD
const val PREFERENCE_CAMERA_METHOD_NONE = "none"
+ const val PREFERENCE_CAMERA_METHOD_EXAMPLE = "EXAMPLE"
const val PREFERENCE_CAMERA_METHOD_CAMERAX = "camerax"
const val PREFERENCE_CAMERA_METHOD_THETA = "THETA"
const val PREFERENCE_CAMERA_METHOD_PENTAX = "RICOH"
import jp.osdn.gokigen.gokigenassets.constants.IApplicationConstantConvert.Companion.ID_VIEW_LOWER_AREA
import jp.osdn.gokigen.gokigenassets.constants.IApplicationConstantConvert.Companion.ID_VIEW_UPPER_AREA
-class LiveImageViewFragment(private val contentLayoutId: Int = ID_LIVE_VIEW_LAYOUT_DEFAULT) : Fragment(contentLayoutId), View.OnClickListener
+class LiveImageViewFragment(private val contentLayoutId: Int = ID_LIVE_VIEW_LAYOUT_DEFAULT) : Fragment(contentLayoutId), View.OnClickListener, View.OnLongClickListener
{
private lateinit var liveviewView : View
{
cameraControl0.setRefresher(imageView0, imageView0)
imageView0.injectDisplay(cameraControl0)
+ imageView0.setOnLongClickListener(this)
imageView0.setOnTouchListener(LiveViewOnTouchListener(cameraControl0, 0))
if (isCacheImage)
{
{
cameraControl1.setRefresher(imageView1, imageView1)
imageView1.injectDisplay(cameraControl1)
+ imageView1.setOnLongClickListener(this)
imageView1.setOnTouchListener(LiveViewOnTouchListener(cameraControl1, 1))
if (isCacheImage)
{
{
cameraControl2.setRefresher(imageView2, imageView2)
imageView2.injectDisplay(cameraControl2)
+ imageView2.setOnLongClickListener(this)
imageView2.setOnTouchListener(LiveViewOnTouchListener(cameraControl2, 2))
if (isCacheImage)
{
{
cameraControl3.setRefresher(imageView3, imageView3)
imageView3.injectDisplay(cameraControl3)
+ imageView3.setOnLongClickListener(this)
imageView3.setOnTouchListener(LiveViewOnTouchListener(cameraControl3, 3))
if (isCacheImage)
{
}
return (rotation)
}
+
+ override fun onLongClick(v: View?): Boolean
+ {
+ var ret = false
+ try
+ {
+ val id = v?.id
+ if ((::cameraControl0.isInitialized)&&(isCameraControl0)&&(id == ID_VIEW_FINDER_0))
+ {
+ cameraControl0.onLongClickReceiver(0).onLongClick(v)
+ ret = true
+ }
+ if ((::cameraControl1.isInitialized)&&(isCameraControl1)&&(id == ID_VIEW_FINDER_1))
+ {
+ cameraControl1.onLongClickReceiver(1).onLongClick(v)
+ ret = true
+ }
+ if ((::cameraControl2.isInitialized)&&(isCameraControl2)&&(id == ID_VIEW_FINDER_2))
+ {
+ cameraControl2.onLongClickReceiver(2).onLongClick(v)
+ ret = true
+ }
+ if ((::cameraControl3.isInitialized)&&(isCameraControl3)&&(id == ID_VIEW_FINDER_3))
+ {
+ cameraControl3.onLongClickReceiver(3).onLongClick(v)
+ ret = true
+ }
+ }
+ catch (e : Exception)
+ {
+ e.printStackTrace()
+ }
+ return (ret)
+ }
}
data class MyImageByteArray(val imageData : ByteArray, val rotationDegrees: Int)
-class CameraLiveViewListenerImpl(private val context: Context) : IImageDataReceiver, IImageProvider, ImageAnalysis.Analyzer
+class CameraLiveViewListenerImpl(private val context: Context, private val isDisableCache : Boolean = false) : IImageDataReceiver, IImageProvider, ImageAnalysis.Analyzer
{
private var cachePics = ArrayList<MyImageByteArray>()
private var isImageReceived = false
private fun setupLiveviewCache()
{
val preference = PreferenceAccessWrapper(context)
- if (!preference.getBoolean(ID_PREFERENCE_CACHE_LIVE_VIEW_PICTURES, false))
+ if ((!preference.getBoolean(ID_PREFERENCE_CACHE_LIVE_VIEW_PICTURES, false))||(isDisableCache))
{
return
}
import androidx.camera.core.ImageCapture
import androidx.fragment.app.FragmentActivity
import jp.osdn.gokigen.gokigenassets.camera.interfaces.IKeyDown
-import jp.osdn.gokigen.gokigenassets.constants.IApplicationConstantConvert
import jp.osdn.gokigen.gokigenassets.constants.IApplicationConstantConvert.Companion.ID_BUTTON_SHUTTER
import jp.osdn.gokigen.gokigenassets.constants.IApplicationConstantConvert.Companion.ID_PREFERENCE_CAPTURE_BOTH_CAMERA_AND_LIVE_VIEW
import jp.osdn.gokigen.gokigenassets.constants.IApplicationConstantConvert.Companion.ID_PREFERENCE_CAPTURE_BOTH_CAMERA_AND_LIVE_VIEW_DEFAULT_VALUE
import jp.osdn.gokigen.gokigenassets.scene.IVibrator
-class FileControl(private val context: FragmentActivity, private val storeImage : IStoreImage, private val vibrator : IVibrator) : View.OnClickListener, IKeyDown
+class FileControl(private val context: FragmentActivity, private val storeImage : IStoreImage, private val vibrator : IVibrator) : View.OnClickListener, View.OnLongClickListener, IKeyDown
{
private val storeLocal = ImageStoreLocal(context)
private val storeExternal = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { ImageStoreExternal(context) } else { ImageStoreExternalLegacy(context) }
private var imageCapture: ImageCapture? = null
- private var addId : Int = 0
+ private var cameraId : Int = 0
fun prepare() : ImageCapture?
{
fun setId(id : Int)
{
- addId = id
+ cameraId = id
}
private fun takePhoto()
if (captureBothCamera)
{
// ライブビュー画像を保管する場合...
- val thread = Thread { storeImage.doStore(addId) }
+ val thread = Thread { storeImage.doStore(cameraId, false) }
try
{
thread.start()
if (!isLocalLocation)
{
// 共用フォルダに保存
- isStoreLocal = !storeExternal.takePhoto(addId, imageCapture)
+ isStoreLocal = !storeExternal.takePhoto(cameraId, imageCapture)
}
if (isStoreLocal)
{
// アプリ専用フォルダに登録
- storeLocal.takePhoto(addId, imageCapture)
+ storeLocal.takePhoto(cameraId, imageCapture)
}
}
catch (e: Exception)
{
private val TAG = FileControl::class.java.simpleName
}
+
+ override fun onLongClick(v: View?): Boolean
+ {
+ return (false)
+ }
}
import androidx.appcompat.app.AppCompatActivity
import jp.osdn.gokigen.gokigenassets.camera.CameraPreference
+import jp.osdn.gokigen.gokigenassets.camera.CameraPreferenceKeySet
import jp.osdn.gokigen.gokigenassets.camera.DummyCameraControl
import jp.osdn.gokigen.gokigenassets.camera.ICameraPreferenceProvider
import jp.osdn.gokigen.gokigenassets.camera.camerax.operation.CameraControl
+import jp.osdn.gokigen.gokigenassets.camera.example.ExamplePictureControl
import jp.osdn.gokigen.gokigenassets.camera.interfaces.*
import jp.osdn.gokigen.gokigenassets.camera.panasonic.wrapper.PanasonicCameraControl
import jp.osdn.gokigen.gokigenassets.camera.ricohpentax.RicohPentaxCameraControl
import jp.osdn.gokigen.gokigenassets.camera.theta.ThetaCameraControl
import jp.osdn.gokigen.gokigenassets.constants.ICameraConnectionMethods.Companion.PREFERENCE_CAMERA_METHOD_CAMERAX
+import jp.osdn.gokigen.gokigenassets.constants.ICameraConnectionMethods.Companion.PREFERENCE_CAMERA_METHOD_EXAMPLE
import jp.osdn.gokigen.gokigenassets.constants.ICameraConnectionMethods.Companion.PREFERENCE_CAMERA_METHOD_NONE
import jp.osdn.gokigen.gokigenassets.constants.ICameraConnectionMethods.Companion.PREFERENCE_CAMERA_METHOD_PANASONIC
import jp.osdn.gokigen.gokigenassets.constants.ICameraConnectionMethods.Companion.PREFERENCE_CAMERA_METHOD_PENTAX
class CameraProvider(private val activity: AppCompatActivity, private val informationNotify: IInformationReceiver, private val vibrator : IVibrator, private val statusReceiver : ICameraStatusReceiver)
{
private var cameraXisCreated = false
+ private val isMultiCamera = false
private lateinit var cameraXControl0: ICameraControl
private lateinit var cameraXControl1: ICameraControl
PREFERENCE_CAMERA_METHOD_2 -> setupCameraPreference2(wrapper)
PREFERENCE_CAMERA_METHOD_3 -> setupCameraPreference3(wrapper)
PREFERENCE_CAMERA_METHOD_4 -> setupCameraPreference4(wrapper)
- else -> setupCameraPreference0()
+ else -> setupCameraPreference0(wrapper)
}
return (when (cameraPreference.getCameraMethod()) {
PREFERENCE_CAMERA_METHOD_NONE -> DummyCameraControl()
+ PREFERENCE_CAMERA_METHOD_EXAMPLE -> prepareExamplePictureControl(cameraPreference)
PREFERENCE_CAMERA_METHOD_CAMERAX -> prepareCameraXControl(cameraPreference)
PREFERENCE_CAMERA_METHOD_THETA -> prepareThetaCameraControl(cameraPreference)
PREFERENCE_CAMERA_METHOD_PENTAX -> preparePentaxCameraControl(cameraPreference)
{
try
{
- return (prepareCameraXControl(setupCameraPreference0()))
+ return (prepareCameraXControl(setupCameraPreference0(PreferenceAccessWrapper(activity))))
}
catch (e : Exception)
{
return (cameraSequence)
}
- private fun setupCameraPreference0() : ICameraPreferenceProvider
+ private fun setupCameraPreference0(wrapper : PreferenceAccessWrapper) : ICameraPreferenceProvider
{
- return (CameraPreference(PREFERENCE_CAMERA_METHOD_NONE))
+ return (CameraPreference(wrapper, PREFERENCE_CAMERA_METHOD_NONE))
}
private fun setupCameraPreference1(wrapper : PreferenceAccessWrapper) : ICameraPreferenceProvider
val option4 = wrapper.getString(PREFERENCE_CAMERA_OPTION4_1, PREFERENCE_CAMERA_OPTION4_1_DEFAULT_VALUE)
val option5 = wrapper.getString(PREFERENCE_CAMERA_OPTION5_1, PREFERENCE_CAMERA_OPTION5_1_DEFAULT_VALUE)
- return (CameraPreference(method, sequence, option1, option2, option3, option4, option5))
+ return (CameraPreference(wrapper, method, sequence, option1, option2, option3, option4, option5, CameraPreferenceKeySet(PREFERENCE_CAMERA_OPTION1_1, PREFERENCE_CAMERA_OPTION2_1, PREFERENCE_CAMERA_OPTION3_1, PREFERENCE_CAMERA_OPTION4_1, PREFERENCE_CAMERA_OPTION5_1)))
}
private fun setupCameraPreference2(wrapper : PreferenceAccessWrapper) : ICameraPreferenceProvider
val option4 = wrapper.getString(PREFERENCE_CAMERA_OPTION4_2, PREFERENCE_CAMERA_OPTION4_2_DEFAULT_VALUE)
val option5 = wrapper.getString(PREFERENCE_CAMERA_OPTION5_2, PREFERENCE_CAMERA_OPTION5_2_DEFAULT_VALUE)
- return (CameraPreference(method, sequence, option1, option2, option3, option4, option5))
+ return (CameraPreference(wrapper, method, sequence, option1, option2, option3, option4, option5, CameraPreferenceKeySet(PREFERENCE_CAMERA_OPTION1_2, PREFERENCE_CAMERA_OPTION2_2, PREFERENCE_CAMERA_OPTION3_2, PREFERENCE_CAMERA_OPTION4_2, PREFERENCE_CAMERA_OPTION5_2)))
}
private fun setupCameraPreference3(wrapper : PreferenceAccessWrapper) : ICameraPreferenceProvider
val option4 = wrapper.getString(PREFERENCE_CAMERA_OPTION4_3, PREFERENCE_CAMERA_OPTION4_3_DEFAULT_VALUE)
val option5 = wrapper.getString(PREFERENCE_CAMERA_OPTION5_3, PREFERENCE_CAMERA_OPTION5_3_DEFAULT_VALUE)
- return (CameraPreference(method, sequence, option1, option2, option3, option4, option5))
+ return (CameraPreference(wrapper, method, sequence, option1, option2, option3, option4, option5, CameraPreferenceKeySet(PREFERENCE_CAMERA_OPTION1_3, PREFERENCE_CAMERA_OPTION2_3, PREFERENCE_CAMERA_OPTION3_3, PREFERENCE_CAMERA_OPTION4_3, PREFERENCE_CAMERA_OPTION5_3)))
}
private fun setupCameraPreference4(wrapper : PreferenceAccessWrapper) : ICameraPreferenceProvider
val option4 = wrapper.getString(PREFERENCE_CAMERA_OPTION4_4, PREFERENCE_CAMERA_OPTION4_4_DEFAULT_VALUE)
val option5 = wrapper.getString(PREFERENCE_CAMERA_OPTION5_4, PREFERENCE_CAMERA_OPTION5_4_DEFAULT_VALUE)
- return (CameraPreference(method, sequence, option1, option2, option3, option4, option5))
+ return (CameraPreference(wrapper, method, sequence, option1, option2, option3, option4, option5, CameraPreferenceKeySet(PREFERENCE_CAMERA_OPTION1_4, PREFERENCE_CAMERA_OPTION2_4, PREFERENCE_CAMERA_OPTION3_4, PREFERENCE_CAMERA_OPTION4_4, PREFERENCE_CAMERA_OPTION5_4)))
}
private fun prepareThetaCameraControl(cameraPreference : ICameraPreferenceProvider) : ICameraControl
return (PanasonicCameraControl(activity, vibrator, cameraPreference, statusReceiver))
}
+ private fun prepareExamplePictureControl(cameraPreference : ICameraPreferenceProvider) : ICameraControl
+ {
+ return (ExamplePictureControl(activity, vibrator, cameraPreference))
+ }
+
private fun prepareCameraXControl(cameraPreference : ICameraPreferenceProvider): ICameraControl
{
if ((cameraXisCreated)&&(::cameraXControl0.isInitialized))
{
- cameraXControl1 = CameraControl(activity, cameraPreference, vibrator)
- cameraXisCreated = true
- return (cameraXControl1)
+ if (isMultiCamera)
+ {
+ cameraXControl1 = CameraControl(activity, cameraPreference, vibrator)
+ cameraXisCreated = true
+ return (cameraXControl1)
+ }
+ return (cameraXControl0)
}
cameraXControl0 = CameraControl(activity, cameraPreference, vibrator)
cameraXisCreated = true
<string-array name="connection_method">
<item>None</item>
+ <item>Show Example</item>
<item>Internal Camera</item>
<item>Ricoh GR / PENTAX</item>
<item>Ricoh Theta(OSC)</item>
<string-array name="connection_method_value">
<item>NONE</item>
+ <item>EXAMPLE</item>
<item>camerax</item>
<item>RICOH</item>
<item>THETA</item>