1 package jp.osdn.gokigen.gokigenassets.camera.vendor.panasonic.connection
3 import android.util.Log
4 import androidx.appcompat.app.AppCompatActivity
5 import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraConnection
6 import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraConnectionStatus
7 import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraStatusReceiver
8 import jp.osdn.gokigen.gokigenassets.camera.interfaces.ICameraChangeListener
9 import jp.osdn.gokigen.gokigenassets.camera.vendor.panasonic.IPanasonicCamera
10 import jp.osdn.gokigen.gokigenassets.camera.vendor.panasonic.IPanasonicCameraHolder
11 import jp.osdn.gokigen.gokigenassets.constants.ICameraConstantConvert
12 import jp.osdn.gokigen.gokigenassets.constants.ICameraConstantConvert.Companion.ID_STRING_CONNECT_CAMERA_DETECTED
13 import jp.osdn.gokigen.gokigenassets.constants.ICameraConstantConvert.Companion.ID_STRING_CONNECT_START
15 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
19 private val TAG = PanasonicCameraConnectSequence::class.java.simpleName
21 private val client = PanasonicSsdpClient(context, this, cameraStatusReceiver, 1)
25 Log.v(TAG, "search()")
28 cameraStatusReceiver.onStatusNotify(context.getString(ID_STRING_CONNECT_START))
37 private fun onConnectNotify()
41 val thread = Thread { // カメラとの接続確立を通知する
42 cameraStatusReceiver.onStatusNotify(context.getString(ICameraConstantConvert.ID_STRING_CONNECT_CONNECTED))
43 cameraStatusReceiver.onCameraConnected()
44 Log.v(TAG, "onConnectNotify()")
45 cameraConnection.forceUpdateConnectionStatus(ICameraConnectionStatus.CameraConnectionStatus.CONNECTED)
55 /* ISearchResultCallback */
56 override fun onDeviceFound(cameraDevice: IPanasonicCamera)
60 cameraStatusReceiver.onStatusNotify(context.getString(ID_STRING_CONNECT_CAMERA_DETECTED) + " " + cameraDevice.getFriendlyName())
61 cameraHolder.detectedCamera(cameraDevice)
69 /* ISearchResultCallback */
70 override fun onFinished()
72 Log.v(TAG, "PanasonicCameraConnectSequence.onFinished()")
78 cameraHolder.prepare()
79 cameraHolder.startRecMode()
80 cameraHolder.startEventWatch(listener)
86 Log.v(TAG, "CameraConnectSequence:: connected.")
97 /* ISearchResultCallback */
98 override fun onErrorFinished(reason: String?)
100 cameraConnection.alertConnectingFailed(reason)