tizen 2.3 release
[framework/web/wearable/wrt-plugins-tizen.git] / src / Sound / JSSoundManager.h
1 //
2 // Tizen Web Device API
3 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 #ifndef __TIZEN_JS_SOUND_MANAGER_H__
19 #define __TIZEN_JS_SOUND_MANAGER_H__
20
21 #include <JavaScriptCore/JavaScript.h>
22
23 #include "SoundManager.h"
24
25 namespace DeviceAPI {
26 namespace Sound {
27
28 class JSSoundManager
29 {
30 public:
31     static const JSClassDefinition* getClassInfo();
32     static const JSClassRef getClassRef();
33 private:
34
35     /**
36      * The callback invoked when an object is first created.
37      */
38     static void initialize(JSContextRef context,
39             JSObjectRef object);
40
41     /**
42      * The callback invoked when an object is finalized.
43      */
44     static void finalize(JSObjectRef object);
45
46     static JSValueRef getSoundMode(JSContextRef context,
47             JSObjectRef object,
48             JSObjectRef thisObject,
49             size_t argumentCount,
50             const JSValueRef arguments[],
51             JSValueRef* exception);
52
53     static JSValueRef setSoundModeChangeListener(JSContextRef context,
54             JSObjectRef object,
55             JSObjectRef thisObject,
56             size_t argumentCount,
57             const JSValueRef arguments[],
58             JSValueRef* exception);
59
60     static JSValueRef unsetSoundModeChangeListener(JSContextRef context,
61             JSObjectRef object,
62             JSObjectRef thisObject,
63             size_t argumentCount,
64             const JSValueRef arguments[],
65             JSValueRef* exception);
66
67
68     static JSValueRef setVolume(JSContextRef context,
69             JSObjectRef object,
70             JSObjectRef thisObject,
71             size_t argumentCount,
72             const JSValueRef arguments[],
73             JSValueRef* exception);
74
75     static JSValueRef getVolume(JSContextRef context,
76             JSObjectRef object,
77             JSObjectRef thisObject,
78             size_t argumentCount,
79             const JSValueRef arguments[],
80             JSValueRef* exception);
81
82     static JSValueRef setVolumeChangeListener(JSContextRef context,
83             JSObjectRef object,
84             JSObjectRef thisObject,
85             size_t argumentCount,
86             const JSValueRef arguments[],
87             JSValueRef* exception);
88
89     static JSValueRef unsetVolumeChangeListener(JSContextRef context,
90             JSObjectRef object,
91             JSObjectRef thisObject,
92             size_t argumentCount,
93             const JSValueRef arguments[],
94             JSValueRef* exception);
95
96     /**
97      * This member variable contains the values which has to be passed
98      * when the this class is embedded into JS Engine.
99      */
100     static JSClassDefinition m_classInfo;
101
102     /**
103      * This structure describes a statically declared function property.
104      */
105     static JSStaticFunction m_function[];
106
107     /**
108      * This member variable contains the initialization values for the
109      * properties of this class. The values are given according to
110      * the data structure JSPropertySpec
111      */
112     static JSStaticValue m_property[];
113
114     static JSClassRef m_jsClassRef;
115 };
116
117
118
119 } // Sound
120 } // DeviceAPI
121
122 #endif // __TIZEN_JS_DOWNLOAD_MANAGER_H__