From ebe0df8fe305eff59d66b6f3ba9d862f36212e6e Mon Sep 17 00:00:00 2001 From: MRSa Date: Sun, 30 Jan 2022 00:23:22 +0900 Subject: [PATCH] =?utf8?q?=E5=8D=98=E4=B8=80=E3=83=A1=E3=83=BC=E3=82=AB?= =?utf8?q?=E3=81=AE=E8=A4=87=E6=95=B0=E3=83=87=E3=83=90=E3=82=A4=E3=82=B9?= =?utf8?q?=E5=AF=BE=E5=BF=9C=E3=81=AE=E9=96=8B=E5=A7=8B=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../gokigenassets/camera/DummyCameraControl.kt | 4 +- .../camera/console/ConsolePanelControl.kt | 3 +- .../camera/example/ExamplePictureControl.kt | 3 +- .../camera/interfaces/ICameraControl.kt | 2 +- .../camera/vendor/CameraControlManager.kt | 65 +++++++++++++++++++++ .../camera/vendor/ICameraControlManager.kt | 12 ++++ .../vendor/camerax/operation/CameraControl.kt | 7 ++- .../camera/vendor/omds/OmdsCameraControl.kt | 7 ++- .../connection/PanasonicCameraConnectSequence.kt | 1 - .../connection/PanasonicCameraConnection.kt | 4 +- .../panasonic/wrapper/PanasonicCameraControl.kt | 11 +++- .../camera/vendor/pixpro/PixproCameraControl.kt | 7 ++- .../vendor/ricohpentax/RicohPentaxCameraControl.kt | 7 ++- .../camera/vendor/sony/SonyCameraControl.kt | 7 ++- .../camera/vendor/theta/ThetaCameraControl.kt | 7 ++- .../jp/osdn/gokigen/mangle/scene/CameraProvider.kt | 66 +++++++++++----------- .../jp/osdn/gokigen/mangle/scene/SceneChanger.kt | 8 +-- 17 files changed, 170 insertions(+), 51 deletions(-) create mode 100644 app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/CameraControlManager.kt create mode 100644 app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/ICameraControlManager.kt diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/DummyCameraControl.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/DummyCameraControl.kt index 0ed5372..5a8da69 100644 --- a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/DummyCameraControl.kt +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/DummyCameraControl.kt @@ -8,7 +8,7 @@ import jp.osdn.gokigen.gokigenassets.liveview.ICachePositionProvider import jp.osdn.gokigen.gokigenassets.liveview.ILiveView import jp.osdn.gokigen.gokigenassets.liveview.ILiveViewRefresher -class DummyCameraControl() : ICameraControl, View.OnClickListener, View.OnLongClickListener, IKeyDown, ICameraStatus +class DummyCameraControl(private val number : Int = 0) : ICameraControl, View.OnClickListener, View.OnLongClickListener, IKeyDown, ICameraStatus { override fun getConnectionMethod(): String { return ("NONE") } override fun initialize() { } @@ -25,7 +25,7 @@ class DummyCameraControl() : ICameraControl, View.OnClickListener, View.OnLongCl override fun getDisplayInjector(): IDisplayInjector? { return (null) } override fun setNeighborCameraControl(camera0: ICameraControl?, camera1: ICameraControl?, camera2: ICameraControl?, camera3: ICameraControl?) { } override fun getCameraStatus(): ICameraStatus { return (this) } - + override fun getCameraNumber(): Int { return (number) } override fun onClick(v: View?) { } override fun handleKeyDown(keyCode: Int, event: KeyEvent): Boolean { return (false) } override fun onLongClick(v: View?): Boolean { return (false) } diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/console/ConsolePanelControl.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/console/ConsolePanelControl.kt index 542f250..a3001fc 100644 --- a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/console/ConsolePanelControl.kt +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/console/ConsolePanelControl.kt @@ -44,7 +44,7 @@ import jp.osdn.gokigen.gokigenassets.liveview.focusframe.IAutoFocusFrameDisplay import jp.osdn.gokigen.gokigenassets.scene.IInformationReceiver import jp.osdn.gokigen.gokigenassets.scene.IVibrator -class ConsolePanelControl (private val context: AppCompatActivity, private val vibrator : IVibrator, informationNotify: IInformationReceiver, private val preference: ICameraPreferenceProvider) : IDisplayInjector, +class ConsolePanelControl (private val context: AppCompatActivity, private val vibrator : IVibrator, informationNotify: IInformationReceiver, private val preference: ICameraPreferenceProvider, private val number : Int = 0) : IDisplayInjector, ILiveViewController, ICameraControl, View.OnClickListener, View.OnLongClickListener, ICaptureModeReceiver, ICameraShutter, IKeyDown, IAnotherDrawer, View.OnTouchListener, ICameraStatus, IDetectPositionReceiver { private val gestureListener = ConsolePanelGestureListener(this) @@ -110,6 +110,7 @@ class ConsolePanelControl (private val context: AppCompatActivity, private val v override fun doShutter() { } override fun doShutterOff() { } override fun getAnotherTouchListener(id : Int) : View.OnTouchListener { return (this) } + override fun getCameraNumber(): Int { return (number) } override fun setNeighborCameraControl(camera0: ICameraControl?, camera1: ICameraControl?, camera2: ICameraControl?, camera3: ICameraControl?) { diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/example/ExamplePictureControl.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/example/ExamplePictureControl.kt index 1595096..3f615a8 100644 --- a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/example/ExamplePictureControl.kt +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/example/ExamplePictureControl.kt @@ -25,7 +25,7 @@ import jp.osdn.gokigen.gokigenassets.scene.IInformationReceiver import jp.osdn.gokigen.gokigenassets.scene.IVibrator import java.io.InputStream -class ExamplePictureControl(private val context: AppCompatActivity, private val vibrator : IVibrator, informationNotify: IInformationReceiver, private val preference: ICameraPreferenceProvider) : IDisplayInjector, ILiveViewController, ICameraControl, View.OnClickListener, View.OnLongClickListener, ICaptureModeReceiver, ICameraShutter, IKeyDown, ICameraStatus +class ExamplePictureControl(private val context: AppCompatActivity, private val vibrator : IVibrator, informationNotify: IInformationReceiver, private val preference: ICameraPreferenceProvider, private val number : Int = 0) : IDisplayInjector, ILiveViewController, ICameraControl, View.OnClickListener, View.OnLongClickListener, ICaptureModeReceiver, ICameraShutter, IKeyDown, ICameraStatus { private val liveViewListener = CameraLiveViewListenerImpl(context, informationNotify, isDisableCache = true) private lateinit var refresher : ILiveViewRefresher @@ -88,6 +88,7 @@ class ExamplePictureControl(private val context: AppCompatActivity, private val override fun getStatus(key: String): String { return ("") } override fun getStatusColor(key: String): Int { return (Color.WHITE) } override fun setStatus(key: String, value: String) { } + override fun getCameraNumber(): Int { return (number) } override fun setRefresher(id: Int, refresher: ILiveViewRefresher, imageView: ILiveView, cachePosition : ICachePositionProvider) { diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/interfaces/ICameraControl.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/interfaces/ICameraControl.kt index 221002e..cf689fa 100644 --- a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/interfaces/ICameraControl.kt +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/interfaces/ICameraControl.kt @@ -4,7 +4,6 @@ import android.view.View import jp.osdn.gokigen.gokigenassets.liveview.ICachePositionProvider import jp.osdn.gokigen.gokigenassets.liveview.ILiveView import jp.osdn.gokigen.gokigenassets.liveview.ILiveViewRefresher -import jp.osdn.gokigen.gokigenassets.scene.IInformationReceiver interface ICameraControl { @@ -28,4 +27,5 @@ interface ICameraControl fun getAnotherTouchListener(id : Int = 0) : View.OnTouchListener? = null fun setNeighborCameraControl(camera0: ICameraControl?, camera1: ICameraControl?, camera2: ICameraControl?, camera3: ICameraControl?) fun getCameraStatus() : ICameraStatus? + fun getCameraNumber() : Int } diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/CameraControlManager.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/CameraControlManager.kt new file mode 100644 index 0000000..e6df1eb --- /dev/null +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/CameraControlManager.kt @@ -0,0 +1,65 @@ +package jp.osdn.gokigen.gokigenassets.camera.vendor + +import android.util.Log +import jp.osdn.gokigen.gokigenassets.camera.vendor.panasonic.IPanasonicCamera + +class CameraControlManager : ICameraControlManager +{ + private val panasonicCameraDeviceMap = mutableMapOf() + + override fun isAlreadyAssignedCameraControl(number: Int): Boolean + { + try + { + return (panasonicCameraDeviceMap.containsKey(number)) + } + catch (e: Exception) + { + e.printStackTrace() + } + return (false) + } + + override fun releaseCameraControl(number: Int) + { + try + { + panasonicCameraDeviceMap.remove(number) + } + catch (e: Exception) + { + e.printStackTrace() + } + } + + override fun assignPanasonicCamera(number: Int, cameraDevice: IPanasonicCamera) + { + try + { + Log.v(TAG, "assignPanasonicCamera($number, cameraDevice)") + panasonicCameraDeviceMap[number] = cameraDevice + } + catch (e: Exception) + { + e.printStackTrace() + } + } + + override fun isAssignedPanasonicCamera(cameraDevice: IPanasonicCamera): Boolean + { + try + { + return (panasonicCameraDeviceMap.containsValue(cameraDevice)) + } + catch (e: Exception) + { + e.printStackTrace() + } + return (false) + } + + companion object + { + private val TAG = CameraControlManager::class.java.simpleName + } +} diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/ICameraControlManager.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/ICameraControlManager.kt new file mode 100644 index 0000000..c08b7cc --- /dev/null +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/ICameraControlManager.kt @@ -0,0 +1,12 @@ +package jp.osdn.gokigen.gokigenassets.camera.vendor + +import jp.osdn.gokigen.gokigenassets.camera.vendor.panasonic.IPanasonicCamera + +interface ICameraControlManager +{ + fun isAlreadyAssignedCameraControl(number: Int) : Boolean + fun releaseCameraControl(number: Int) + + fun assignPanasonicCamera(number: Int, cameraDevice: IPanasonicCamera) + fun isAssignedPanasonicCamera(cameraDevice: IPanasonicCamera) : Boolean +} diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/camerax/operation/CameraControl.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/camerax/operation/CameraControl.kt index a82758d..f8ad19b 100644 --- a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/camerax/operation/CameraControl.kt +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/camerax/operation/CameraControl.kt @@ -30,7 +30,7 @@ import jp.osdn.gokigen.gokigenassets.scene.IVibrator import java.util.concurrent.ExecutorService import java.util.concurrent.Executors -class CameraControl(private val activity : AppCompatActivity, private val preference: ICameraPreferenceProvider, private val vibrator : IVibrator, private val informationReceiver : IInformationReceiver) : ICameraControl +class CameraControl(private val activity : AppCompatActivity, private val preference: ICameraPreferenceProvider, private val vibrator : IVibrator, private val informationReceiver : IInformationReceiver, private val number : Int = 0) : ICameraControl { private lateinit var cameraExecutor: ExecutorService private lateinit var liveViewListener : CameraLiveViewListenerImpl @@ -332,6 +332,11 @@ class CameraControl(private val activity : AppCompatActivity, private val prefer return (cameraXCameraControl) } + override fun getCameraNumber(): Int + { + return (number) + } + private fun getClickKeyDownListener(id : Int) : CameraClickKeyDownListener { try diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/omds/OmdsCameraControl.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/omds/OmdsCameraControl.kt index e3dc7b7..2a7e0f4 100644 --- a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/omds/OmdsCameraControl.kt +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/omds/OmdsCameraControl.kt @@ -25,7 +25,7 @@ import jp.osdn.gokigen.gokigenassets.preference.PreferenceAccessWrapper import jp.osdn.gokigen.gokigenassets.scene.IInformationReceiver import jp.osdn.gokigen.gokigenassets.scene.IVibrator -class OmdsCameraControl(private val context: AppCompatActivity, private val vibrator: IVibrator, informationNotify : IInformationReceiver, private val preference: ICameraPreferenceProvider, provider: ICameraStatusReceiver) : ICameraControl, View.OnClickListener, View.OnLongClickListener, ICameraShutter, IKeyDown, IDisplayInjector, IOmdsProtocolNotify +class OmdsCameraControl(private val context: AppCompatActivity, private val vibrator: IVibrator, informationNotify : IInformationReceiver, private val preference: ICameraPreferenceProvider, provider: ICameraStatusReceiver, private val number : Int = 0) : ICameraControl, View.OnClickListener, View.OnLongClickListener, ICameraShutter, IKeyDown, IDisplayInjector, IOmdsProtocolNotify { private val liveViewListener = CameraLiveViewListenerImpl(context, informationNotify) private val statusChecker = OmdsCameraStatusWatcher() @@ -254,6 +254,11 @@ class OmdsCameraControl(private val context: AppCompatActivity, private val vibr return (false) } + override fun getCameraNumber(): Int + { + return (number) + } + override fun detectedOpcProtocol(opcProtocol: Boolean) { zoomLensControl.detectedOpcProtocol(opcProtocol) diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/panasonic/connection/PanasonicCameraConnectSequence.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/panasonic/connection/PanasonicCameraConnectSequence.kt index 7afc732..9ff2d0c 100644 --- a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/panasonic/connection/PanasonicCameraConnectSequence.kt +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/panasonic/connection/PanasonicCameraConnectSequence.kt @@ -14,7 +14,6 @@ import jp.osdn.gokigen.gokigenassets.constants.ICameraConstantConvert.Companion. class PanasonicCameraConnectSequence(private val context: AppCompatActivity, private val cameraStatusReceiver: ICameraStatusReceiver, private val cameraConnection: ICameraConnection, private val cameraHolder: IPanasonicCameraHolder, private val listener: ICameraChangeListener) : Runnable, PanasonicSsdpClient.ISearchResultCallback { - companion object { private val TAG = PanasonicCameraConnectSequence::class.java.simpleName diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/panasonic/connection/PanasonicCameraConnection.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/panasonic/connection/PanasonicCameraConnection.kt index 73722ab..f7dffd4 100644 --- a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/panasonic/connection/PanasonicCameraConnection.kt +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/panasonic/connection/PanasonicCameraConnection.kt @@ -12,12 +12,14 @@ import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraConnectionStatus.C import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraStatusReceiver import jp.osdn.gokigen.gokigenassets.camera.interfaces.ILiveViewController import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraChangeListener +import jp.osdn.gokigen.gokigenassets.camera.vendor.CameraControlManager +import jp.osdn.gokigen.gokigenassets.camera.vendor.ICameraControlManager import jp.osdn.gokigen.gokigenassets.camera.vendor.panasonic.IPanasonicCameraHolder import jp.osdn.gokigen.gokigenassets.constants.ICameraConstantConvert import java.util.concurrent.Executor import java.util.concurrent.Executors -class PanasonicCameraConnection(private val context: AppCompatActivity, private val statusReceiver: ICameraStatusReceiver, private val liveViewControl: ILiveViewController, private val cameraHolder: IPanasonicCameraHolder, private val listener: ICameraChangeListener) : ICameraConnection +class PanasonicCameraConnection(private val context: AppCompatActivity, private val statusReceiver: ICameraStatusReceiver, private val liveViewControl: ILiveViewController, private val cameraHolder: IPanasonicCameraHolder, private val listener: ICameraChangeListener, private val cameraManager: ICameraControlManager, private val number : Int) : ICameraConnection { companion object { diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/panasonic/wrapper/PanasonicCameraControl.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/panasonic/wrapper/PanasonicCameraControl.kt index 7230c69..5f09feb 100644 --- a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/panasonic/wrapper/PanasonicCameraControl.kt +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/panasonic/wrapper/PanasonicCameraControl.kt @@ -10,6 +10,8 @@ import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraChangeListener import jp.osdn.gokigen.gokigenassets.camera.vendor.panasonic.IPanasonicCamera import jp.osdn.gokigen.gokigenassets.camera.vendor.panasonic.IPanasonicCameraHolder import jp.osdn.gokigen.gokigenassets.camera.vendor.panasonic.connection.PanasonicCameraConnection +import jp.osdn.gokigen.gokigenassets.camera.vendor.CameraControlManager +import jp.osdn.gokigen.gokigenassets.camera.vendor.ICameraControlManager import jp.osdn.gokigen.gokigenassets.camera.vendor.panasonic.liveview.PanasonicLiveViewControl import jp.osdn.gokigen.gokigenassets.camera.vendor.panasonic.operation.PanasonicCameraCaptureControl import jp.osdn.gokigen.gokigenassets.camera.vendor.panasonic.operation.PanasonicCameraFocusControl @@ -28,11 +30,11 @@ import jp.osdn.gokigen.gokigenassets.scene.IInformationReceiver 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, informationNotify: IInformationReceiver, private val preference: ICameraPreferenceProvider, provider: ICameraStatusReceiver) : IPanasonicCameraHolder, IDisplayInjector,ILiveViewController, ICameraControl, View.OnClickListener, View.OnLongClickListener, ICameraShutter, IKeyDown +class PanasonicCameraControl(private val context: AppCompatActivity, private val vibrator : IVibrator, informationNotify: IInformationReceiver, private val preference: ICameraPreferenceProvider, provider: ICameraStatusReceiver, cameraManager: ICameraControlManager, private val number: Int) : IPanasonicCameraHolder, IDisplayInjector,ILiveViewController, ICameraControl, View.OnClickListener, View.OnLongClickListener, ICameraShutter, IKeyDown { private val cardSlotSelector = PanasonicCardSlotSelector() private val liveViewListener = CameraLiveViewListenerImpl(context, informationNotify) - private val cameraConnection: PanasonicCameraConnection = PanasonicCameraConnection(context, provider, this, this, cardSlotSelector) + private val cameraConnection: PanasonicCameraConnection = PanasonicCameraConnection(context, provider, this, this, cardSlotSelector, cameraManager, number) private val storeImage = StoreImage(context, liveViewListener) private lateinit var cachePositionProvider : ICachePositionProvider @@ -436,4 +438,9 @@ class PanasonicCameraControl(private val context: AppCompatActivity, private val } return (statusChecker.getCameraStatusConvert()) } + + override fun getCameraNumber(): Int + { + return (number) + } } diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/PixproCameraControl.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/PixproCameraControl.kt index 7fc5d2c..e3642d4 100644 --- a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/PixproCameraControl.kt +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/pixpro/PixproCameraControl.kt @@ -32,7 +32,7 @@ import jp.osdn.gokigen.gokigenassets.preference.PreferenceAccessWrapper import jp.osdn.gokigen.gokigenassets.scene.IInformationReceiver import jp.osdn.gokigen.gokigenassets.scene.IVibrator -class PixproCameraControl(private val context: AppCompatActivity, private val vibrator: IVibrator, private val informationNotify : IInformationReceiver, private val preference: ICameraPreferenceProvider, provider: ICameraStatusReceiver) : ICameraControl, View.OnClickListener, View.OnLongClickListener, ICameraShutter, IKeyDown, IPixproInternalInterfaces, IPixproCommunicationNotify, IDisplayInjector +class PixproCameraControl(private val context: AppCompatActivity, private val vibrator: IVibrator, private val informationNotify : IInformationReceiver, private val preference: ICameraPreferenceProvider, provider: ICameraStatusReceiver, private val number : Int = 0) : ICameraControl, View.OnClickListener, View.OnLongClickListener, ICameraShutter, IKeyDown, IPixproInternalInterfaces, IPixproCommunicationNotify, IDisplayInjector { private val statusChecker = PixproStatusChecker() private val liveViewListener = CameraLiveViewListenerImpl(context, informationNotify) @@ -295,6 +295,11 @@ class PixproCameraControl(private val context: AppCompatActivity, private val vi } } + override fun getCameraNumber(): Int + { + return (number) + } + private fun captureImageLiveView() : Boolean { try diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/ricohpentax/RicohPentaxCameraControl.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/ricohpentax/RicohPentaxCameraControl.kt index d258017..7ad49d9 100644 --- a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/ricohpentax/RicohPentaxCameraControl.kt +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/ricohpentax/RicohPentaxCameraControl.kt @@ -26,7 +26,7 @@ import jp.osdn.gokigen.gokigenassets.preference.PreferenceAccessWrapper import jp.osdn.gokigen.gokigenassets.scene.IInformationReceiver import jp.osdn.gokigen.gokigenassets.scene.IVibrator -class RicohPentaxCameraControl(private val context: AppCompatActivity, private val vibrator : IVibrator, informationNotify: IInformationReceiver, private val preference: ICameraPreferenceProvider, statusReceiver : ICameraStatusReceiver) : ILiveViewController, ICameraControl, View.OnClickListener, View.OnLongClickListener, ICaptureModeReceiver, ICameraShutter, IDisplayInjector, IUseGR2CommandNotify, IKeyDown +class RicohPentaxCameraControl(private val context: AppCompatActivity, private val vibrator : IVibrator, informationNotify: IInformationReceiver, private val preference: ICameraPreferenceProvider, statusReceiver : ICameraStatusReceiver, private val number : Int = 0) : ILiveViewController, ICameraControl, View.OnClickListener, View.OnLongClickListener, ICaptureModeReceiver, ICameraShutter, IDisplayInjector, IUseGR2CommandNotify, IKeyDown { //private final Activity activity; @@ -337,6 +337,11 @@ class RicohPentaxCameraControl(private val context: AppCompatActivity, private v return (statusChecker) } + override fun getCameraNumber(): Int + { + return (number) + } + /** * * diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/sony/SonyCameraControl.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/sony/SonyCameraControl.kt index fc074d8..0d58d9b 100644 --- a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/sony/SonyCameraControl.kt +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/sony/SonyCameraControl.kt @@ -33,7 +33,7 @@ import org.json.JSONObject import kotlin.collections.ArrayList -class SonyCameraControl(private val context: AppCompatActivity, private val vibrator : IVibrator, private val informationNotify : IInformationReceiver, private val preference: ICameraPreferenceProvider, provider: ICameraStatusReceiver) : ISonyCameraHolder, +class SonyCameraControl(private val context: AppCompatActivity, private val vibrator : IVibrator, private val informationNotify : IInformationReceiver, private val preference: ICameraPreferenceProvider, provider: ICameraStatusReceiver, private val number : Int = 0) : ISonyCameraHolder, IDisplayInjector, ICameraControl, View.OnClickListener, View.OnLongClickListener, ICameraShutter, IKeyDown { private val sonyCameraStatus = SonyStatus(JSONObject()) @@ -456,4 +456,9 @@ class SonyCameraControl(private val context: AppCompatActivity, private val vibr { return (sonyCameraStatus) } + + override fun getCameraNumber(): Int + { + return (number) + } } diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/theta/ThetaCameraControl.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/theta/ThetaCameraControl.kt index 728d1e2..9a9cc4c 100644 --- a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/theta/ThetaCameraControl.kt +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/theta/ThetaCameraControl.kt @@ -29,7 +29,7 @@ import jp.osdn.gokigen.gokigenassets.preference.PreferenceAccessWrapper import jp.osdn.gokigen.gokigenassets.scene.IInformationReceiver import jp.osdn.gokigen.gokigenassets.scene.IVibrator -class ThetaCameraControl(private val context: AppCompatActivity, private val vibrator : IVibrator, informationNotify: IInformationReceiver, private val preference: ICameraPreferenceProvider, statusReceiver : ICameraStatusReceiver) : ILiveViewController, +class ThetaCameraControl(private val context: AppCompatActivity, private val vibrator : IVibrator, informationNotify: IInformationReceiver, private val preference: ICameraPreferenceProvider, statusReceiver : ICameraStatusReceiver, private val number : Int = 0) : ILiveViewController, ICameraControl, View.OnClickListener, View.OnLongClickListener, ICaptureModeReceiver, ICameraShutter, IKeyDown { private val sessionIdHolder = ThetaSessionHolder() @@ -352,4 +352,9 @@ class ThetaCameraControl(private val context: AppCompatActivity, private val vib { return (statusWatcher) } + + override fun getCameraNumber(): Int + { + return (number) + } } diff --git a/app/src/main/java/jp/osdn/gokigen/mangle/scene/CameraProvider.kt b/app/src/main/java/jp/osdn/gokigen/mangle/scene/CameraProvider.kt index c4160ba..37a3e91 100644 --- a/app/src/main/java/jp/osdn/gokigen/mangle/scene/CameraProvider.kt +++ b/app/src/main/java/jp/osdn/gokigen/mangle/scene/CameraProvider.kt @@ -10,6 +10,7 @@ import jp.osdn.gokigen.gokigenassets.camera.console.ConsolePanelControl import jp.osdn.gokigen.gokigenassets.camera.example.ExamplePictureControl import jp.osdn.gokigen.gokigenassets.camera.interfaces.* import jp.osdn.gokigen.gokigenassets.camera.vendor.omds.OmdsCameraControl +import jp.osdn.gokigen.gokigenassets.camera.vendor.CameraControlManager import jp.osdn.gokigen.gokigenassets.camera.vendor.panasonic.wrapper.PanasonicCameraControl import jp.osdn.gokigen.gokigenassets.camera.vendor.pixpro.PixproCameraControl import jp.osdn.gokigen.gokigenassets.camera.vendor.ricohpentax.RicohPentaxCameraControl @@ -89,6 +90,7 @@ import jp.osdn.gokigen.mangle.preference.IPreferencePropertyAccessor.Companion.U class CameraProvider(private val activity: AppCompatActivity, private val informationNotify: IInformationReceiver, private val vibrator : IVibrator, private val statusReceiver : ICameraStatusReceiver) { + private val cameraManager = CameraControlManager() private var cameraXisCreated = false private var isOnlySingleCamera = false private lateinit var cameraXControl0: ICameraControl @@ -96,7 +98,7 @@ class CameraProvider(private val activity: AppCompatActivity, private val inform private lateinit var cameraXControl2: ICameraControl private lateinit var cameraXControl3: ICameraControl - fun decideCameraControl(preferenceKey : String) : ICameraControl + fun decideCameraControl(preferenceKey : String, number : Int) : ICameraControl { try { @@ -111,17 +113,17 @@ class CameraProvider(private val activity: AppCompatActivity, private val inform else -> setupCameraPreference0(wrapper) } return (when (cameraPreference.getCameraMethod()) { - PREFERENCE_CAMERA_METHOD_NONE -> DummyCameraControl() - PREFERENCE_CAMERA_METHOD_CONSOLE -> prepareConsolePanelControl(cameraPreference) - PREFERENCE_CAMERA_METHOD_EXAMPLE -> prepareExamplePictureControl(cameraPreference) - PREFERENCE_CAMERA_METHOD_CAMERAX -> prepareCameraXControl(cameraPreference) - PREFERENCE_CAMERA_METHOD_THETA -> prepareThetaCameraControl(cameraPreference) - PREFERENCE_CAMERA_METHOD_PENTAX -> preparePentaxCameraControl(cameraPreference) - PREFERENCE_CAMERA_METHOD_PANASONIC -> preparePanasonicCameraControl(cameraPreference) - PREFERENCE_CAMERA_METHOD_SONY -> prepareSonyCameraControl(cameraPreference) - PREFERENCE_CAMERA_METHOD_PIXPRO -> preparePixproCameraControl(cameraPreference) - PREFERENCE_CAMERA_METHOD_OMDS -> prepareOmdsCameraControl(cameraPreference) - else -> DummyCameraControl() + PREFERENCE_CAMERA_METHOD_NONE -> DummyCameraControl(number) + PREFERENCE_CAMERA_METHOD_CONSOLE -> prepareConsolePanelControl(cameraPreference, number) + PREFERENCE_CAMERA_METHOD_EXAMPLE -> prepareExamplePictureControl(cameraPreference, number) + PREFERENCE_CAMERA_METHOD_CAMERAX -> prepareCameraXControl(cameraPreference, number) + PREFERENCE_CAMERA_METHOD_THETA -> prepareThetaCameraControl(cameraPreference, number) + PREFERENCE_CAMERA_METHOD_PENTAX -> preparePentaxCameraControl(cameraPreference, number) + PREFERENCE_CAMERA_METHOD_PANASONIC -> preparePanasonicCameraControl(cameraPreference, number) + PREFERENCE_CAMERA_METHOD_SONY -> prepareSonyCameraControl(cameraPreference, number) + PREFERENCE_CAMERA_METHOD_PIXPRO -> preparePixproCameraControl(cameraPreference, number) + PREFERENCE_CAMERA_METHOD_OMDS -> prepareOmdsCameraControl(cameraPreference, number) + else -> DummyCameraControl(number) }) } catch (e : Exception) @@ -131,11 +133,11 @@ class CameraProvider(private val activity: AppCompatActivity, private val inform return (DummyCameraControl()) } - fun getCameraXControl() : ICameraControl + fun getCameraXControl(number : Int = 0) : ICameraControl { try { - return (prepareCameraXControl(setupCameraPreference0(PreferenceAccessWrapper(activity)))) + return (prepareCameraXControl(setupCameraPreference0(PreferenceAccessWrapper(activity)), number)) } catch (e : Exception) { @@ -216,47 +218,47 @@ class CameraProvider(private val activity: AppCompatActivity, private val inform return (CameraPreference(4, wrapper, method, false, 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 + private fun prepareThetaCameraControl(cameraPreference : ICameraPreferenceProvider, number : Int) : ICameraControl { - return (ThetaCameraControl(activity, vibrator, informationNotify, cameraPreference, statusReceiver)) + return (ThetaCameraControl(activity, vibrator, informationNotify, cameraPreference, statusReceiver, number)) } - private fun preparePentaxCameraControl(cameraPreference : ICameraPreferenceProvider) : ICameraControl + private fun preparePentaxCameraControl(cameraPreference : ICameraPreferenceProvider, number : Int) : ICameraControl { - return (RicohPentaxCameraControl(activity, vibrator, informationNotify, cameraPreference, statusReceiver)) + return (RicohPentaxCameraControl(activity, vibrator, informationNotify, cameraPreference, statusReceiver, number)) } - private fun preparePanasonicCameraControl(cameraPreference : ICameraPreferenceProvider) : ICameraControl + private fun preparePanasonicCameraControl(cameraPreference : ICameraPreferenceProvider, number : Int) : ICameraControl { - return (PanasonicCameraControl(activity, vibrator, informationNotify, cameraPreference, statusReceiver)) + return (PanasonicCameraControl(activity, vibrator, informationNotify, cameraPreference, statusReceiver, cameraManager, number)) } - private fun prepareSonyCameraControl(cameraPreference : ICameraPreferenceProvider) : ICameraControl + private fun prepareSonyCameraControl(cameraPreference : ICameraPreferenceProvider, number : Int) : ICameraControl { - return (SonyCameraControl(activity, vibrator, informationNotify, cameraPreference, statusReceiver)) + return (SonyCameraControl(activity, vibrator, informationNotify, cameraPreference, statusReceiver, number)) } - private fun preparePixproCameraControl(cameraPreference : ICameraPreferenceProvider) : ICameraControl + private fun preparePixproCameraControl(cameraPreference : ICameraPreferenceProvider, number : Int) : ICameraControl { - return (PixproCameraControl(activity, vibrator, informationNotify, cameraPreference, statusReceiver)) + return (PixproCameraControl(activity, vibrator, informationNotify, cameraPreference, statusReceiver, number)) } - private fun prepareOmdsCameraControl(cameraPreference : ICameraPreferenceProvider) : ICameraControl + private fun prepareOmdsCameraControl(cameraPreference : ICameraPreferenceProvider, number : Int) : ICameraControl { - return (OmdsCameraControl(activity, vibrator, informationNotify, cameraPreference, statusReceiver)) + return (OmdsCameraControl(activity, vibrator, informationNotify, cameraPreference, statusReceiver, number)) } - private fun prepareConsolePanelControl(cameraPreference : ICameraPreferenceProvider) : ICameraControl + private fun prepareConsolePanelControl(cameraPreference : ICameraPreferenceProvider, number : Int) : ICameraControl { - return (ConsolePanelControl(activity, vibrator, informationNotify, cameraPreference)) + return (ConsolePanelControl(activity, vibrator, informationNotify, cameraPreference, number)) } - private fun prepareExamplePictureControl(cameraPreference : ICameraPreferenceProvider) : ICameraControl + private fun prepareExamplePictureControl(cameraPreference : ICameraPreferenceProvider, number : Int) : ICameraControl { - return (ExamplePictureControl(activity, vibrator, informationNotify, cameraPreference)) + return (ExamplePictureControl(activity, vibrator, informationNotify, cameraPreference, number)) } - private fun prepareCameraXControl(cameraPreference : ICameraPreferenceProvider): ICameraControl + private fun prepareCameraXControl(cameraPreference : ICameraPreferenceProvider, number : Int): ICameraControl { if ((cameraXisCreated)&&(::cameraXControl0.isInitialized)) { @@ -287,7 +289,7 @@ class CameraProvider(private val activity: AppCompatActivity, private val inform } return (cameraXControl0) } - cameraXControl0 = CameraControl(activity, cameraPreference, vibrator, informationNotify) + cameraXControl0 = CameraControl(activity, cameraPreference, vibrator, informationNotify, number) cameraXisCreated = true return (cameraXControl0) } diff --git a/app/src/main/java/jp/osdn/gokigen/mangle/scene/SceneChanger.kt b/app/src/main/java/jp/osdn/gokigen/mangle/scene/SceneChanger.kt index 4051c01..d5823ad 100644 --- a/app/src/main/java/jp/osdn/gokigen/mangle/scene/SceneChanger.kt +++ b/app/src/main/java/jp/osdn/gokigen/mangle/scene/SceneChanger.kt @@ -50,10 +50,10 @@ class SceneChanger(private val activity: AppCompatActivity, private val informat { Log.v(TAG, " SceneChanger is created. ") - cameraControl1 = cameraProvider.decideCameraControl(PREFERENCE_CAMERA_METHOD_1) - cameraControl2 = cameraProvider.decideCameraControl(PREFERENCE_CAMERA_METHOD_2) - cameraControl3 = cameraProvider.decideCameraControl(PREFERENCE_CAMERA_METHOD_3) - cameraControl4 = cameraProvider.decideCameraControl(PREFERENCE_CAMERA_METHOD_4) + cameraControl1 = cameraProvider.decideCameraControl(PREFERENCE_CAMERA_METHOD_1, 1) + cameraControl2 = cameraProvider.decideCameraControl(PREFERENCE_CAMERA_METHOD_2, 2) + cameraControl3 = cameraProvider.decideCameraControl(PREFERENCE_CAMERA_METHOD_3, 3) + cameraControl4 = cameraProvider.decideCameraControl(PREFERENCE_CAMERA_METHOD_4, 4) cameraControl1.initialize() cameraControl2.initialize() -- 2.11.0