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.
22 #include <Commons/FunctionDefinition.h>
23 #include <Commons/FunctionDeclaration.h>
24 #include <Commons/Exception.h>
25 #include "plugin_config.h"
27 #define NFC_FEATURE_API_COMMON "http://tizen.org/privilege/nfc.common"
28 #define NFC_FEATURE_API_ADMIN "http://tizen.org/privilege/nfc.admin"
29 #define NFC_FEATURE_API_TAG "http://tizen.org/privilege/nfc.tag"
30 #define NFC_FEATURE_API_P2P "http://tizen.org/privilege/nfc.p2p"
31 #define NFC_FEATURE_API_CARDEMULATION "http://tizen.org/privilege/nfc.cardemulation"
33 #define NFC_DEVICE_CAP_COMMON "nfc.common"
34 #define NFC_DEVICE_CAP_ADMIN "nfc.admin"
35 #define NFC_DEVICE_CAP_TAG "nfc.tag"
36 #define NFC_DEVICE_CAP_P2P "nfc.p2p"
37 #define NFC_DEVICE_CAP_CARDEMULATION "nfc.cardemulation"
42 const char* NFC_FUNCTION_API_COMMON_FUNCS = "NFCCommonFunctions";
43 const char* NFC_FUNCTION_API_ADMIN_FUNCS = "NFCAdminFunctions";
44 const char* NFC_FUNCTION_API_TAG_FUNCS = "NFCTagFunctions";
45 const char* NFC_FUNCTION_API_P2P_FUNCS = "NFCP2PFunctions";
46 const char* NFC_FUNCTION_API_CARDEMULATION_FUNCS = "NFCCardEmulationFunctions";
48 static WrtDeviceApis::Commons::FunctionMapping createNFCFunctions();
50 static WrtDeviceApis::Commons::FunctionMapping NFCFunctions =
53 #pragma GCC visibility push(default)
55 DEFINE_FUNCTION_GETTER(NFC, NFCFunctions);
57 #pragma GCC visibility pop
59 static WrtDeviceApis::Commons::FunctionMapping createNFCFunctions()
61 using namespace WrtDeviceApis::Commons;
66 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_COMMON, NFC_DEVICE_CAP_COMMON);
67 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_ADMIN, NFC_DEVICE_CAP_ADMIN);
68 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_TAG, NFC_DEVICE_CAP_TAG);
69 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_P2P, NFC_DEVICE_CAP_P2P);
70 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_CARDEMULATION, NFC_DEVICE_CAP_CARDEMULATION);
72 ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
74 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_COMMON);
75 ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_COMMON, DEVICE_CAP_NFC_COMMON);
77 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_ADMIN);
78 ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_ADMIN, DEVICE_CAP_NFC_ADMIN);
80 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_TAG);
81 ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_TAG, DEVICE_CAP_NFC_TAG);
83 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_P2P);
84 ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_P2P, DEVICE_CAP_NFC_P2P);
86 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_CARDEMULATION);
87 ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_CARDEMULATION, DEVICE_CAP_NFC_CARDEMULATION);
92 ACE_CREATE_FEATURE(FEATURE_COMMON, NFC_FEATURE_API_COMMON);
93 ACE_CREATE_FEATURE(FEATURE_ADMIN, NFC_FEATURE_API_ADMIN);
94 ACE_CREATE_FEATURE(FEATURE_TAG, NFC_FEATURE_API_TAG);
95 ACE_CREATE_FEATURE(FEATURE_P2P, NFC_FEATURE_API_P2P);
96 ACE_CREATE_FEATURE(FEATURE_CARDEMULATION, NFC_FEATURE_API_CARDEMULATION);
98 ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_COMMON);
99 ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_COMMON, FEATURE_COMMON);
101 ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_ADMIN);
102 ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_ADMIN, FEATURE_ADMIN);
104 ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_TAG);
105 ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_TAG, FEATURE_TAG);
107 ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_P2P);
108 ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_P2P, FEATURE_P2P);
110 ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_CARDEMULATION);
111 ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_CARDEMULATION, FEATURE_CARDEMULATION);
116 FunctionMapping NFCFunctions;
118 AceFunction nfcCommonFuncs = ACE_CREATE_FUNCTION(
119 FUNCTION_NFC_COMMON_FUNCTIONS,
120 NFC_FUNCTION_API_COMMON_FUNCS,
121 NFC_FEATURES_NFC_COMMON,
122 DEVICE_LIST_NFC_COMMON);
124 NFCFunctions.insert(std::make_pair(
125 NFC_FUNCTION_API_COMMON_FUNCS,
128 AceFunction nfcAdminFuncs = ACE_CREATE_FUNCTION(
129 FUNCTION_NFC_ADMIN_FUNCTIONS,
130 NFC_FUNCTION_API_ADMIN_FUNCS,
131 NFC_FEATURES_NFC_ADMIN,
132 DEVICE_LIST_NFC_ADMIN);
134 NFCFunctions.insert(std::make_pair(
135 NFC_FUNCTION_API_ADMIN_FUNCS,
138 AceFunction nfcTagFuncs = ACE_CREATE_FUNCTION(
139 FUNCTION_NFC_TAG_FUNCTIONS,
140 NFC_FUNCTION_API_TAG_FUNCS,
141 NFC_FEATURES_NFC_TAG,
142 DEVICE_LIST_NFC_TAG);
144 NFCFunctions.insert(std::make_pair(
145 NFC_FUNCTION_API_TAG_FUNCS,
148 AceFunction nfcP2PFuncs = ACE_CREATE_FUNCTION(
149 FUNCTION_NFC_P2P_FUNCTIONS,
150 NFC_FUNCTION_API_P2P_FUNCS,
151 NFC_FEATURES_NFC_P2P,
152 DEVICE_LIST_NFC_P2P);
154 NFCFunctions.insert(std::make_pair(
155 NFC_FUNCTION_API_P2P_FUNCS,
158 AceFunction nfcCardEmulationFuncs = ACE_CREATE_FUNCTION(
159 FUNCTION_NFC_CARDEMULATION_FUNCTIONS,
160 NFC_FUNCTION_API_CARDEMULATION_FUNCS,
161 NFC_FEATURES_NFC_CARDEMULATION,
162 DEVICE_LIST_NFC_CARDEMULATION);
164 NFCFunctions.insert(std::make_pair(
165 NFC_FUNCTION_API_CARDEMULATION_FUNCS,
166 nfcCardEmulationFuncs));
173 } // namespace DeviceAPI
175 #undef NFC_FEATURE_API_COMMON
176 #undef NFC_FEATURE_API_ADMIN
177 #undef NFC_FEATURE_API_TAG
178 #undef NFC_FEATURE_API_P2P
179 #undef NFC_FEATURE_API_CARDEMULATION
180 #undef NFC_DEVICE_CAP_COMMON
181 #undef NFC_DEVICE_CAP_ADMIN
182 #undef NFC_DEVICE_CAP_TAG
183 #undef NFC_DEVICE_CAP_P2P
184 #undef NFC_DEVICE_CAP_CARDEMULATION