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 #ifndef NAPI_BLUETOOTH_CONNECTION_H 17 #define NAPI_BLUETOOTH_CONNECTION_H 18 19 #include "napi/native_api.h" 20 #include "napi/native_node_api.h" 21 #include "bluetooth_host.h" 22 23 namespace OHOS { 24 namespace Bluetooth { 25 enum class BondState { BOND_STATE_INVALID = 0, BOND_STATE_BONDING = 1, BOND_STATE_BONDED = 2 }; 26 27 enum class ScanMode { 28 SCAN_MODE_NONE = 0, 29 SCAN_MODE_CONNECTABLE = 1, 30 SCAN_MODE_GENERAL_DISCOVERABLE = 2, 31 SCAN_MODE_LIMITED_DISCOVERABLE = 3, 32 SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE = 4, 33 SCAN_MODE_CONNECTABLE_LIMITED_DISCOVERABLE = 5 34 }; 35 36 enum class BluetoothTransport { TRANSPORT_BR_EDR = 0, TRANSPORT_LE = 1 }; 37 38 const char * const REGISTER_DEVICE_FIND_TYPE = "bluetoothDeviceFind"; 39 const char * const REGISTER_DISCOVERY_RESULT_TYPE = "discoveryResult"; 40 const char * const REGISTER_PIN_REQUEST_TYPE = "pinRequired"; 41 const char * const REGISTER_BOND_STATE_TYPE = "bondStateChange"; 42 const char * const REGISTER_BATTERY_CHANGE_TYPE = "batteryChange"; 43 const char * const INVALID_PIN_CODE = "000000"; 44 45 napi_value DefineConnectionFunctions(napi_env env, napi_value exports); 46 napi_value GetBtConnectionState(napi_env env, napi_callback_info info); 47 #ifdef BLUETOOTH_API_SINCE_10 48 napi_value PairDeviceAsync(napi_env env, napi_callback_info info); 49 napi_value CancelPairedDeviceAsync(napi_env env, napi_callback_info info); 50 #else 51 napi_value PairDevice(napi_env env, napi_callback_info info); 52 napi_value CancelPairedDevice(napi_env env, napi_callback_info info); 53 #endif 54 napi_value GetRemoteDeviceName(napi_env env, napi_callback_info info); 55 napi_value GetRemoteDeviceClass(napi_env env, napi_callback_info info); 56 napi_value GetLocalName(napi_env env, napi_callback_info info); 57 napi_value GetPairedDevices(napi_env env, napi_callback_info info); 58 napi_value GetProfileConnectionState(napi_env env, napi_callback_info info); 59 napi_value SetDevicePairingConfirmation(napi_env env, napi_callback_info info); 60 napi_value SetLocalName(napi_env env, napi_callback_info info); 61 napi_value SetBluetoothScanMode(napi_env env, napi_callback_info info); 62 napi_value GetBluetoothScanMode(napi_env env, napi_callback_info info); 63 napi_value StartBluetoothDiscovery(napi_env env, napi_callback_info info); 64 napi_value StopBluetoothDiscovery(napi_env env, napi_callback_info info); 65 napi_value RegisterConnectionObserver(napi_env env, napi_callback_info info); 66 napi_value DeRegisterConnectionObserver(napi_env env, napi_callback_info info); 67 #ifdef BLUETOOTH_API_SINCE_10 68 napi_value SetDevicePinCode(napi_env env, napi_callback_info info); 69 napi_value CancelPairingDevice(napi_env env, napi_callback_info info); 70 napi_value PairCredibleDevice(napi_env env, napi_callback_info info); 71 napi_value GetLocalProfileUuids(napi_env env, napi_callback_info info); 72 napi_value GetRemoteProfileUuids(napi_env env, napi_callback_info info); 73 napi_value GetProfileConnectionStateEx(napi_env env, napi_callback_info info); 74 napi_value IsBluetoothDiscovering(napi_env env, napi_callback_info info); 75 napi_value GetPairState(napi_env env, napi_callback_info info); 76 napi_value ConnectAllowedProfiles(napi_env env, napi_callback_info info); 77 napi_value DisconnectAllowedProfiles(napi_env env, napi_callback_info info); 78 napi_value GetRemoteProductId(napi_env env, napi_callback_info info); 79 #endif 80 napi_value SetRemoteDeviceName(napi_env env, napi_callback_info info); 81 napi_value SetRemoteDeviceType(napi_env env, napi_callback_info info); 82 napi_value GetRemoteDeviceType(napi_env env, napi_callback_info info); 83 napi_value GetRemoteDeviceBatteryInfo(napi_env env, napi_callback_info info); 84 85 napi_value ConnectionPropertyValueInit(napi_env env, napi_value exports); 86 napi_value ScanModeInit(napi_env env); 87 napi_value BondStateInit(napi_env env); 88 napi_value UnbondCauseInit(napi_env env); 89 #ifdef BLUETOOTH_API_SINCE_10 90 napi_value BluetoothTransportInit(napi_env env); 91 napi_value PinTypeInit(napi_env env); 92 #endif 93 94 napi_value DeviceTypeInit(napi_env env); 95 napi_value DeviceChargeStateInit(napi_env env); 96 97 void RegisterObserverToHost(); 98 void DealPairStatus(const int &status, int &bondStatus); 99 } // namespace Bluetooth 100 } // namespace OHOS 101 102 #endif