{
private val panasonicCameraDeviceMap = mutableMapOf<Int, String>()
private val cameraControlInfo = mutableMapOf<Int, String>()
+ private var connectingCameraNumber = -1
+
+ override fun startConnectToCamera(number: Int)
+ {
+ connectingCameraNumber = number
+ }
+
+ override fun isOtherCameraConnecting(number: Int): Boolean
+ {
+ return (connectingCameraNumber != number)
+ }
override fun isAlreadyAssignedCameraControl(number: Int): Boolean
{
{
try
{
+ connectingCameraNumber = -1
panasonicCameraDeviceMap.remove(number)
cameraControlInfo.remove(number)
updateInformation()
try
{
Log.v(TAG, "assignPanasonicCamera($number, $deviceId)")
+ connectingCameraNumber = -1
panasonicCameraDeviceMap[number] = deviceId
cameraControlInfo[number] = "$number "
updateInformation()
}
-
companion object
{
private val TAG = CameraControlCoordinator::class.java.simpleName
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, cameraCoordinator: ICameraControlCoordinator, private val number: Int) : 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, private val cameraCoordinator: ICameraControlCoordinator, 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 TAG = PanasonicCameraControl::class.java.simpleName
private const val TIMEOUT_MS = 3000
+ private const val CONNECT_DELAY_MS : Long = 350
}
override fun prepare()
Log.v(TAG, " connectToCamera() : PANASONIC ")
try
{
+ while (cameraCoordinator.isOtherCameraConnecting(number))
+ {
+ try
+ {
+ Thread.sleep(CONNECT_DELAY_MS)
+ }
+ catch (e: Exception)
+ {
+ e.printStackTrace()
+ }
+ }
+ cameraCoordinator.startConnectToCamera(number)
cameraConnection.connect()
}
catch (e : Exception)