1 package jp.sfjp.gokigen.a01c.thetacamerawrapper.operation
3 import android.util.Log
4 import jp.sfjp.gokigen.a01c.ICameraController
5 import jp.sfjp.gokigen.a01c.olycamerawrapper.IIndicatorControl
6 import jp.sfjp.gokigen.a01c.thetacamerawrapper.IThetaSessionIdProvider
7 import jp.sfjp.gokigen.a01c.utils.SimpleHttpClient
9 class ThetaOptionUpdateControl(private val sessionIdProvider: IThetaSessionIdProvider, private val indicator: IIndicatorControl, private val liveViewControl: ICameraController)
11 private val httpClient = SimpleHttpClient()
17 fun setOptions(options: String, useOSCv2 : Boolean)
19 Log.v(TAG, "setOptions() useOSCv2 : $useOSCv2 MSG : $options")
25 val setOptionsUrl = "http://192.168.1.1/osc/commands/execute"
26 val postData = if (useOSCv2) "{\"name\":\"camera.setOptions\",\"parameters\":{\"timeout\":0, \"options\": {\"$options\"}}}" else "{\"name\":\"camera.setOptions\",\"parameters\":{\"sessionId\": \"" + sessionIdProvider.sessionId + "\", \"options\": { $options }}}"
28 Log.v(TAG, " OPTIONS : $postData")
30 val result: String? = httpClient.httpPostWithHeader(setOptionsUrl, postData, null, "application/json;charset=utf-8", timeoutMs)
31 if ((result != null)&&(result.isNotEmpty()))
33 Log.v(TAG, " setOptions() : $result")
37 Log.v(TAG, "setOptions() reply is null or empty.")
55 private val TAG = ThetaOptionUpdateControl::class.java.simpleName
56 private const val timeoutMs = 3000