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 static WrtDeviceApis::Commons::FunctionMapping createNFCFunctions();
44 static WrtDeviceApis::Commons::FunctionMapping NFCFunctions =
47 DEFINE_FUNCTION_GETTER(NFC, NFCFunctions);
49 static WrtDeviceApis::Commons::FunctionMapping createNFCFunctions()
51 using namespace WrtDeviceApis::Commons;
56 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_COMMON, NFC_DEVICE_CAP_COMMON);
57 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_ADMIN, NFC_DEVICE_CAP_ADMIN);
58 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_TAG, NFC_DEVICE_CAP_TAG);
59 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_P2P, NFC_DEVICE_CAP_P2P);
60 ACE_CREATE_DEVICE_CAP(DEVICE_CAP_NFC_CARDEMULATION, NFC_DEVICE_CAP_CARDEMULATION);
62 ACE_CREATE_DEVICE_CAPS_LIST(EMPTY_DEVICE_LIST);
64 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_COMMON);
65 ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_COMMON, DEVICE_CAP_NFC_COMMON);
67 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_ADMIN);
68 ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_ADMIN, DEVICE_CAP_NFC_ADMIN);
70 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_TAG);
71 ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_TAG, DEVICE_CAP_NFC_TAG);
73 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_P2P);
74 ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_P2P, DEVICE_CAP_NFC_P2P);
76 ACE_CREATE_DEVICE_CAPS_LIST(DEVICE_LIST_NFC_CARDEMULATION);
77 ACE_ADD_DEVICE_CAP(DEVICE_LIST_NFC_CARDEMULATION, DEVICE_CAP_NFC_CARDEMULATION);
82 ACE_CREATE_FEATURE(FEATURE_COMMON, NFC_FEATURE_API_COMMON);
83 ACE_CREATE_FEATURE(FEATURE_ADMIN, NFC_FEATURE_API_ADMIN);
84 ACE_CREATE_FEATURE(FEATURE_TAG, NFC_FEATURE_API_TAG);
85 ACE_CREATE_FEATURE(FEATURE_P2P, NFC_FEATURE_API_P2P);
86 ACE_CREATE_FEATURE(FEATURE_CARDEMULATION, NFC_FEATURE_API_CARDEMULATION);
88 ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_COMMON);
89 ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_COMMON, FEATURE_COMMON);
91 ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_ADMIN);
92 ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_ADMIN, FEATURE_ADMIN);
94 ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_TAG);
95 ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_TAG, FEATURE_TAG);
97 ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_P2P);
98 ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_P2P, FEATURE_P2P);
100 ACE_CREATE_FEATURE_LIST(NFC_FEATURES_NFC_CARDEMULATION);
101 ACE_ADD_API_FEATURE(NFC_FEATURES_NFC_CARDEMULATION, FEATURE_CARDEMULATION);
106 FunctionMapping NFCFunctions;
108 AceFunction nfcCommonFuncs = ACE_CREATE_FUNCTION(
109 FUNCTION_NFC_COMMON_FUNCTIONS,
110 NFC_FUNCTION_API_COMMON_FUNCS,
111 NFC_FEATURES_NFC_COMMON,
112 DEVICE_LIST_NFC_COMMON);
114 NFCFunctions.insert(std::make_pair(
115 NFC_FUNCTION_API_COMMON_FUNCS,
118 AceFunction nfcAdminFuncs = ACE_CREATE_FUNCTION(
119 FUNCTION_NFC_ADMIN_FUNCTIONS,
120 NFC_FUNCTION_API_ADMIN_FUNCS,
121 NFC_FEATURES_NFC_ADMIN,
122 DEVICE_LIST_NFC_ADMIN);
124 NFCFunctions.insert(std::make_pair(
125 NFC_FUNCTION_API_ADMIN_FUNCS,
128 AceFunction nfcTagFuncs = ACE_CREATE_FUNCTION(
129 FUNCTION_NFC_TAG_FUNCTIONS,
130 NFC_FUNCTION_API_TAG_FUNCS,
131 NFC_FEATURES_NFC_TAG,
132 DEVICE_LIST_NFC_TAG);
134 NFCFunctions.insert(std::make_pair(
135 NFC_FUNCTION_API_TAG_FUNCS,
138 AceFunction nfcP2PFuncs = ACE_CREATE_FUNCTION(
139 FUNCTION_NFC_P2P_FUNCTIONS,
140 NFC_FUNCTION_API_P2P_FUNCS,
141 NFC_FEATURES_NFC_P2P,
142 DEVICE_LIST_NFC_P2P);
144 NFCFunctions.insert(std::make_pair(
145 NFC_FUNCTION_API_P2P_FUNCS,
148 AceFunction nfcCardEmulationFuncs = ACE_CREATE_FUNCTION(
149 FUNCTION_NFC_CARDEMULATION_FUNCTIONS,
150 NFC_FUNCTION_API_CARDEMULATION_FUNCS,
151 NFC_FEATURES_NFC_CARDEMULATION,
152 DEVICE_LIST_NFC_CARDEMULATION);
154 NFCFunctions.insert(std::make_pair(
155 NFC_FUNCTION_API_CARDEMULATION_FUNCS,
156 nfcCardEmulationFuncs));
163 } // namespace DeviceAPI
165 #undef NFC_FEATURE_API_COMMON
166 #undef NFC_FEATURE_API_ADMIN
167 #undef NFC_FEATURE_API_TAG
168 #undef NFC_FEATURE_API_P2P
169 #undef NFC_FEATURE_API_CARDEMULATION
170 #undef NFC_DEVICE_CAP_COMMON
171 #undef NFC_DEVICE_CAP_ADMIN
172 #undef NFC_DEVICE_CAP_TAG
173 #undef NFC_DEVICE_CAP_P2P
174 #undef NFC_DEVICE_CAP_CARDEMULATION