2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
21 #include <dpl/assert.h>
22 #include <Commons/FunctionDefinition.h>
23 #include <Commons/FunctionDeclaration.h>
24 #include <Commons/Exception.h>
26 #define CALL_FEATURE_API "http://tizen.org/api/call"
27 #define CALL_SIMPLE_FEATURE_API "http://tizen.org/api/call.simple"
28 #define CALL_HISTORY_FEATURE_API "http://tizen.org/api/call.history"
29 #define CALL_HISTORY_FEATURE_API_READ "http://tizen.org/api/call.history.read"
30 #define CALL_HISTORY_FEATURE_API_WRITE "http://tizen.org/api/call.history.write"
35 const char* CALL_DEVICE_CAP_SIMPLE = "call.simple";
36 const char* CALL_HISTORY_DEVICE_CAP_READ = "call.history.read";
37 const char* CALL_HISTORY_DEVICE_CAP_WRITE = "call.history.write";
39 const char* CALL_HISTORY_FUNCTION_API_FIND = "find";
40 const char* CALL_HISTORY_FUNCTION_API_REMOVE = "remove";
41 const char* CALL_HISTORY_FUNCTION_API_REMOVE_BATCH = "removeBatch";
42 const char* CALL_HISTORY_FUNCTION_API_REMOVE_ALL = "removeAll";
43 const char* CALL_HISTORY_FUNCTION_API_ADDLISTENER = "addListener";
44 const char* CALL_HISTORY_FUNCTION_API_REMOVELISTENER = "removeListener";
46 const char* CALL_FUNCTION_API_ISCALLINPROGRESS = "isCallInProgress";
47 const char* CALL_FUNCTION_API_GETCALLSERVICES = "getCallServices";
48 const char* CALL_FUNCTION_API_SENDUSSD = "sendUSSD";
49 const char* CALL_FUNCTION_API_LAUNCHDIALER = "launchDialer";
52 static WrtDeviceApis::Commons::FunctionMapping createCallFunctions();
54 static WrtDeviceApis::Commons::FunctionMapping CallFunctions = createCallFunctions();
56 DEFINE_FUNCTION_GETTER(Call, CallFunctions);
58 static WrtDeviceApis::Commons::FunctionMapping createCallFunctions()
60 using namespace WrtDeviceApis::Commons;
62 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CALL_SIMPLE, CALL_DEVICE_CAP_SIMPLE);
63 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CALL_HISTORY_READ, CALL_HISTORY_DEVICE_CAP_READ);
64 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CALL_HISTORY_WRITE, CALL_HISTORY_DEVICE_CAP_WRITE);
66 ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
68 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CALL_SIMPLE);
69 ACE_ADD_DEVICE_CAP(DEVICE_LIST_CALL_SIMPLE, DEVICE_CAP_CALL_SIMPLE);
71 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CALL_HISTORY_READ);
72 ACE_ADD_DEVICE_CAP(DEVICE_LIST_CALL_HISTORY_READ, DEVICE_CAP_CALL_HISTORY_READ);
74 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CALL_HISTORY_WRITE);
75 ACE_ADD_DEVICE_CAP(DEVICE_LIST_CALL_HISTORY_WRITE, DEVICE_CAP_CALL_HISTORY_WRITE);
77 ACE_CREATE_FEATURE(FEATURE_CALL, CALL_FEATURE_API);
78 ACE_CREATE_FEATURE(FEATURE_CALL_SIMPLE, CALL_SIMPLE_FEATURE_API);
79 ACE_CREATE_FEATURE(FEATURE_CALL_HISTORY, CALL_HISTORY_FEATURE_API);
80 ACE_CREATE_FEATURE(FEATURE_CALL_HISTORY_READ, CALL_HISTORY_FEATURE_API_READ);
81 ACE_CREATE_FEATURE(FEATURE_CALL_HISTORY_WRITE, CALL_HISTORY_FEATURE_API_WRITE);
83 ACE_CREATE_FEATURE_LIST(CALL_FEATURES_CALL_SIMPLE);
84 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_SIMPLE, FEATURE_CALL);
85 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_SIMPLE, FEATURE_CALL_SIMPLE);
87 ACE_CREATE_FEATURE_LIST(CALL_FEATURES_CALL_HISTORY_READ_WRITE);
88 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_READ_WRITE, FEATURE_CALL);
89 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_READ_WRITE, FEATURE_CALL_HISTORY);
90 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_READ_WRITE, FEATURE_CALL_HISTORY_READ);
91 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_READ_WRITE, FEATURE_CALL_HISTORY_WRITE);
93 ACE_CREATE_FEATURE_LIST(CALL_FEATURES_CALL_HISTORY_READ);
94 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_READ, FEATURE_CALL);
95 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_READ, FEATURE_CALL_HISTORY);
96 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_READ, FEATURE_CALL_HISTORY_READ);
98 ACE_CREATE_FEATURE_LIST(CALL_FEATURES_CALL_HISTORY_WRITE);
99 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_WRITE, FEATURE_CALL);
100 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_WRITE, FEATURE_CALL_HISTORY);
101 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_WRITE, FEATURE_CALL_HISTORY_WRITE);
103 FunctionMapping CallMapping;
105 AceFunction findFunc = ACE_CREATE_FUNCTION(
107 CALL_HISTORY_FUNCTION_API_FIND,
108 CALL_FEATURES_CALL_HISTORY_READ_WRITE,
111 CallMapping.insert(std::make_pair(CALL_HISTORY_FUNCTION_API_FIND, findFunc));
113 AceFunction removeFunc = ACE_CREATE_FUNCTION(
115 CALL_HISTORY_FUNCTION_API_REMOVE,
116 CALL_FEATURES_CALL_HISTORY_WRITE,
119 CallMapping.insert(std::make_pair(CALL_HISTORY_FUNCTION_API_REMOVE, removeFunc));
121 AceFunction removeBatchFunc = ACE_CREATE_FUNCTION(
122 FUNCTION_REMOVE_BATCH,
123 CALL_HISTORY_FUNCTION_API_REMOVE_BATCH,
124 CALL_FEATURES_CALL_HISTORY_WRITE,
127 CallMapping.insert(std::make_pair(CALL_HISTORY_FUNCTION_API_REMOVE_BATCH, removeBatchFunc));
129 AceFunction removeAllFunc = ACE_CREATE_FUNCTION(
131 CALL_HISTORY_FUNCTION_API_REMOVE_ALL,
132 CALL_FEATURES_CALL_HISTORY_WRITE,
135 CallMapping.insert(std::make_pair(CALL_HISTORY_FUNCTION_API_REMOVE_ALL, removeAllFunc));
137 AceFunction addListenerFunc = ACE_CREATE_FUNCTION(
138 FUNCTION_ADD_LISTENER,
139 CALL_HISTORY_FUNCTION_API_ADDLISTENER,
140 CALL_FEATURES_CALL_HISTORY_READ_WRITE,
143 CallMapping.insert(std::make_pair(CALL_HISTORY_FUNCTION_API_ADDLISTENER, addListenerFunc));
145 AceFunction removeListenerFunc = ACE_CREATE_FUNCTION(
146 FUNCTION_REMOVE_LISTENER,
147 CALL_HISTORY_FUNCTION_API_REMOVELISTENER,
148 CALL_FEATURES_CALL_HISTORY_READ_WRITE,
151 CallMapping.insert(std::make_pair(CALL_HISTORY_FUNCTION_API_REMOVELISTENER, removeListenerFunc));
153 AceFunction isCallInProgressFunc = ACE_CREATE_FUNCTION(
154 FUNCTION_IS_CALL_IN_PROGRESS,
155 CALL_FUNCTION_API_ISCALLINPROGRESS,
156 CALL_FEATURES_CALL_SIMPLE,
159 CallMapping.insert(std::make_pair(CALL_FUNCTION_API_ISCALLINPROGRESS, isCallInProgressFunc));
161 AceFunction getCallServicesFunc = ACE_CREATE_FUNCTION(
162 FUNCTION_GET_CALL_SERVICES,
163 CALL_FUNCTION_API_GETCALLSERVICES,
164 CALL_FEATURES_CALL_SIMPLE,
167 CallMapping.insert(std::make_pair(CALL_FUNCTION_API_GETCALLSERVICES, getCallServicesFunc));
169 AceFunction sendUSSDFunc = ACE_CREATE_FUNCTION(
171 CALL_FUNCTION_API_SENDUSSD,
172 CALL_FEATURES_CALL_SIMPLE,
175 CallMapping.insert(std::make_pair(CALL_FUNCTION_API_SENDUSSD, sendUSSDFunc));
177 AceFunction launchDialerFunc = ACE_CREATE_FUNCTION(
178 FUNCTION_LAUNCH_DIALER,
179 CALL_FUNCTION_API_LAUNCHDIALER,
180 CALL_FEATURES_CALL_SIMPLE,
183 CallMapping.insert(std::make_pair(CALL_FUNCTION_API_LAUNCHDIALER, launchDialerFunc));