OSDN Git Service

62f0441aa4b03f48f3a81b93b860ba8ce1bfd672
[gokigen/mangle.git] / app / src / main / java / jp / osdn / gokigen / gokigenassets / camera / vendor / omds / operation / OmdsContinuousShotControl.kt
1 package jp.osdn.gokigen.gokigenassets.camera.vendor.omds.operation
2
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
10
11
12 class OmdsContinuousShotControl(private val frameDisplayer: IAutoFocusFrameDisplay, indicator: IIndicatorControl, userAgent: String = "OlympusCameraKit", private val executeUrl : String = "http://192.168.0.10") : IOmdsProtocolNotify
13 {
14     private val headerMap: MutableMap<String, String> = HashMap()
15     private val http = SimpleHttpClient()
16     private var useOpcProtocol = false
17
18     fun continuousShot(isStop: Boolean)
19     {
20         Log.v(TAG, "continuousShot()")
21         try
22         {
23             val thread = Thread {
24                 try
25                 {
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"))
29                     {
30                         Log.v(TAG, "Capture Failure... : $reply")
31                     }
32                 }
33                 catch (e: Exception)
34                 {
35                     e.printStackTrace()
36                 }
37                 frameDisplayer.hideFocusFrame()
38             }
39             thread.start()
40         }
41         catch (e: Exception)
42         {
43             e.printStackTrace()
44         }
45     }
46
47     override fun detectedOpcProtocol(opcProtocol: Boolean)
48     {
49         Log.v(TAG, " --- detectedOpcProtocol($opcProtocol)")
50         useOpcProtocol = opcProtocol
51     }
52
53     companion object
54     {
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"
61
62     }
63
64     init
65     {
66         headerMap["User-Agent"] = userAgent // "OlympusCameraKit" // "OI.Share"
67         headerMap["X-Protocol"] = userAgent // "OlympusCameraKit" // "OI.Share"
68     }
69 }