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>
21 #include <Commons/Exception.h>
24 #include "plugin_config.h"
26 using namespace WrtDeviceApis::Commons;
28 #define CONTENT_FEATURE_API_READ "http://tizen.org/privilege/content.read"
29 #define CONTENT_FEATURE_API_WRITE "http://tizen.org/privilege/content.write"
31 #define CONTENT_DEVICE_CAP_READ "content.read"
32 #define CONTENT_DEVICE_CAP_WRITE "content.write"
37 // Extern variables declared in plugin_config.h
38 #pragma GCC visibility push(default)
39 const int CONTENT_TIME_TRACER_SHOW = 0;
40 const char* CONTENT_TT_UPDATE_BATCH_TOTAL = "updateBatchTotal";
41 const char* CONTENT_TT_SCAN_FILE_TOTAL = "scanFileTotal";
42 const char* CONTENT_TT_FIND_TOTAL = "findTotal";
43 const char* CONTENT_TT_GET_DIR_TOTAL = "getDirectoriesTotal";
44 #pragma GCC visibility pop(default)
46 static FunctionMapping createContentFunctions();
47 static FunctionMapping ContentFunctions = createContentFunctions();
49 #pragma GCC visibility push(default)
50 DEFINE_FUNCTION_GETTER(Content, ContentFunctions);
51 #pragma GCC visibility pop(default)
53 static FunctionMapping createContentFunctions()
58 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CONTENT_READ, CONTENT_DEVICE_CAP_READ);
59 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CONTENT_WRITE, CONTENT_DEVICE_CAP_WRITE);
61 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CONTENT_READ);
62 ACE_ADD_DEVICE_CAP(DEVICE_LIST_CONTENT_READ, DEVICE_CAP_CONTENT_READ);
64 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CONTENT_WRITE);
65 ACE_ADD_DEVICE_CAP(DEVICE_LIST_CONTENT_WRITE, DEVICE_CAP_CONTENT_WRITE);
70 ACE_CREATE_FEATURE(FEATURE_CONTENT_READ, CONTENT_FEATURE_API_READ);
71 ACE_CREATE_FEATURE(FEATURE_CONTENT_WRITE, CONTENT_FEATURE_API_WRITE);
73 ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_CONTENT_READ);
74 ACE_ADD_API_FEATURE(CONTENT_FEATURES_CONTENT_READ, FEATURE_CONTENT_READ);
76 ACE_CREATE_FEATURE_LIST(CONTENT_FEATURES_CONTENT_WRITE);
77 ACE_ADD_API_FEATURE(CONTENT_FEATURES_CONTENT_WRITE, FEATURE_CONTENT_WRITE);
79 FunctionMapping contentMapping;
82 AceFunction findFunc = ACE_CREATE_FUNCTION(
84 CONTENT_MANAGER_API_FIND,
85 CONTENT_FEATURES_CONTENT_READ,
86 DEVICE_LIST_CONTENT_READ);
88 contentMapping.insert(std::make_pair(
89 CONTENT_MANAGER_API_FIND,
93 AceFunction updateFunc = ACE_CREATE_FUNCTION(
95 CONTENT_MANAGER_API_UPDATE,
96 CONTENT_FEATURES_CONTENT_WRITE,
97 DEVICE_LIST_CONTENT_WRITE);
99 contentMapping.insert(std::make_pair(
100 CONTENT_MANAGER_API_UPDATE,
104 AceFunction updateBatchFunc = ACE_CREATE_FUNCTION(
105 FUNCTION_UPDATE_BATCH,
106 CONTENT_MANAGER_API_UPDATE_BATCH,
107 CONTENT_FEATURES_CONTENT_WRITE,
108 DEVICE_LIST_CONTENT_WRITE);
110 contentMapping.insert(std::make_pair(
111 CONTENT_MANAGER_API_UPDATE_BATCH,
115 AceFunction scanFileFunc = ACE_CREATE_FUNCTION(
117 CONTENT_MANAGER_API_SCAN_FILE,
118 CONTENT_FEATURES_CONTENT_WRITE,
119 DEVICE_LIST_CONTENT_WRITE);
121 contentMapping.insert(std::make_pair(
122 CONTENT_MANAGER_API_SCAN_FILE,
126 AceFunction setListenerFunc = ACE_CREATE_FUNCTION(
127 FUNCTION_SET_CHANGE_LISTENER,
128 CONTENT_MANAGER_API_SET_CHANGE_LISTENER,
129 CONTENT_FEATURES_CONTENT_READ,
130 DEVICE_LIST_CONTENT_READ);
132 contentMapping.insert(std::make_pair(
133 CONTENT_MANAGER_API_SET_CHANGE_LISTENER,
136 //unsetChangeListener
137 AceFunction unsetListenerFunc = ACE_CREATE_FUNCTION(
138 FUNCTION_UNSET_CHANGE_LISTENER,
139 CONTENT_MANAGER_API_UNSET_CHANGE_LISTENER,
140 CONTENT_FEATURES_CONTENT_READ,
141 DEVICE_LIST_CONTENT_READ);
143 contentMapping.insert(std::make_pair(
144 CONTENT_MANAGER_API_UNSET_CHANGE_LISTENER,
148 AceFunction getPlaylistsFunc = ACE_CREATE_FUNCTION(
149 FUNCTION_GET_PLAYLISTS,
150 CONTENT_MANAGER_API_GET_PLAYLISTS,
151 CONTENT_FEATURES_CONTENT_READ,
152 DEVICE_LIST_CONTENT_READ);
154 contentMapping.insert(std::make_pair(
155 CONTENT_MANAGER_API_GET_PLAYLISTS,
159 AceFunction createPlaylistFunc = ACE_CREATE_FUNCTION(
160 FUNCTION_CREATE_PLAYLIST,
161 CONTENT_MANAGER_API_CREATE_PLAYLIST,
162 CONTENT_FEATURES_CONTENT_WRITE,
163 DEVICE_LIST_CONTENT_WRITE);
165 contentMapping.insert(std::make_pair(
166 CONTENT_MANAGER_API_CREATE_PLAYLIST,
167 createPlaylistFunc));
170 AceFunction removePlaylistFunc = ACE_CREATE_FUNCTION(
171 FUNCTION_REMOVE_PLAYLIST,
172 CONTENT_MANAGER_API_REMOVE_PLAYLIST,
173 CONTENT_FEATURES_CONTENT_WRITE,
174 DEVICE_LIST_CONTENT_WRITE);
176 contentMapping.insert(std::make_pair(
177 CONTENT_MANAGER_API_REMOVE_PLAYLIST,
178 removePlaylistFunc));
181 AceFunction addFunc = ACE_CREATE_FUNCTION(
183 PLAYLIST_FUNCTION_API_ADD,
184 CONTENT_FEATURES_CONTENT_WRITE,
185 DEVICE_LIST_CONTENT_WRITE);
187 contentMapping.insert(std::make_pair(
188 PLAYLIST_FUNCTION_API_ADD,
192 AceFunction addBatchFunc = ACE_CREATE_FUNCTION(
194 PLAYLIST_FUNCTION_API_ADD_BATCH,
195 CONTENT_FEATURES_CONTENT_WRITE,
196 DEVICE_LIST_CONTENT_WRITE);
198 contentMapping.insert(std::make_pair(
199 PLAYLIST_FUNCTION_API_ADD_BATCH,
203 AceFunction removeFunc = ACE_CREATE_FUNCTION(
205 PLAYLIST_FUNCTION_API_REMOVE,
206 CONTENT_FEATURES_CONTENT_WRITE,
207 DEVICE_LIST_CONTENT_WRITE);
209 contentMapping.insert(std::make_pair(
210 PLAYLIST_FUNCTION_API_REMOVE,
214 AceFunction removeBatchFunc = ACE_CREATE_FUNCTION(
215 FUNCTION_REMOVE_BATCH,
216 PLAYLIST_FUNCTION_API_REMOVE_BATCH,
217 CONTENT_FEATURES_CONTENT_WRITE,
218 DEVICE_LIST_CONTENT_WRITE);
220 contentMapping.insert(std::make_pair(
221 PLAYLIST_FUNCTION_API_REMOVE_BATCH,
225 AceFunction getItemsFunc = ACE_CREATE_FUNCTION(
227 PLAYLIST_FUNCTION_API_GET_ITEMS,
228 CONTENT_FEATURES_CONTENT_READ,
229 DEVICE_LIST_CONTENT_READ);
231 contentMapping.insert(std::make_pair(
232 PLAYLIST_FUNCTION_API_GET_ITEMS,
236 AceFunction moveItemFunc = ACE_CREATE_FUNCTION(
238 PLAYLIST_FUNCTION_API_MOVE_ITEM,
239 CONTENT_FEATURES_CONTENT_WRITE,
240 DEVICE_LIST_CONTENT_WRITE);
242 contentMapping.insert(std::make_pair(
243 PLAYLIST_FUNCTION_API_MOVE_ITEM,
247 AceFunction setItemsOrderFunc = ACE_CREATE_FUNCTION(
249 PLAYLIST_FUNCTION_API_SET_ITEMS_ORDER,
250 CONTENT_FEATURES_CONTENT_WRITE,
251 DEVICE_LIST_CONTENT_WRITE);
253 contentMapping.insert(std::make_pair(
254 PLAYLIST_FUNCTION_API_SET_ITEMS_ORDER,
258 AceFunction setNameFunc = ACE_CREATE_FUNCTION(
260 PLAYLIST_FUNCTION_API_SET_NAME,
261 CONTENT_FEATURES_CONTENT_WRITE,
262 DEVICE_LIST_CONTENT_WRITE);
264 contentMapping.insert(std::make_pair(
265 PLAYLIST_FUNCTION_API_SET_NAME,
269 AceFunction setThumbnailURIFunc = ACE_CREATE_FUNCTION(
270 FUNCTION_SET_THUMBNAIL_URI,
271 PLAYLIST_FUNCTION_API_SET_THUMBNAIL_URI,
272 CONTENT_FEATURES_CONTENT_WRITE,
273 DEVICE_LIST_CONTENT_WRITE);
275 contentMapping.insert(std::make_pair(
276 PLAYLIST_FUNCTION_API_SET_THUMBNAIL_URI,
277 setThumbnailURIFunc));
279 return contentMapping;