/*
 * Copyright (c) 2023-2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef SOFTBUS_BLE_GATT_INTERFACE_H
#define SOFTBUS_BLE_GATT_INTERFACE_H

#include "softbus_broadcast_adapter_interface_struct.h"

#ifdef __cplusplus
extern "C"{
#endif

int32_t SoftbusBleDiscoveryInit(void);
int32_t SoftbusBleDiscoveryDeInit(void);
int32_t SoftbusBleDiscoveryRegisterBroadcaster(int32_t *advId, const SoftbusBroadcastCallback *cb);
int32_t SoftbusBleDiscoveryUnRegisterBroadcaster(int32_t advId);
int32_t SoftbusBleDiscoveryRegisterScanListener(int32_t *scannerId, const SoftbusScanCallback *cb);
int32_t SoftbusBleDiscoveryUnRegisterScanListener(int32_t scannerId);
int32_t SoftbusBleDiscoveryStartBroadcasting(int32_t advId, const SoftbusBroadcastParam *param,
    SoftbusBroadcastData *data);
int32_t SoftbusBleDiscoverySetScanParams(int32_t scannerId, const SoftBusBcScanParams *param,
    const SoftBusBcScanFilter *scanFilter, int32_t filterSize, SoftbusSetFilterCmd cmdId);
int32_t SoftbusBleDiscoveryStopBroadcasting(int32_t advId);
int32_t SoftbusBleDiscoveryEnableAdvertising(uint8_t advHandle);
int32_t SoftbusBleDiscoveryDisableAdvertising(uint8_t advHandle);
int32_t SoftbusBleDiscoverySetBroadcastingData(int32_t advId, const SoftbusBroadcastData *data);
int32_t SoftbusBleDiscoverySetBroadcastingParam(int32_t advId, const SoftbusBroadcastParam *param);
int32_t SoftbusBleDiscoveryEnableBroadcasting(int32_t advId);
int32_t SoftbusBleDiscoveryDisableBroadcasting(int32_t advId);
int32_t SoftbusBleDiscoveryUpdateBroadcasting(int32_t advId, const SoftbusBroadcastParam *param,
    SoftbusBroadcastData *data);
int32_t SoftbusBleDiscoveryStartScan(int32_t scannerId, const SoftBusBcScanParams *param,
    const SoftBusBcScanFilter *scanFilter, int32_t filterSize);
int32_t SoftbusBleDiscoveryStopScan(int32_t scannerId);

#ifdef __cplusplus
}
#endif

#endif