import jp.osdn.gokigen.gokigenassets.preference.PreferenceAccessWrapper
-class CameraPreference(private val wrapper : PreferenceAccessWrapper, method0 : String, private val isReadonly : Boolean = false, sequence0 : String = "0", option1_ : String = "", option2_ : String = "", option3_ : String = "", option4_ : String = "", option5_ : String = "", private val keySet : CameraPreferenceKeySet? = null) : ICameraPreferenceProvider, ICameraPreferenceUpdater
+class CameraPreference(private val id : Int, private val wrapper : PreferenceAccessWrapper, method0 : String, private val isReadonly : Boolean = false, 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 option4 = option4_
private var option5 = option5_
+ override fun getId(): Int
+ {
+ return (id)
+ }
+
override fun getCameraMethod(): String
{
return (method)
return (option5)
}
- override fun getUpdator(): ICameraPreferenceUpdater?
+ override fun getUpdater(): ICameraPreferenceUpdater?
{
if (isReadonly)
{
import android.view.KeyEvent
import android.view.View
-import androidx.camera.core.CameraSelector
-import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraControl
-import jp.osdn.gokigen.gokigenassets.camera.interfaces.IDisplayInjector
-import jp.osdn.gokigen.gokigenassets.camera.interfaces.IFocusingControl
-import jp.osdn.gokigen.gokigenassets.camera.interfaces.IKeyDown
+import jp.osdn.gokigen.gokigenassets.camera.interfaces.*
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
+class DummyCameraControl() : ICameraControl, View.OnClickListener, View.OnLongClickListener, IKeyDown, ICameraStatus
{
override fun getConnectionMethod(): String { return ("NONE") }
override fun initialize() { }
override fun keyDownReceiver(id: Int): IKeyDown { return (this) }
override fun getFocusingControl(id: Int): IFocusingControl? { return (null) }
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 onClick(v: View?) { }
override fun handleKeyDown(keyCode: Int, event: KeyEvent): Boolean { return (false) }
override fun onLongClick(v: View?): Boolean { return (false) }
+ override fun getStatusList(key: String): List<String?> { return (ArrayList<String>()) }
+ override fun getStatus(key: String): String { return ("") }
+ override fun setStatus(key: String, value: String) { }
}
interface ICameraPreferenceProvider
{
+ fun getId() : Int
fun getCameraMethod() : String
fun getConnectionSequence() : String
fun getCameraOption4() : String
fun getCameraOption5() : String
- fun getUpdator() : ICameraPreferenceUpdater?
+ fun getUpdater() : ICameraPreferenceUpdater?
}
import androidx.camera.lifecycle.ProcessCameraProvider
import androidx.core.content.ContextCompat
import jp.osdn.gokigen.gokigenassets.camera.ICameraPreferenceProvider
+import jp.osdn.gokigen.gokigenassets.camera.interfaces.*
import jp.osdn.gokigen.gokigenassets.constants.IApplicationConstantConvert.Companion.ID_CAMERA_X_PREVIEW_LAYOUT
import jp.osdn.gokigen.gokigenassets.liveview.ILiveView
import jp.osdn.gokigen.gokigenassets.liveview.ILiveViewRefresher
import jp.osdn.gokigen.gokigenassets.liveview.image.CameraLiveViewListenerImpl
import jp.osdn.gokigen.gokigenassets.liveview.storeimage.StoreImage
import jp.osdn.gokigen.gokigenassets.utils.imagefile.FileControl
-import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraControl
-import jp.osdn.gokigen.gokigenassets.camera.interfaces.IDisplayInjector
-import jp.osdn.gokigen.gokigenassets.camera.interfaces.IFocusingControl
-import jp.osdn.gokigen.gokigenassets.camera.interfaces.IKeyDown
import jp.osdn.gokigen.gokigenassets.liveview.ICachePositionProvider
import jp.osdn.gokigen.gokigenassets.scene.IInformationReceiver
import jp.osdn.gokigen.gokigenassets.scene.IVibrator
private lateinit var cameraXCamera : Camera
private var cameraIsStarted = false
private val cameraXCameraControl = CameraXCameraControl()
+ private val cameraXCameraStatusHolder = CameraXCameraStatusHolder()
private val clickKeyDownListeners = mutableMapOf<Int, CameraClickKeyDownListener>()
private val cachePositionProviders = mutableMapOf<Int, ICachePositionProvider>()
clickKeyDownListeners[id] = listener
return (listener)
}
+ override fun setNeighborCameraControl(camera0: ICameraControl?, camera1: ICameraControl?, camera2: ICameraControl?, camera3: ICameraControl?) { }
+ override fun getCameraStatus(): ICameraStatus { return (cameraXCameraStatusHolder) }
companion object
{
--- /dev/null
+package jp.osdn.gokigen.gokigenassets.camera.camerax.operation
+
+import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraStatus
+
+class CameraXCameraStatusHolder : ICameraStatus
+{
+ override fun getStatusList(key: String): List<String?>
+ {
+ return (ArrayList<String>())
+ }
+ override fun getStatus(key: String): String { return ("") }
+ override fun setStatus(key: String, value: String) { }
+}
\ No newline at end of file
import jp.osdn.gokigen.gokigenassets.scene.IVibrator
class ConsolePanelControl (private val context: AppCompatActivity, private val vibrator : IVibrator, informationNotify: IInformationReceiver, private val preference: ICameraPreferenceProvider) : IDisplayInjector,
- ILiveViewController, ICameraControl, View.OnClickListener, View.OnLongClickListener,
- ICaptureModeReceiver, ICameraShutter, IKeyDown, IAnotherDrawer, View.OnTouchListener
+ ILiveViewController, ICameraControl, View.OnClickListener, View.OnLongClickListener, ICaptureModeReceiver, ICameraShutter, IKeyDown, IAnotherDrawer, View.OnTouchListener, ICameraStatus
{
private lateinit var refresher: ILiveViewRefresher
+ private var camera0: ICameraControl? = null
+ private var camera1: ICameraControl? = null
+ private var camera2: ICameraControl? = null
+ private var camera3: ICameraControl? = null
+
companion object
{
private val TAG = ConsolePanelControl::class.java.simpleName
override fun doShutter() { }
override fun doShutterOff() { }
override fun getAnotherTouchListener(id : Int) : View.OnTouchListener { return (this) }
+ override fun setNeighborCameraControl(camera0: ICameraControl?, camera1: ICameraControl?, camera2: ICameraControl?, camera3: ICameraControl?)
+ {
+ this.camera0 = camera0
+ this.camera1 = camera1
+ this.camera2 = camera2
+ this.camera3 = camera3
+ }
+
+ override fun getCameraStatus(): ICameraStatus {
+ TODO("Not yet implemented")
+ }
override fun injectDisplay(frameDisplayer: IAutoFocusFrameDisplay, indicator: IIndicatorControl, focusingModeNotify: IFocusingModeNotify)
{
}
-
override fun initialize()
{
try
}
}
-
override fun setRefresher(id: Int, refresher: ILiveViewRefresher, imageView: ILiveView, cachePosition: ICachePositionProvider)
{
try
paint.style = Paint.Style.STROKE
paint.isAntiAlias = true
val width = canvas.width / 3.0f
- val height = canvas.height / 3.0f
+ val height = canvas.height / 4.0f
val rect = RectF(0.0f, 0.0f, canvas.width.toFloat(), canvas.height.toFloat())
canvas.drawLine(rect.left + width, rect.top, rect.left + width, rect.bottom, paint)
canvas.drawRect(rect, paint)
}
+ override fun getStatusList(key: String): List<String?> { return (ArrayList<String>()) }
+ override fun getStatus(key: String): String { return ("") }
+ override fun setStatus(key: String, value: String) { }
+
}
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
+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
{
private val liveViewListener = CameraLiveViewListenerImpl(context, informationNotify, isDisableCache = true)
private lateinit var refresher : ILiveViewRefresher
override fun doShutter() { }
override fun doShutterOff() { }
override fun handleKeyDown(keyCode: Int, event: KeyEvent): Boolean { return (false) }
+ override fun setNeighborCameraControl(camera0: ICameraControl?, camera1: ICameraControl?, camera2: ICameraControl?, camera3: ICameraControl?) { }
+ override fun getCameraStatus(): ICameraStatus { return (this) }
+ override fun getStatusList(key: String): List<String?> { return (ArrayList<String>()) }
+ override fun getStatus(key: String): String { return ("") }
+ override fun setStatus(key: String, value: String) { }
override fun setRefresher(id: Int, refresher: ILiveViewRefresher, imageView: ILiveView, cachePosition : ICachePositionProvider)
{
{
if (isStoreUri)
{
- preference.getUpdator()?.setCameraOption1(uri.toString())
+ preference.getUpdater()?.setCameraOption1(uri.toString())
vibrator.vibrate(IVibrator.VibratePattern.SIMPLE_LONG)
}
liveViewListener.onUpdateLiveView(fis.readBytes(), null)
fun getFocusingControl(id : Int = 0) : IFocusingControl?
fun getDisplayInjector() : IDisplayInjector?
fun getAnotherTouchListener(id : Int = 0) : View.OnTouchListener? = null
+ fun setNeighborCameraControl(camera0: ICameraControl?, camera1: ICameraControl?, camera2: ICameraControl?, camera3: ICameraControl?)
+ fun getCameraStatus() : ICameraStatus
}
private lateinit var cachePositionProvider : ICachePositionProvider
private lateinit var panasonicCamera: IPanasonicCamera
- private var statusChecker: CameraEventObserver? = null
+ private lateinit var statusChecker: CameraEventObserver
private var liveViewControl: PanasonicLiveViewControl? = null
private var focusControl: PanasonicCameraFocusControl? = null
private var captureControl: PanasonicCameraCaptureControl? = null
Log.v(TAG, " prepare : " + panasonicCamera.getFriendlyName() + " " + panasonicCamera.getModelName())
try
{
- if (statusChecker == null)
+ if (!::statusChecker.isInitialized)
{
statusChecker = CameraEventObserver(context, panasonicCamera, cardSlotSelector)
}
{
try
{
- if (statusChecker != null)
+ if (::statusChecker.isInitialized)
{
if (listener != null)
{
- statusChecker?.setEventListener(listener)
+ statusChecker.setEventListener(listener)
}
- statusChecker?.startStatusWatch(null, null)
+ statusChecker.startStatusWatch(null, null)
}
}
catch (e: Exception)
{
if (isStatusWatch)
{
- statusChecker?.stopStatusWatch()
+ if (::statusChecker.isInitialized)
+ {
+ statusChecker.stopStatusWatch()
+ }
isStatusWatch = false
}
cameraConnection.disconnect(false)
{
if (!isStatusWatch)
{
- statusChecker?.startStatusWatch(null, null)
- isStatusWatch = true
+ if (::statusChecker.isInitialized)
+ {
+ statusChecker.startStatusWatch(null, null)
+ isStatusWatch = true
+ }
}
liveViewControl?.startLiveView()
}
liveViewControl?.stopLiveView()
if (isStatusWatch)
{
- statusChecker?.stopStatusWatch()
- isStatusWatch = false
+ if (::statusChecker.isInitialized)
+ {
+ statusChecker.stopStatusWatch()
+ isStatusWatch = false
+ }
}
}
catch (e : Exception)
{
return (false)
}
+
+ override fun setNeighborCameraControl(camera0: ICameraControl?, camera1: ICameraControl?, camera2: ICameraControl?, camera3: ICameraControl?) { }
+ override fun getCameraStatus(): ICameraStatus
+ {
+ return (statusChecker)
+ }
}
return (false)
}
+ override fun setNeighborCameraControl(camera0: ICameraControl?, camera1: ICameraControl?, camera2: ICameraControl?, camera3: ICameraControl?) { }
+
+ override fun getCameraStatus(): ICameraStatus
+ {
+ return (statusChecker)
+ }
+
/**
*
*
return (false)
}
+ override fun setNeighborCameraControl(camera0: ICameraControl?, camera1: ICameraControl?, camera2: ICameraControl?, camera3: ICameraControl?) { }
+
+ override fun getCameraStatus(): ICameraStatus
+ {
+ return (statusWatcher)
+ }
}
import android.graphics.Color
import android.util.Log
+import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraStatus
import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraStatusUpdateNotify
import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraStatusWatcher
import jp.osdn.gokigen.gokigenassets.liveview.message.IMessageDrawer
import jp.osdn.gokigen.gokigenassets.utils.communication.SimpleHttpClient
import org.json.JSONObject
-class ThetaCameraStatusWatcher(private val sessionIdProvider: IThetaSessionIdProvider, private val captureModeReceiver : ICaptureModeReceiver, private val executeUrl : String = "http://192.168.1.1") : ICameraStatusWatcher, IThetaStatusHolder
+class ThetaCameraStatusWatcher(private val sessionIdProvider: IThetaSessionIdProvider, private val captureModeReceiver : ICaptureModeReceiver, private val executeUrl : String = "http://192.168.1.1") : ICameraStatusWatcher, IThetaStatusHolder, ICameraStatus
{
private val httpClient = SimpleHttpClient()
private var whileFetching = false
updateMessage()
}
+ override fun getStatusList(key: String): List<String?>
+ {
+ return (ArrayList<String>())
+ }
+
+ override fun getStatus(key: String): String
+ {
+ return ("")
+ }
+
+ override fun setStatus(key: String, value: String)
+ {
+
+ }
}
private fun setupCameraPreference0(wrapper : PreferenceAccessWrapper) : ICameraPreferenceProvider
{
- return (CameraPreference(wrapper, PREFERENCE_CAMERA_METHOD_NONE))
+ return (CameraPreference(0, 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(wrapper, method, false, 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)))
+ return (CameraPreference(1, wrapper, method, false, 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(wrapper, method, false, 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)))
+ return (CameraPreference(2, wrapper, method, false, 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(wrapper, method, false, 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)))
+ return (CameraPreference(3, wrapper, method, false, 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(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)))
+ 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