1 /*
2  * Copyright (C) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "napi_bluetooth_constant.h"
17 
18 #include "bluetooth_log.h"
19 #include "napi_bluetooth_utils.h"
20 #include "hitrace_meter.h"
21 
22 namespace {
23 const std::string PROFILE_UUID_BASE_UUID = "00000000-0000-1000-8000-00805F9B34FB";
24 const std::string PROFILE_UUID_HFP_AG = "0000111F-0000-1000-8000-00805F9B34FB";
25 const std::string PROFILE_UUID_HFP_HF = "0000111E-0000-1000-8000-00805F9B34FB";
26 const std::string PROFILE_UUID_HSP_AG = "00001112-0000-1000-8000-00805F9B34FB";
27 const std::string PROFILE_UUID_HSP_HS = "00001108-0000-1000-8000-00805F9B34FB";
28 const std::string PROFILE_UUID_A2DP_SRC = "0000110A-0000-1000-8000-00805F9B34FB";
29 const std::string PROFILE_UUID_A2DP_SINK = "0000110B-0000-1000-8000-00805F9B34FB";
30 const std::string PROFILE_UUID_AVRCP_CT = "0000110E-0000-1000-8000-00805F9B34FB";
31 const std::string PROFILE_UUID_AVRCP_TG = "0000110C-0000-1000-8000-00805F9B34FB";
32 const std::string PROFILE_UUID_HID = "00001124-0000-1000-8000-00805F9B34FB";
33 const std::string PROFILE_UUID_HOGP = "00001812-0000-1000-8000-00805F9B34FB";
34 const std::string PROFILE_UUID_PBAP_PSE = "0000112f-0000-1000-8000-00805F9B34FB";
35 }  // namespace
36 
37 namespace OHOS {
38 namespace Bluetooth {
DefineJSConstant(napi_env env, napi_value exports)39 napi_value NapiConstant::DefineJSConstant(napi_env env, napi_value exports)
40 {
41     HILOGD("enter");
42     ConstantPropertyValueInit(env, exports);
43     napi_property_descriptor desc[] = {};
44     napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);
45     return exports;
46 }
47 
ConstantPropertyValueInit(napi_env env, napi_value exports)48 napi_value NapiConstant::ConstantPropertyValueInit(napi_env env, napi_value exports)
49 {
50     HILOGD("enter");
51     napi_value profileIdObj = ProfileIdInit(env);
52     napi_value profileUuidsObj = ProfileUuidsInit(env);
53     napi_value profileStateObj = ProfileStateInit(env);
54     napi_value majorClassObj = MajorClassOfDeviceInit(env);
55     napi_value majorMinorClassObj = MajorMinorClassOfDeviceInit(env);
56     napi_value accessAuthorizationObj = AccessAuthorizationInit(env);
57     napi_property_descriptor exportFuncs[] = {
58         DECLARE_NAPI_PROPERTY("ProfileId", profileIdObj),
59         DECLARE_NAPI_PROPERTY("ProfileUuids", profileUuidsObj),
60         DECLARE_NAPI_PROPERTY("ProfileConnectionState", profileStateObj),
61         DECLARE_NAPI_PROPERTY("MajorClass", majorClassObj),
62         DECLARE_NAPI_PROPERTY("MajorMinorClass", majorMinorClassObj),
63         DECLARE_NAPI_PROPERTY("AccessAuthorization", accessAuthorizationObj),
64     };
65     HITRACE_METER_NAME(HITRACE_TAG_OHOS, "constant:napi_define_properties");
66     napi_define_properties(env, exports, sizeof(exportFuncs) / sizeof(*exportFuncs), exportFuncs);
67     return exports;
68 }
69 
ProfileIdInit(napi_env env)70 napi_value NapiConstant::ProfileIdInit(napi_env env)
71 {
72     HILOGD("enter");
73     napi_value profileId = nullptr;
74     napi_create_object(env, &profileId);
75     SetNamedPropertyByInteger(env, profileId, ProfileId::PROFILE_A2DP_SINK, "PROFILE_A2DP_SINK");
76     SetNamedPropertyByInteger(env, profileId, ProfileId::PROFILE_A2DP_SOURCE, "PROFILE_A2DP_SOURCE");
77     SetNamedPropertyByInteger(env, profileId, ProfileId::PROFILE_AVRCP_CT, "PROFILE_AVRCP_CT");
78     SetNamedPropertyByInteger(env, profileId, ProfileId::PROFILE_AVRCP_TG, "PROFILE_AVRCP_TG");
79 #ifdef BLUETOOTH_API_SINCE_10
80     SetNamedPropertyByInteger(
81         env, profileId, ProfileId::PROFILE_HANDS_FREE_AUDIO_GATEWAY, "PROFILE_HANDSFREE_AUDIO_GATEWAY");
82 #else
83     SetNamedPropertyByInteger(
84         env, profileId, ProfileId::PROFILE_HANDS_FREE_AUDIO_GATEWAY, "PROFILE_HANDS_FREE_AUDIO_GATEWAY");
85 #endif
86     SetNamedPropertyByInteger(env, profileId, ProfileId::PROFILE_HANDS_FREE_UNIT, "PROFILE_HANDS_FREE_UNIT");
87     SetNamedPropertyByInteger(env, profileId, ProfileId::PROFILE_HID_HOST, "PROFILE_HID_HOST");
88     SetNamedPropertyByInteger(env, profileId, ProfileId::PROFILE_PAN_NETWORK, "PROFILE_PAN_NETWORK");
89     SetNamedPropertyByInteger(env, profileId, ProfileId::PROFILE_PBAP_CLIENT, "PROFILE_PBAP_PCE");
90     SetNamedPropertyByInteger(env, profileId, ProfileId::PROFILE_PBAP_SERVER, "PROFILE_PBAP_PSE");
91     SetNamedPropertyByInteger(env, profileId, ProfileId::PROFILE_OPP, "PROFILE_OPP");
92     return profileId;
93 }
94 
ProfileUuidsInit(napi_env env)95 napi_value NapiConstant::ProfileUuidsInit(napi_env env)
96 {
97     HILOGD("enter");
98     napi_value profileUuidsObj = nullptr;
99     napi_create_object(env, &profileUuidsObj);
100     SetNamedPropertyByString(env, profileUuidsObj, PROFILE_UUID_HFP_AG, "PROFILE_UUID_HFP_AG");
101     SetNamedPropertyByString(env, profileUuidsObj, PROFILE_UUID_HFP_HF, "PROFILE_UUID_HFP_HF");
102     SetNamedPropertyByString(env, profileUuidsObj, PROFILE_UUID_HSP_AG, "PROFILE_UUID_HSP_AG");
103     SetNamedPropertyByString(env, profileUuidsObj, PROFILE_UUID_HSP_HS, "PROFILE_UUID_HSP_HS");
104     SetNamedPropertyByString(env, profileUuidsObj, PROFILE_UUID_A2DP_SRC, "PROFILE_UUID_A2DP_SRC");
105     SetNamedPropertyByString(env, profileUuidsObj, PROFILE_UUID_A2DP_SINK, "PROFILE_UUID_A2DP_SINK");
106     SetNamedPropertyByString(env, profileUuidsObj, PROFILE_UUID_AVRCP_CT, "PROFILE_UUID_AVRCP_CT");
107     SetNamedPropertyByString(env, profileUuidsObj, PROFILE_UUID_AVRCP_TG, "PROFILE_UUID_AVRCP_TG");
108     SetNamedPropertyByString(env, profileUuidsObj, PROFILE_UUID_HID, "PROFILE_UUID_HID");
109     SetNamedPropertyByString(env, profileUuidsObj, PROFILE_UUID_HOGP, "PROFILE_UUID_HOGP");
110     SetNamedPropertyByString(env, profileUuidsObj, PROFILE_UUID_PBAP_PSE, "PROFILE_UUID_PBAP_PSE");
111     return profileUuidsObj;
112 }
113 
ProfileStateInit(napi_env env)114 napi_value NapiConstant::ProfileStateInit(napi_env env)
115 {
116     HILOGD("enter");
117     napi_value profileState = nullptr;
118     napi_create_object(env, &profileState);
119     SetNamedPropertyByInteger(env, profileState, ProfileConnectionState::STATE_DISCONNECTED, "STATE_DISCONNECTED");
120     SetNamedPropertyByInteger(env, profileState, ProfileConnectionState::STATE_CONNECTING, "STATE_CONNECTING");
121     SetNamedPropertyByInteger(env, profileState, ProfileConnectionState::STATE_CONNECTED, "STATE_CONNECTED");
122     SetNamedPropertyByInteger(env, profileState, ProfileConnectionState::STATE_DISCONNECTING, "STATE_DISCONNECTING");
123     return profileState;
124 }
125 
MajorClassOfDeviceInit(napi_env env)126 napi_value NapiConstant::MajorClassOfDeviceInit(napi_env env)
127 {
128     HILOGD("enter");
129     napi_value majorClass = nullptr;
130     napi_create_object(env, &majorClass);
131     // MajorClass
132     SetNamedPropertyByInteger(env, majorClass, MajorClass::MAJOR_MISC, "MAJOR_MISC");
133     SetNamedPropertyByInteger(env, majorClass, MajorClass::MAJOR_COMPUTER, "MAJOR_COMPUTER");
134     SetNamedPropertyByInteger(env, majorClass, MajorClass::MAJOR_PHONE, "MAJOR_PHONE");
135     SetNamedPropertyByInteger(env, majorClass, MajorClass::MAJOR_NETWORKING, "MAJOR_NETWORKING");
136     SetNamedPropertyByInteger(env, majorClass, MajorClass::MAJOR_AUDIO_VIDEO, "MAJOR_AUDIO_VIDEO");
137     SetNamedPropertyByInteger(env, majorClass, MajorClass::MAJOR_PERIPHERAL, "MAJOR_PERIPHERAL");
138     SetNamedPropertyByInteger(env, majorClass, MajorClass::MAJOR_IMAGING, "MAJOR_IMAGING");
139     SetNamedPropertyByInteger(env, majorClass, MajorClass::MAJOR_WEARABLE, "MAJOR_WEARABLE");
140     SetNamedPropertyByInteger(env, majorClass, MajorClass::MAJOR_TOY, "MAJOR_TOY");
141     SetNamedPropertyByInteger(env, majorClass, MajorClass::MAJOR_HEALTH, "MAJOR_HEALTH");
142     SetNamedPropertyByInteger(env, majorClass, MajorClass::MAJOR_UNCATEGORIZED, "MAJOR_UNCATEGORIZED");
143     return majorClass;
144 }
145 
MajorMinorClassOfDeviceInit(napi_env env)146 napi_value NapiConstant::MajorMinorClassOfDeviceInit(napi_env env)
147 {
148     HILOGD("enter");
149     napi_value majorMinorClass = nullptr;
150     napi_create_object(env, &majorMinorClass);
151     // MajorMinorClass
152     // Computer Major Class
153     ComputerMajorClassOfDeviceInit(env, majorMinorClass);
154     // Phone Major Class
155     PhoneMajorClassOfDeviceInit(env, majorMinorClass);
156     // LAN/Network Access Point Major Class
157     NetworkMajorClassOfDeviceInit(env, majorMinorClass);
158     // Audio/Video Major Class
159     AudioVideoMajorClassOfDeviceInit(env, majorMinorClass);
160     // Peripheral Major Class
161     PeripheralMajorClassOfDeviceInit(env, majorMinorClass);
162     // Imaging Major Class
163     ImagingMajorClassOfDeviceInit(env, majorMinorClass);
164     // Wearable Major Class
165     WearableMajorClassOfDeviceInit(env, majorMinorClass);
166     // Minor Device Class field - Toy Major Class
167     ToyMajorClassOfDeviceInit(env, majorMinorClass);
168     // Minor Device Class field - Health
169     HealthMajorClassOfDeviceInit(env, majorMinorClass);
170     return majorMinorClass;
171 }
172 
ComputerMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)173 napi_value NapiConstant::ComputerMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)
174 {
175     SetNamedPropertyByInteger(
176         env, majorMinorClass, static_cast<int>(MajorMinorClass::COMPUTER_UNCATEGORIZED), "COMPUTER_UNCATEGORIZED");
177     SetNamedPropertyByInteger(
178         env, majorMinorClass, static_cast<int>(MajorMinorClass::COMPUTER_DESKTOP), "COMPUTER_DESKTOP");
179     SetNamedPropertyByInteger(
180         env, majorMinorClass, static_cast<int>(MajorMinorClass::COMPUTER_SERVER), "COMPUTER_SERVER");
181     SetNamedPropertyByInteger(
182         env, majorMinorClass, static_cast<int>(MajorMinorClass::COMPUTER_LAPTOP), "COMPUTER_LAPTOP");
183     SetNamedPropertyByInteger(
184         env, majorMinorClass, static_cast<int>(MajorMinorClass::COMPUTER_HANDHELD_PC_PDA), "COMPUTER_HANDHELD_PC_PDA");
185     SetNamedPropertyByInteger(env,
186         majorMinorClass,
187         static_cast<int>(MajorMinorClass::COMPUTER_PALM_SIZE_PC_PDA),
188         "COMPUTER_PALM_SIZE_PC_PDA");
189     SetNamedPropertyByInteger(
190         env, majorMinorClass, static_cast<int>(MajorMinorClass::COMPUTER_WEARABLE), "COMPUTER_WEARABLE");
191     SetNamedPropertyByInteger(
192         env, majorMinorClass, static_cast<int>(MajorMinorClass::COMPUTER_TABLET), "COMPUTER_TABLET");
193     return majorMinorClass;
194 }
195 
PhoneMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)196 napi_value NapiConstant::PhoneMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)
197 {
198     SetNamedPropertyByInteger(
199         env, majorMinorClass, static_cast<int>(MajorMinorClass::PHONE_UNCATEGORIZED), "PHONE_UNCATEGORIZED");
200     SetNamedPropertyByInteger(
201         env, majorMinorClass, static_cast<int>(MajorMinorClass::PHONE_CELLULAR), "PHONE_CELLULAR");
202     SetNamedPropertyByInteger(
203         env, majorMinorClass, static_cast<int>(MajorMinorClass::PHONE_CORDLESS), "PHONE_CORDLESS");
204     SetNamedPropertyByInteger(env, majorMinorClass, static_cast<int>(MajorMinorClass::PHONE_SMART), "PHONE_SMART");
205     SetNamedPropertyByInteger(
206         env, majorMinorClass, static_cast<int>(MajorMinorClass::PHONE_MODEM_OR_GATEWAY), "PHONE_MODEM_OR_GATEWAY");
207     SetNamedPropertyByInteger(env, majorMinorClass, static_cast<int>(MajorMinorClass::PHONE_ISDN), "PHONE_ISDN");
208     return majorMinorClass;
209 }
210 
NetworkMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)211 napi_value NapiConstant::NetworkMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)
212 {
213     SetNamedPropertyByInteger(
214         env, majorMinorClass, static_cast<int>(MajorMinorClass::NETWORK_FULLY_AVAILABLE), "NETWORK_FULLY_AVAILABLE");
215     SetNamedPropertyByInteger(
216         env, majorMinorClass, static_cast<int>(MajorMinorClass::NETWORK_1_TO_17_UTILIZED), "NETWORK_1_TO_17_UTILIZED");
217     SetNamedPropertyByInteger(env,
218         majorMinorClass,
219         static_cast<int>(MajorMinorClass::NETWORK_17_TO_33_UTILIZED),
220         "NETWORK_17_TO_33_UTILIZED");
221     SetNamedPropertyByInteger(env,
222         majorMinorClass,
223         static_cast<int>(MajorMinorClass::NETWORK_33_TO_50_UTILIZED),
224         "NETWORK_33_TO_50_UTILIZED");
225     SetNamedPropertyByInteger(env,
226         majorMinorClass,
227         static_cast<int>(MajorMinorClass::NETWORK_60_TO_67_UTILIZED),
228         "NETWORK_60_TO_67_UTILIZED");
229     SetNamedPropertyByInteger(env,
230         majorMinorClass,
231         static_cast<int>(MajorMinorClass::NETWORK_67_TO_83_UTILIZED),
232         "NETWORK_67_TO_83_UTILIZED");
233     SetNamedPropertyByInteger(env,
234         majorMinorClass,
235         static_cast<int>(MajorMinorClass::NETWORK_83_TO_99_UTILIZED),
236         "NETWORK_83_TO_99_UTILIZED");
237     SetNamedPropertyByInteger(
238         env, majorMinorClass, static_cast<int>(MajorMinorClass::NETWORK_NO_SERVICE), "NETWORK_NO_SERVICE");
239     return majorMinorClass;
240 }
241 
AudioVideoMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)242 napi_value NapiConstant::AudioVideoMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)
243 {
244     SetNamedPropertyByInteger(env, majorMinorClass,
245         static_cast<int>(MajorMinorClass::AUDIO_VIDEO_UNCATEGORIZED), "AUDIO_VIDEO_UNCATEGORIZED");
246     SetNamedPropertyByInteger(env, majorMinorClass,
247         static_cast<int>(MajorMinorClass::AUDIO_VIDEO_WEARABLE_HEADSET), "AUDIO_VIDEO_WEARABLE_HEADSET");
248     SetNamedPropertyByInteger(
249         env, majorMinorClass, static_cast<int>(MajorMinorClass::AUDIO_VIDEO_HANDSFREE), "AUDIO_VIDEO_HANDSFREE");
250     SetNamedPropertyByInteger(
251         env, majorMinorClass, static_cast<int>(MajorMinorClass::AUDIO_VIDEO_MICROPHONE), "AUDIO_VIDEO_MICROPHONE");
252     SetNamedPropertyByInteger(
253         env, majorMinorClass, static_cast<int>(MajorMinorClass::AUDIO_VIDEO_LOUDSPEAKER), "AUDIO_VIDEO_LOUDSPEAKER");
254     SetNamedPropertyByInteger(
255         env, majorMinorClass, static_cast<int>(MajorMinorClass::AUDIO_VIDEO_HEADPHONES), "AUDIO_VIDEO_HEADPHONES");
256     SetNamedPropertyByInteger(env, majorMinorClass,
257         static_cast<int>(MajorMinorClass::AUDIO_VIDEO_PORTABLE_AUDIO), "AUDIO_VIDEO_PORTABLE_AUDIO");
258     SetNamedPropertyByInteger(
259         env, majorMinorClass, static_cast<int>(MajorMinorClass::AUDIO_VIDEO_CAR_AUDIO), "AUDIO_VIDEO_CAR_AUDIO");
260     SetNamedPropertyByInteger(
261         env, majorMinorClass, static_cast<int>(MajorMinorClass::AUDIO_VIDEO_SET_TOP_BOX), "AUDIO_VIDEO_SET_TOP_BOX");
262     SetNamedPropertyByInteger(
263         env, majorMinorClass, static_cast<int>(MajorMinorClass::AUDIO_VIDEO_HIFI_AUDIO), "AUDIO_VIDEO_HIFI_AUDIO");
264     SetNamedPropertyByInteger(
265         env, majorMinorClass, static_cast<int>(MajorMinorClass::AUDIO_VIDEO_VCR), "AUDIO_VIDEO_VCR");
266     SetNamedPropertyByInteger(
267         env, majorMinorClass, static_cast<int>(MajorMinorClass::AUDIO_VIDEO_VIDEO_CAMERA), "AUDIO_VIDEO_VIDEO_CAMERA");
268     SetNamedPropertyByInteger(
269         env, majorMinorClass, static_cast<int>(MajorMinorClass::AUDIO_VIDEO_CAMCORDER), "AUDIO_VIDEO_CAMCORDER");
270     SetNamedPropertyByInteger(env, majorMinorClass,
271         static_cast<int>(MajorMinorClass::AUDIO_VIDEO_VIDEO_MONITOR), "AUDIO_VIDEO_VIDEO_MONITOR");
272     SetNamedPropertyByInteger(env, majorMinorClass,
273         static_cast<int>(MajorMinorClass::AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER),
274         "AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER");
275     SetNamedPropertyByInteger(env, majorMinorClass,
276         static_cast<int>(MajorMinorClass::AUDIO_VIDEO_VIDEO_CONFERENCING), "AUDIO_VIDEO_VIDEO_CONFERENCING");
277     SetNamedPropertyByInteger(env, majorMinorClass,
278         static_cast<int>(MajorMinorClass::AUDIO_VIDEO_VIDEO_GAMING_TOY), "AUDIO_VIDEO_VIDEO_GAMING_TOY");
279     return majorMinorClass;
280 }
281 
PeripheralMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)282 napi_value NapiConstant::PeripheralMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)
283 {
284     SetNamedPropertyByInteger(env,
285         majorMinorClass,
286         static_cast<int>(MajorMinorClass::PERIPHERAL_NON_KEYBOARD_NON_POINTING),
287         "PERIPHERAL_NON_KEYBOARD_NON_POINTING");
288     SetNamedPropertyByInteger(
289         env, majorMinorClass, static_cast<int>(MajorMinorClass::PERIPHERAL_KEYBOARD), "PERIPHERAL_KEYBOARD");
290     SetNamedPropertyByInteger(env,
291         majorMinorClass,
292         static_cast<int>(MajorMinorClass::PERIPHERAL_POINTING_DEVICE),
293         "PERIPHERAL_POINTING_DEVICE");
294     SetNamedPropertyByInteger(env,
295         majorMinorClass,
296         static_cast<int>(MajorMinorClass::PERIPHERAL_KEYBOARD_POINTING),
297         "PERIPHERAL_KEYBOARD_POINTING");
298     SetNamedPropertyByInteger(
299         env, majorMinorClass, static_cast<int>(MajorMinorClass::PERIPHERAL_UNCATEGORIZED), "PERIPHERAL_UNCATEGORIZED");
300     SetNamedPropertyByInteger(
301         env, majorMinorClass, static_cast<int>(MajorMinorClass::PERIPHERAL_JOYSTICK), "PERIPHERAL_JOYSTICK");
302     SetNamedPropertyByInteger(
303         env, majorMinorClass, static_cast<int>(MajorMinorClass::PERIPHERAL_GAMEPAD), "PERIPHERAL_GAMEPAD");
304     SetNamedPropertyByInteger(env,
305         majorMinorClass,
306         static_cast<int>(MajorMinorClass::PERIPHERAL_REMOTE_CONTROL),
307         "PERIPHERAL_REMOTE_CONTROL");
308     SetNamedPropertyByInteger(env,
309         majorMinorClass,
310         static_cast<int>(MajorMinorClass::PERIPHERAL_SENSING_DEVICE),
311         "PERIPHERAL_SENSING_DEVICE");
312     SetNamedPropertyByInteger(env,
313         majorMinorClass,
314         static_cast<int>(MajorMinorClass::PERIPHERAL_DIGITIZER_TABLET),
315         "PERIPHERAL_DIGITIZER_TABLET");
316     SetNamedPropertyByInteger(
317         env, majorMinorClass, static_cast<int>(MajorMinorClass::PERIPHERAL_CARD_READER), "PERIPHERAL_CARD_READER");
318     SetNamedPropertyByInteger(
319         env, majorMinorClass, static_cast<int>(MajorMinorClass::PERIPHERAL_DIGITAL_PEN), "PERIPHERAL_DIGITAL_PEN");
320     SetNamedPropertyByInteger(
321         env, majorMinorClass, static_cast<int>(MajorMinorClass::PERIPHERAL_SCANNER_RFID), "PERIPHERAL_SCANNER_RFID");
322     SetNamedPropertyByInteger(env,
323         majorMinorClass,
324         static_cast<int>(MajorMinorClass::PERIPHERAL_GESTURAL_INPUT),
325         "PERIPHERAL_GESTURAL_INPUT");
326     return majorMinorClass;
327 }
328 
ImagingMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)329 napi_value NapiConstant::ImagingMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)
330 {
331     SetNamedPropertyByInteger(
332         env, majorMinorClass, static_cast<int>(MajorMinorClass::IMAGING_UNCATEGORIZED), "IMAGING_UNCATEGORIZED");
333     SetNamedPropertyByInteger(
334         env, majorMinorClass, static_cast<int>(MajorMinorClass::IMAGING_DISPLAY), "IMAGING_DISPLAY");
335     SetNamedPropertyByInteger(
336         env, majorMinorClass, static_cast<int>(MajorMinorClass::IMAGING_CAMERA), "IMAGING_CAMERA");
337     SetNamedPropertyByInteger(
338         env, majorMinorClass, static_cast<int>(MajorMinorClass::IMAGING_SCANNER), "IMAGING_SCANNER");
339     SetNamedPropertyByInteger(
340         env, majorMinorClass, static_cast<int>(MajorMinorClass::IMAGING_PRINTER), "IMAGING_PRINTER");
341     return majorMinorClass;
342 }
343 
WearableMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)344 napi_value NapiConstant::WearableMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)
345 {
346     SetNamedPropertyByInteger(
347         env, majorMinorClass, static_cast<int>(MajorMinorClass::WEARABLE_UNCATEGORIZED), "WEARABLE_UNCATEGORIZED");
348     SetNamedPropertyByInteger(
349         env, majorMinorClass, static_cast<int>(MajorMinorClass::WEARABLE_WRIST_WATCH), "WEARABLE_WRIST_WATCH");
350     SetNamedPropertyByInteger(
351         env, majorMinorClass, static_cast<int>(MajorMinorClass::WEARABLE_PAGER), "WEARABLE_PAGER");
352     SetNamedPropertyByInteger(
353         env, majorMinorClass, static_cast<int>(MajorMinorClass::WEARABLE_JACKET), "WEARABLE_JACKET");
354     SetNamedPropertyByInteger(
355         env, majorMinorClass, static_cast<int>(MajorMinorClass::WEARABLE_HELMET), "WEARABLE_HELMET");
356     SetNamedPropertyByInteger(
357         env, majorMinorClass, static_cast<int>(MajorMinorClass::WEARABLE_GLASSES), "WEARABLE_GLASSES");
358     return majorMinorClass;
359 }
360 
ToyMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)361 napi_value NapiConstant::ToyMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)
362 {
363     SetNamedPropertyByInteger(
364         env, majorMinorClass, static_cast<int>(MajorMinorClass::TOY_UNCATEGORIZED), "TOY_UNCATEGORIZED");
365     SetNamedPropertyByInteger(env, majorMinorClass, static_cast<int>(MajorMinorClass::TOY_ROBOT), "TOY_ROBOT");
366     SetNamedPropertyByInteger(env, majorMinorClass, static_cast<int>(MajorMinorClass::TOY_VEHICLE), "TOY_VEHICLE");
367     SetNamedPropertyByInteger(
368         env, majorMinorClass, static_cast<int>(MajorMinorClass::TOY_DOLL_ACTION_FIGURE), "TOY_DOLL_ACTION_FIGURE");
369     SetNamedPropertyByInteger(
370         env, majorMinorClass, static_cast<int>(MajorMinorClass::TOY_CONTROLLER), "TOY_CONTROLLER");
371     SetNamedPropertyByInteger(env, majorMinorClass, static_cast<int>(MajorMinorClass::TOY_GAME), "TOY_GAME");
372     return majorMinorClass;
373 }
374 
HealthMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)375 napi_value NapiConstant::HealthMajorClassOfDeviceInit(napi_env env, napi_value majorMinorClass)
376 {
377     SetNamedPropertyByInteger(
378         env, majorMinorClass, static_cast<int>(MajorMinorClass::HEALTH_UNCATEGORIZED), "HEALTH_UNCATEGORIZED");
379     SetNamedPropertyByInteger(
380         env, majorMinorClass, static_cast<int>(MajorMinorClass::HEALTH_BLOOD_PRESSURE), "HEALTH_BLOOD_PRESSURE");
381     SetNamedPropertyByInteger(
382         env, majorMinorClass, static_cast<int>(MajorMinorClass::HEALTH_THERMOMETER), "HEALTH_THERMOMETER");
383     SetNamedPropertyByInteger(
384         env, majorMinorClass, static_cast<int>(MajorMinorClass::HEALTH_WEIGHING), "HEALTH_WEIGHING");
385     SetNamedPropertyByInteger(
386         env, majorMinorClass, static_cast<int>(MajorMinorClass::HEALTH_GLUCOSE), "HEALTH_GLUCOSE");
387     SetNamedPropertyByInteger(
388         env, majorMinorClass, static_cast<int>(MajorMinorClass::HEALTH_PULSE_OXIMETER), "HEALTH_PULSE_OXIMETER");
389     SetNamedPropertyByInteger(
390         env, majorMinorClass, static_cast<int>(MajorMinorClass::HEALTH_PULSE_RATE), "HEALTH_PULSE_RATE");
391     SetNamedPropertyByInteger(
392         env, majorMinorClass, static_cast<int>(MajorMinorClass::HEALTH_DATA_DISPLAY), "HEALTH_DATA_DISPLAY");
393     SetNamedPropertyByInteger(
394         env, majorMinorClass, static_cast<int>(MajorMinorClass::HEALTH_STEP_COUNTER), "HEALTH_STEP_COUNTER");
395     SetNamedPropertyByInteger(env,
396         majorMinorClass,
397         static_cast<int>(MajorMinorClass::HEALTH_BODY_COMPOSITION_ANALYZER),
398         "HEALTH_BODY_COMPOSITION_ANALYZER");
399     SetNamedPropertyByInteger(
400         env, majorMinorClass, static_cast<int>(MajorMinorClass::HEALTH_PEAK_FLOW_MOITOR), "HEALTH_PEAK_FLOW_MOITOR");
401     SetNamedPropertyByInteger(
402         env, majorMinorClass, static_cast<int>(MajorMinorClass::HEALTH_PEAK_FLOW_MONITOR), "HEALTH_PEAK_FLOW_MONITOR");
403     SetNamedPropertyByInteger(env,
404         majorMinorClass,
405         static_cast<int>(MajorMinorClass::HEALTH_MEDICATION_MONITOR),
406         "HEALTH_MEDICATION_MONITOR");
407     SetNamedPropertyByInteger(
408         env, majorMinorClass, static_cast<int>(MajorMinorClass::HEALTH_KNEE_PROSTHESIS), "HEALTH_KNEE_PROSTHESIS");
409     SetNamedPropertyByInteger(
410         env, majorMinorClass, static_cast<int>(MajorMinorClass::HEALTH_ANKLE_PROSTHESIS), "HEALTH_ANKLE_PROSTHESIS");
411     SetNamedPropertyByInteger(env,
412         majorMinorClass,
413         static_cast<int>(MajorMinorClass::HEALTH_GENERIC_HEALTH_MANAGER),
414         "HEALTH_GENERIC_HEALTH_MANAGER");
415     SetNamedPropertyByInteger(env,
416         majorMinorClass,
417         static_cast<int>(MajorMinorClass::HEALTH_PERSONAL_MOBILITY_DEVICE),
418         "HEALTH_PERSONAL_MOBILITY_DEVICE");
419     return majorMinorClass;
420 }
421 
AccessAuthorizationInit(napi_env env)422 napi_value NapiConstant::AccessAuthorizationInit(napi_env env)
423 {
424     HILOGD("enter");
425     napi_value accessAuthorization = nullptr;
426     napi_create_object(env, &accessAuthorization);
427     SetNamedPropertyByInteger(env, accessAuthorization, AccessAuthorization::UNKNOWN, "UNKNOWN");
428     SetNamedPropertyByInteger(env, accessAuthorization, AccessAuthorization::ALLOWED, "ALLOWED");
429     SetNamedPropertyByInteger(env, accessAuthorization, AccessAuthorization::REJECTED, "REJECTED");
430     return accessAuthorization;
431 }
432 }  // namespace Bluetooth
433 }  // namespace OHOS
434