2 // Tizen Web Device API
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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
9 // http://www.apache.org/licenses/LICENSE-2.0
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.
19 #include <Commons/FunctionDefinition.h>
20 #include <Commons/FunctionDeclaration.h>
22 #include <Commons/Exception.h>
23 #include <dpl/exception.h>
26 #include "plugin_config.h"
28 #define CONTENT_FEATURE_API_READ "http://tizen.org/privilege/content.read"
29 #define CONTENT_FEATURE_API_WRITE "http://tizen.org/privilege/content.write"
30 #define CONTENT_FEATURE_API_MANAGER_WRITE "http://tizen.org/privilege/contentmanager.write"
33 #define CONTENT_DEVICE_CAP_READ "content.read"
34 #define CONTENT_DEVICE_CAP_WRITE "content.write"
35 #define CONTENT_DEVICE_CAP_MANAGER_WRITE "contentmanager.write"
38 using namespace WrtDeviceApis::Commons;
43 static FunctionMapping createContentFunctions();
45 static FunctionMapping ContentFunctions = createContentFunctions();
47 DEFINE_FUNCTION_GETTER(Content, ContentFunctions);
49 static FunctionMapping createContentFunctions()
54 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CONTENT_READ, CONTENT_DEVICE_CAP_READ);
55 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CONTENT_WRITE, CONTENT_DEVICE_CAP_WRITE);
56 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CONTENT_MANAGER_WRITE, CONTENT_DEVICE_CAP_MANAGER_WRITE);
58 ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
59 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CONTENT_READ);
60 ACE_ADD_DEVICE_CAP(DEVICE_LIST_CONTENT_READ, DEVICE_CAP_CONTENT_READ);
62 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CONTENT_WRITE);
63 ACE_ADD_DEVICE_CAP(DEVICE_LIST_CONTENT_WRITE, DEVICE_CAP_CONTENT_WRITE);
65 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CONTENT_MANAGER_WRITE);
66 ACE_ADD_DEVICE_CAP(DEVICE_LIST_CONTENT_MANAGER_WRITE, DEVICE_CAP_CONTENT_MANAGER_WRITE);
71 ACE_CREATE_FEATURE(FEATURE_CONTENT_READ, CONTENT_FEATURE_API_READ);
72 ACE_CREATE_FEATURE(FEATURE_CONTENT_WRITE, CONTENT_FEATURE_API_WRITE);
73 ACE_CREATE_FEATURE(FEATURE_CONTENT_MANAGER_WRITE, CONTENT_FEATURE_API_MANAGER_WRITE);
75 ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_CONTENT_READ_WRITE);
76 ACE_ADD_API_FEATURE(CONTENT_FEATURES_CONTENT_READ_WRITE, FEATURE_CONTENT_READ);
77 ACE_ADD_API_FEATURE(CONTENT_FEATURES_CONTENT_READ_WRITE, FEATURE_CONTENT_WRITE);
79 ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_CONTENT_READ);
80 ACE_ADD_API_FEATURE(CONTENT_FEATURES_CONTENT_READ, FEATURE_CONTENT_READ);
82 ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_CONTENT_WRITE);
83 ACE_ADD_API_FEATURE(CONTENT_FEATURES_CONTENT_WRITE, FEATURE_CONTENT_WRITE);
85 ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_CONTENT_MANAGER_WRITE);
86 ACE_ADD_API_FEATURE(CONTENT_FEATURES_CONTENT_MANAGER_WRITE, FEATURE_CONTENT_MANAGER_WRITE);
88 ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_CONTENT);
89 ACE_ADD_API_FEATURE(CONTENT_FEATURES_CONTENT,
92 ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_READ);
93 ACE_ADD_API_FEATURE(CONTENT_FEATURES_READ,
94 FEATURE_CONTENT_READ);
96 ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_WRITE);
97 ACE_ADD_API_FEATURE(CONTENT_FEATURES_WRITE,
98 FEATURE_CONTENT_WRITE);
103 FunctionMapping contentMapping;
105 //"getLocalMediaSource"
106 AceFunction getLocalMediaSourceFunc = ACE_CREATE_FUNCTION(
107 FUNCTION_GET_LOCAL_MEDIA_SOURCE,
108 CONTENT_FUNCTION_API_GET_LOCAL_MEDIASOURCE,
109 CONTENT_FEATURES_CONTENT_READ_WRITE,
110 DEVICE_LIST_CONTENT_READ);
112 contentMapping.insert(std::make_pair(
113 CONTENT_FUNCTION_API_GET_LOCAL_MEDIASOURCE,
114 getLocalMediaSourceFunc));
118 AceFunction findItemsFunc = ACE_CREATE_FUNCTION(
120 CONTENT_FUNCTION_API_FIND_ITEMS,
121 CONTENT_FEATURES_CONTENT_READ,
122 DEVICE_LIST_CONTENT_READ);
124 contentMapping.insert(std::make_pair(
125 CONTENT_FUNCTION_API_FIND_ITEMS,
130 AceFunction updateItemFunc = ACE_CREATE_FUNCTION(
131 FUNCTION_UPDATE_ITEM,
132 CONTENT_FUNCTION_API_UPDATE_ITEM,
133 CONTENT_FEATURES_CONTENT_WRITE,
134 DEVICE_LIST_CONTENT_WRITE);
136 contentMapping.insert(std::make_pair(
137 CONTENT_FUNCTION_API_UPDATE_ITEM,
141 AceFunction updateItemsBatchFunc = ACE_CREATE_FUNCTION(
142 FUNCTION_UPDATE_ITEMS_BATCH,
143 CONTENT_FUNCTION_API_UPDATE_ITEMS_BATCH,
144 CONTENT_FEATURES_CONTENT_WRITE,
145 DEVICE_LIST_CONTENT_WRITE);
147 contentMapping.insert(std::make_pair(
148 CONTENT_FUNCTION_API_UPDATE_ITEMS_BATCH,
149 updateItemsBatchFunc));
152 AceFunction scanFileFunc = ACE_CREATE_FUNCTION(
154 CONTENT_FUNCTION_API_SCAN_FILE,
155 CONTENT_FEATURES_CONTENT_WRITE,
156 DEVICE_LIST_CONTENT_WRITE);
158 contentMapping.insert(std::make_pair(
159 CONTENT_FUNCTION_API_SCAN_FILE,
163 AceFunction setListenerFunc = ACE_CREATE_FUNCTION(
164 FUNCTION_SET_CHANGE_LISTENER,
165 CONTENT_FUNCTION_API_SET_CHANGE_LISTENER,
166 CONTENT_FEATURES_CONTENT_READ,
167 DEVICE_LIST_CONTENT_READ);
169 contentMapping.insert(std::make_pair(
170 CONTENT_FUNCTION_API_SET_CHANGE_LISTENER,
173 //unsetChangeListener
174 AceFunction unsetListenerFunc = ACE_CREATE_FUNCTION(
175 FUNCTION_UNSET_CHANGE_LISTENER,
176 CONTENT_FUNCTION_API_UNSET_CHANGE_LISTENER,
177 CONTENT_FEATURES_CONTENT_READ,
178 DEVICE_LIST_CONTENT_READ);
180 contentMapping.insert(std::make_pair(
181 CONTENT_FUNCTION_API_UNSET_CHANGE_LISTENER,
185 AceFunction updateMetadataFunc = ACE_CREATE_FUNCTION(
186 FUNCTION_UPDATE_METADATA,
187 CONTENT_FUNCTION_API_UPDATE_METADATA,
188 CONTENT_FEATURES_CONTENT_MANAGER_WRITE,
189 DEVICE_LIST_CONTENT_MANAGER_WRITE);
191 contentMapping.insert(std::make_pair(
192 CONTENT_FUNCTION_API_UPDATE_METADATA,
193 updateMetadataFunc));
196 return contentMapping;