X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fjp%2Fosdn%2Fgokigen%2Fgokigenassets%2Fcamera%2Fvendor%2Fomds%2Foperation%2FOmdsContinuousShotControl.kt;fp=app%2Fsrc%2Fmain%2Fjava%2Fjp%2Fosdn%2Fgokigen%2Fgokigenassets%2Fcamera%2Fvendor%2Fomds%2Foperation%2FOmdsContinuousShotControl.kt;h=62f0441aa4b03f48f3a81b93b860ba8ce1bfd672;hb=4e05e29792af18a848ae2172c6fea2f72ab3e6ae;hp=0000000000000000000000000000000000000000;hpb=f1a598439ff5f132a6c7f4b2da86f62263a21f54;p=gokigen%2Fmangle.git diff --git a/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/omds/operation/OmdsContinuousShotControl.kt b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/omds/operation/OmdsContinuousShotControl.kt new file mode 100644 index 0000000..62f0441 --- /dev/null +++ b/app/src/main/java/jp/osdn/gokigen/gokigenassets/camera/vendor/omds/operation/OmdsContinuousShotControl.kt @@ -0,0 +1,69 @@ +package jp.osdn.gokigen.gokigenassets.camera.vendor.omds.operation + +import android.util.Log +import jp.osdn.gokigen.gokigenassets.camera.vendor.omds.IOmdsProtocolNotify +import jp.osdn.gokigen.gokigenassets.liveview.IIndicatorControl +import jp.osdn.gokigen.gokigenassets.liveview.focusframe.IAutoFocusFrameDisplay +import jp.osdn.gokigen.gokigenassets.utils.communication.SimpleHttpClient +import java.lang.Exception +import java.util.HashMap + + +class OmdsContinuousShotControl(private val frameDisplayer: IAutoFocusFrameDisplay, indicator: IIndicatorControl, userAgent: String = "OlympusCameraKit", private val executeUrl : String = "http://192.168.0.10") : IOmdsProtocolNotify +{ + private val headerMap: MutableMap = HashMap() + private val http = SimpleHttpClient() + private var useOpcProtocol = false + + fun continuousShot(isStop: Boolean) + { + Log.v(TAG, "continuousShot()") + try + { + val thread = Thread { + try + { + 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 } } + val reply: String = http.httpGetWithHeader(sendUrl, headerMap, null, TIMEOUT_MS)?.lowercase() ?: "" + if (!reply.contains("ok")) + { + Log.v(TAG, "Capture Failure... : $reply") + } + } + catch (e: Exception) + { + e.printStackTrace() + } + frameDisplayer.hideFocusFrame() + } + thread.start() + } + catch (e: Exception) + { + e.printStackTrace() + } + } + + override fun detectedOpcProtocol(opcProtocol: Boolean) + { + Log.v(TAG, " --- detectedOpcProtocol($opcProtocol)") + useOpcProtocol = opcProtocol + } + + companion object + { + private val TAG: String = OmdsSingleShotControl::class.java.simpleName + private const val TIMEOUT_MS = 3000 + private const val CAPTURE_COMMAND = "/exec_takemotion.cgi?com=starttake" + private const val CAPTURE_COMMAND_OPC = "/exec_takemotion.cgi?com=newstarttake" + private const val CAPTURE_STOP_COMMAND = "/exec_takemotion.cgi?com=stoptake" + private const val CAPTURE_STOP_COMMAND_OPC = "/exec_takemotion.cgi?com=newstoptake" + + } + + init + { + headerMap["User-Agent"] = userAgent // "OlympusCameraKit" // "OI.Share" + headerMap["X-Protocol"] = userAgent // "OlympusCameraKit" // "OI.Share" + } +}