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 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
8
9 class ThetaOptionUpdateControl(private val sessionIdProvider: IThetaSessionIdProvider, private val indicator: IIndicatorControl, private val liveViewControl: ICameraController)
10 {
11     private val httpClient = SimpleHttpClient()
12
13     /**
14      *
15      *
16      */
17     fun setOptions(options: String, useOSCv2 : Boolean)
18     {
19         Log.v(TAG, "setOptions() useOSCv2 : $useOSCv2  MSG : $options")
20         try
21         {
22             val thread = Thread {
23                 try
24                 {
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 }}}"
27
28                     Log.v(TAG, " OPTIONS : $postData")
29
30                     val result: String? = httpClient.httpPostWithHeader(setOptionsUrl, postData, null, "application/json;charset=utf-8", timeoutMs)
31                     if ((result != null)&&(result.isNotEmpty()))
32                     {
33                         Log.v(TAG, " setOptions() : $result")
34                     }
35                     else
36                     {
37                         Log.v(TAG, "setOptions() reply is null or empty.")
38                     }
39                 }
40                 catch (e: Exception)
41                 {
42                     e.printStackTrace()
43                 }
44             }
45             thread.start()
46         }
47         catch (e: Exception)
48         {
49             e.printStackTrace()
50         }
51     }
52
53     companion object
54     {
55         private val TAG = ThetaOptionUpdateControl::class.java.simpleName
56         private const val timeoutMs = 3000
57     }
58
59 }