initial upload
[apps/native/smart-surveillance-camera.git] / smartthings-plugin / plugin / js / capability_modeSwitch.js
1 /*
2  * Copyright (c) 2015 - 2017 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 var capabilityModeSwitch = {
18         'href' : {
19                 switch: "/capability/switch/main/0"
20         },
21         'controlMode' : "on",
22
23         'update' : function() {
24                 ocfDevice.getRemoteRepresentation(this.href.switch, this.onRepresentCallback);
25         },
26
27         'onRepresentCallback' : function(result, deviceHandle, uri, rcsJsonString) {
28                 scplugin.log.debug(className, arguments.callee.name, result);
29                 scplugin.log.debug(className, arguments.callee.name, uri);
30
31                 if (result == "OCF_OK" || result == "OCF_RESOURCE_CHANGED" || result == "OCF_RES_ALREADY_SUBSCRIBED") {
32                         capabilityModeSwitch.controlMode = rcsJsonString["power"];
33                 }
34
35                 if (capabilityModeSwitch.controlMode == "off") {
36                         document.getElementById("auto_mode").setAttribute('data-state', 'on');
37                         document.getElementById("camera_controller").setAttribute('data-state', 'auto_mode_on');
38                         document.getElementById("auto_mode_check").checked = true;
39                 } else {
40                         document.getElementById("auto_mode").setAttribute('data-state', 'off');
41                         document.getElementById("camera_controller").setAttribute('data-state', 'auto_mode_off');
42                         document.getElementById("auto_mode_check").checked = false;
43                 }
44         },
45
46         'set' : function(state) {
47                 scplugin.log.debug(className, arguments.callee.name, "power : " + state);
48                 var setRcsJson = {};
49                 setRcsJson["power"] = state;
50                 ocfDevice.setRemoteRepresentation(this.href.switch, setRcsJson, this.onRepresentCallback);
51         },
52
53         'isControllable': function() {
54                 if (this.controlMode == 'on') {
55                         return true;
56                 } else {
57                         return false;
58                 }
59         },
60
61         'modeToggle' : function() {
62                 if (this.controlMode == "on") {
63                         this.set("off");
64                 } else {
65                         this.set("on");
66                 }
67         }
68 }