1 package jp.osdn.gokigen.gokigenassets.camera.vendor.omds.operation
3 import android.util.Log
4 import jp.osdn.gokigen.gokigenassets.camera.vendor.omds.IOmdsProtocolNotify
5 import jp.osdn.gokigen.gokigenassets.liveview.IIndicatorControl
6 import jp.osdn.gokigen.gokigenassets.liveview.focusframe.IAutoFocusFrameDisplay
7 import jp.osdn.gokigen.gokigenassets.utils.communication.SimpleHttpClient
8 import java.lang.Exception
9 import java.util.HashMap
12 class OmdsContinuousShotControl(private val frameDisplayer: IAutoFocusFrameDisplay, indicator: IIndicatorControl, userAgent: String = "OlympusCameraKit", private val executeUrl : String = "http://192.168.0.10") : IOmdsProtocolNotify
14 private val headerMap: MutableMap<String, String> = HashMap()
15 private val http = SimpleHttpClient()
16 private var useOpcProtocol = false
18 fun continuousShot(isStop: Boolean)
20 Log.v(TAG, "continuousShot()")
26 val sendUrl = if (isStop) { if (useOpcProtocol) { executeUrl + CAPTURE_STOP_COMMAND_OPC } else { executeUrl + CAPTURE_STOP_COMMAND } } else { if (useOpcProtocol) { executeUrl + CAPTURE_COMMAND_OPC } else { executeUrl + CAPTURE_COMMAND } }
27 val reply: String = http.httpGetWithHeader(sendUrl, headerMap, null, TIMEOUT_MS)?.lowercase() ?: ""
28 if (!reply.contains("ok"))
30 Log.v(TAG, "Capture Failure... : $reply")
37 frameDisplayer.hideFocusFrame()
47 override fun detectedOpcProtocol(opcProtocol: Boolean)
49 Log.v(TAG, " --- detectedOpcProtocol($opcProtocol)")
50 useOpcProtocol = opcProtocol
55 private val TAG: String = OmdsSingleShotControl::class.java.simpleName
56 private const val TIMEOUT_MS = 3000
57 private const val CAPTURE_COMMAND = "/exec_takemotion.cgi?com=starttake"
58 private const val CAPTURE_COMMAND_OPC = "/exec_takemotion.cgi?com=newstarttake"
59 private const val CAPTURE_STOP_COMMAND = "/exec_takemotion.cgi?com=stoptake"
60 private const val CAPTURE_STOP_COMMAND_OPC = "/exec_takemotion.cgi?com=newstoptake"
66 headerMap["User-Agent"] = userAgent // "OlympusCameraKit" // "OI.Share"
67 headerMap["X-Protocol"] = userAgent // "OlympusCameraKit" // "OI.Share"