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_STATE_FEATURE_API "http://tizen.org/api/call.state"
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_STATE = "call.state";
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";
49 static WrtDeviceApis::Commons::FunctionMapping createCallFunctions();
51 static WrtDeviceApis::Commons::FunctionMapping CallFunctions = createCallFunctions();
53 DEFINE_FUNCTION_GETTER(Call, CallFunctions);
55 static WrtDeviceApis::Commons::FunctionMapping createCallFunctions()
57 using namespace WrtDeviceApis::Commons;
59 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CALL_STATE, CALL_DEVICE_CAP_STATE);
60 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CALL_HISTORY_READ, CALL_HISTORY_DEVICE_CAP_READ);
61 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_CALL_HISTORY_WRITE, CALL_HISTORY_DEVICE_CAP_WRITE);
63 ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
65 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CALL_STATE);
66 ACE_ADD_DEVICE_CAP(DEVICE_LIST_CALL_STATE, DEVICE_CAP_CALL_STATE);
68 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CALL_HISTORY_READ);
69 ACE_ADD_DEVICE_CAP(DEVICE_LIST_CALL_HISTORY_READ, DEVICE_CAP_CALL_HISTORY_READ);
71 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_CALL_HISTORY_WRITE);
72 ACE_ADD_DEVICE_CAP(DEVICE_LIST_CALL_HISTORY_WRITE, DEVICE_CAP_CALL_HISTORY_WRITE);
74 ACE_CREATE_FEATURE(FEATURE_CALL, CALL_FEATURE_API);
75 ACE_CREATE_FEATURE(FEATURE_CALL_STATE, CALL_STATE_FEATURE_API);
76 ACE_CREATE_FEATURE(FEATURE_CALL_HISTORY, CALL_HISTORY_FEATURE_API);
77 ACE_CREATE_FEATURE(FEATURE_CALL_HISTORY_READ, CALL_HISTORY_FEATURE_API_READ);
78 ACE_CREATE_FEATURE(FEATURE_CALL_HISTORY_WRITE, CALL_HISTORY_FEATURE_API_WRITE);
80 ACE_CREATE_FEATURE_LIST(CALL_FEATURES_CALL_STATE);
81 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_STATE, FEATURE_CALL);
82 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_STATE, FEATURE_CALL_STATE);
84 ACE_CREATE_FEATURE_LIST(CALL_FEATURES_CALL_HISTORY_READ_WRITE);
85 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_READ_WRITE, FEATURE_CALL);
86 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_READ_WRITE, FEATURE_CALL_HISTORY);
87 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_READ_WRITE, FEATURE_CALL_HISTORY_READ);
88 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_READ_WRITE, FEATURE_CALL_HISTORY_WRITE);
90 ACE_CREATE_FEATURE_LIST(CALL_FEATURES_CALL_HISTORY_READ);
91 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_READ, FEATURE_CALL);
92 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_READ, FEATURE_CALL_HISTORY);
93 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_READ, FEATURE_CALL_HISTORY_READ);
95 ACE_CREATE_FEATURE_LIST(CALL_FEATURES_CALL_HISTORY_WRITE);
96 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_WRITE, FEATURE_CALL);
97 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_WRITE, FEATURE_CALL_HISTORY);
98 ACE_ADD_API_FEATURE(CALL_FEATURES_CALL_HISTORY_WRITE, FEATURE_CALL_HISTORY_WRITE);
100 FunctionMapping CallMapping;
102 AceFunction findFunc = ACE_CREATE_FUNCTION(
104 CALL_HISTORY_FUNCTION_API_FIND,
105 CALL_FEATURES_CALL_HISTORY_READ_WRITE,
108 CallMapping.insert(std::make_pair(CALL_HISTORY_FUNCTION_API_FIND, findFunc));
110 AceFunction removeFunc = ACE_CREATE_FUNCTION(
112 CALL_HISTORY_FUNCTION_API_REMOVE,
113 CALL_FEATURES_CALL_HISTORY_WRITE,
116 CallMapping.insert(std::make_pair(CALL_HISTORY_FUNCTION_API_REMOVE, removeFunc));
118 AceFunction removeBatchFunc = ACE_CREATE_FUNCTION(
119 FUNCTION_REMOVE_BATCH,
120 CALL_HISTORY_FUNCTION_API_REMOVE_BATCH,
121 CALL_FEATURES_CALL_HISTORY_WRITE,
124 CallMapping.insert(std::make_pair(CALL_HISTORY_FUNCTION_API_REMOVE_BATCH, removeBatchFunc));
126 AceFunction removeAllFunc = ACE_CREATE_FUNCTION(
128 CALL_HISTORY_FUNCTION_API_REMOVE_ALL,
129 CALL_FEATURES_CALL_HISTORY_WRITE,
132 CallMapping.insert(std::make_pair(CALL_HISTORY_FUNCTION_API_REMOVE_ALL, removeAllFunc));
134 AceFunction addListenerFunc = ACE_CREATE_FUNCTION(
135 FUNCTION_ADD_LISTENER,
136 CALL_HISTORY_FUNCTION_API_ADDLISTENER,
137 CALL_FEATURES_CALL_HISTORY_READ_WRITE,
140 CallMapping.insert(std::make_pair(CALL_HISTORY_FUNCTION_API_ADDLISTENER, addListenerFunc));
142 AceFunction removeListenerFunc = ACE_CREATE_FUNCTION(
143 FUNCTION_REMOVE_LISTENER,
144 CALL_HISTORY_FUNCTION_API_REMOVELISTENER,
145 CALL_FEATURES_CALL_HISTORY_READ_WRITE,
148 CallMapping.insert(std::make_pair(CALL_HISTORY_FUNCTION_API_REMOVELISTENER, removeListenerFunc));
150 AceFunction isCallInProgressFunc = ACE_CREATE_FUNCTION(
151 FUNCTION_IS_CALL_IN_PROGRESS,
152 CALL_FUNCTION_API_ISCALLINPROGRESS,
153 CALL_FEATURES_CALL_STATE,
156 CallMapping.insert(std::make_pair(CALL_FUNCTION_API_ISCALLINPROGRESS, isCallInProgressFunc));