OSDN Git Service

露出補正値の変更ができるようになった。
[gokigen/A01c.git] / wear / src / main / java / jp / sfjp / gokigen / a01c / thetacamerawrapper / operation / ThetaOptionUpdateControl.kt
1 package jp.sfjp.gokigen.a01c.thetacamerawrapper.operation
2
3 import android.util.Log
4
5 import jp.sfjp.gokigen.a01c.thetacamerawrapper.IThetaSessionIdProvider
6 import jp.sfjp.gokigen.a01c.utils.SimpleHttpClient
7
8 class ThetaOptionUpdateControl(private val sessionIdProvider: IThetaSessionIdProvider)
9 {
10     private val httpClient = SimpleHttpClient()
11
12     /**
13      *
14      *
15      */
16     fun setOptions(options: String, useOSCv2: Boolean, callBack: IOperationCallback? = null)
17     {
18         Log.v(TAG, "setOptions() useOSCv2 : $useOSCv2  MSG : $options")
19         try
20         {
21             val thread = Thread {
22                 try
23                 {
24                     val setOptionsUrl = "http://192.168.1.1/osc/commands/execute"
25                     val postData = if (useOSCv2) "{\"name\":\"camera.setOptions\",\"parameters\":{\"timeout\":0, \"options\": {\"$options\"}}}" else "{\"name\":\"camera.setOptions\",\"parameters\":{\"sessionId\": \"" + sessionIdProvider.sessionId + "\", \"options\": { $options }}}"
26                     Log.v(TAG, " OPTIONS : $postData")
27                     val result: String? = httpClient.httpPostWithHeader(setOptionsUrl, postData, null, "application/json;charset=utf-8", timeoutMs)
28                     if ((result != null) && (result.isNotEmpty()))
29                     {
30                         Log.v(TAG, " setOptions() : $result")
31                         callBack?.operationExecuted(0, result)
32                     }
33                     else
34                     {
35                         Log.v(TAG, "setOptions() reply is null or empty.")
36                         callBack?.operationExecuted(-1, "")
37                     }
38                 }
39                 catch (e: Exception)
40                 {
41                     e.printStackTrace()
42                     callBack?.operationExecuted(-1, e.localizedMessage)
43                 }
44             }
45             thread.start()
46         }
47         catch (e: Exception)
48         {
49             e.printStackTrace()
50             callBack?.operationExecuted(-1, e.localizedMessage)
51         }
52     }
53
54     companion object
55     {
56         private val TAG = ThetaOptionUpdateControl::class.java.simpleName
57         private const val timeoutMs = 1500
58     }
59
60 }