tizen 2.3 release
[framework/web/wearable/wrt-plugins-tizen.git] / src / Content / JSPlaylistItem.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_CONTENT_JS_PLAYLIST_ITEM_H__
19 #define __TIZEN_CONTENT_JS_PLAYLIST_ITEM_H__
20
21 #include <JavaScriptCore/JavaScript.h>
22
23 #include "PlaylistItem.h"
24
25 namespace DeviceAPI {
26 namespace Content {
27
28 class JSPlaylistItem
29 {
30 public:
31     static const JSClassDefinition* getClassInfo();
32     static const JSClassRef getClassRef();
33     static bool isObjectOfClass(JSContextRef context, JSValueRef value);
34     static PlaylistItemPtr getPrivateObject(JSContextRef context, JSValueRef value);
35     static void setPrivateObject(JSObjectRef object, PlaylistItemPtr item);
36     static JSObjectRef makeJSObject(JSContextRef context, PlaylistItemPtr item);
37     static JSObjectRef playlistItemsVectorToJSObjectArray(JSContextRef context,
38             const PlaylistItemPtrVec& items);
39
40 private:
41     /**
42      * The callback invoked when an object is first created.
43      */
44     static void initialize(JSContextRef context,
45             JSObjectRef object);
46
47     /**
48      * The callback invoked when an object is finalized.
49      */
50     static void finalize(JSObjectRef object);
51
52     //------------------------------------------------------------------------------------
53     //Properties:
54     static JSValueRef getContent(JSContextRef context,
55             JSObjectRef object,
56             JSStringRef property_name,
57             JSValueRef* exception);
58
59     /**
60      * This member variable contains the values which has to be passed
61      * when the this class is embedded into JS Engine.
62      */
63     static JSClassDefinition m_class_info;
64
65     /**
66      * This member variable contains the initialization values for the static properties
67      * of this class.
68      * The values are given according to the data structure JSPropertySpec
69      */
70     static JSStaticValue m_property[];
71
72     static JSClassRef m_js_class_ref;
73 };
74
75 } //namespace Content
76 } //namespace DeviceAPI
77
78 #endif // __TIZEN_CONTENT_JS_PLAYLIST_ITEM_H__