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