1 package jp.sfjp.gokigen.a01c.thetacamerawrapper
3 import android.util.Log
4 import android.view.MotionEvent
5 import androidx.appcompat.app.AppCompatActivity
6 import jp.sfjp.gokigen.a01c.ICameraConnection
7 import jp.sfjp.gokigen.a01c.ICameraController
8 import jp.sfjp.gokigen.a01c.IShowInformation
9 import jp.sfjp.gokigen.a01c.liveview.CameraLiveViewListenerImpl
10 import jp.sfjp.gokigen.a01c.liveview.IAutoFocusFrameDisplay
11 import jp.sfjp.gokigen.a01c.liveview.ICameraStatusReceiver
12 import jp.sfjp.gokigen.a01c.olycamerawrapper.ICameraRunMode
13 import jp.sfjp.gokigen.a01c.olycamerawrapper.IIndicatorControl
14 import jp.sfjp.gokigen.a01c.olycamerawrapper.ILevelGauge
15 import jp.sfjp.gokigen.a01c.olycamerawrapper.IZoomLensHolder
16 import jp.sfjp.gokigen.a01c.olycamerawrapper.property.ICameraPropertyLoadSaveOperations
17 import jp.sfjp.gokigen.a01c.olycamerawrapper.property.ILoadSaveCameraProperties
18 import jp.sfjp.gokigen.a01c.olycamerawrapper.property.IOlyCameraPropertyProvider
19 import jp.sfjp.gokigen.a01c.preference.PreferenceAccessWrapper
20 import jp.sfjp.gokigen.a01c.thetacamerawrapper.connection.ThetaCameraConnection
21 import jp.sfjp.gokigen.a01c.thetacamerawrapper.liveview.ThetaLiveViewControl
22 import jp.sfjp.gokigen.a01c.thetacamerawrapper.operation.ThetaDummyOperation
23 import jp.sfjp.gokigen.a01c.thetacamerawrapper.operation.ThetaSingleShotControl
25 class ThetaCameraController(val context: AppCompatActivity, private val focusFrameDisplay: IAutoFocusFrameDisplay, private val showInformation: IShowInformation, private val receiver: ICameraStatusReceiver, private val preferences: PreferenceAccessWrapper) : ICameraController, IIndicatorControl
27 //private lateinit var listener : CameraLiveViewListenerImpl
28 private lateinit var liveViewControl : ThetaLiveViewControl
29 private val dummyOperation = ThetaDummyOperation()
30 private val sessionIdHolder = ThetaSessionHolder()
31 private val cameraConnection = ThetaCameraConnection(context, receiver, sessionIdHolder)
32 private val singleShot = ThetaSingleShotControl(sessionIdHolder, this, this)
34 override fun setLiveViewListener(listener: CameraLiveViewListenerImpl)
36 this.liveViewControl = ThetaLiveViewControl(sessionIdHolder, listener)
39 override fun changeLiveViewSize(size: String?)
42 Log.v(toString(), " changeLiveViewSize: $size")
45 override fun startLiveView()
47 if (::liveViewControl.isInitialized)
49 liveViewControl.startLiveView()
53 override fun stopLiveView()
55 if (::liveViewControl.isInitialized)
57 liveViewControl.stopLiveView()
61 override fun updateTakeMode()
66 override fun driveAutoFocus(event: MotionEvent?): Boolean
71 override fun unlockAutoFocus()
76 override fun isContainsAutoFocusPoint(event: MotionEvent?): Boolean
81 override fun singleShot()
83 singleShot.singleShot(sessionIdHolder.isApiLevelV21())
86 override fun movieControl()
88 // TODO("Not yet implemented")
91 override fun bracketingShot(bracketingStyle: Int, bracketingCount: Int, durationSeconds: Int)
93 // TODO("Not yet implemented")
96 override fun setRecViewMode(isRecViewMode: Boolean)
101 override fun toggleAutoExposure()
106 override fun toggleManualFocus()
111 override fun isManualFocus(): Boolean
116 override fun isAFLock(): Boolean
121 override fun isAELock(): Boolean
126 override fun updateStatusAll()
131 override fun getCameraPropertyProvider(): IOlyCameraPropertyProvider
133 return (dummyOperation)
136 override fun getCameraPropertyLoadSaveOperations(): ICameraPropertyLoadSaveOperations
138 return (dummyOperation)
141 override fun getLoadSaveCameraProperties(): ILoadSaveCameraProperties
143 return (dummyOperation)
146 override fun getChangeRunModeExecutor(): ICameraRunMode
148 return (dummyOperation)
151 override fun getConnectionInterface(): ICameraConnection
153 return (cameraConnection)
156 override fun getZoomLensHolder(): IZoomLensHolder
158 return (dummyOperation)
161 override fun getLevelGauge(): ILevelGauge
163 return (dummyOperation)
166 override fun onAfLockUpdate(isAfLocked: Boolean)
168 //TODO("Not yet implemented")
171 override fun onShootingStatusUpdate(status: IIndicatorControl.shootingStatus?)
173 //TODO("Not yet implemented")