| // Copyright 2017 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #pragma once |
| |
| #include "garnet/drivers/bluetooth/lib/gap/adapter.h" |
| #include "garnet/drivers/bluetooth/lib/gap/remote_device.h" |
| #include "lib/bluetooth/fidl/common.fidl.h" |
| #include "lib/bluetooth/fidl/control.fidl.h" |
| #include "lib/bluetooth/fidl/low_energy.fidl.h" |
| |
| // Helpers for implementing the Bluetooth FIDL interfaces. |
| |
| namespace bluetooth { |
| namespace gap { |
| |
| class DiscoveryFilter; |
| |
| } // namespace gap |
| } // namespace bluetooth |
| |
| namespace bluetooth_service { |
| namespace fidl_helpers { |
| |
| ::bluetooth::StatusPtr NewErrorStatus(::bluetooth::ErrorCode error_code, |
| const std::string& description); |
| ::bluetooth::control::AdapterInfoPtr NewAdapterInfo( |
| const ::bluetooth::gap::Adapter& adapter); |
| ::bluetooth::control::RemoteDevicePtr NewRemoteDevice( |
| const ::bluetooth::gap::RemoteDevice& device); |
| |
| ::bluetooth::low_energy::AdvertisingDataPtr NewAdvertisingData( |
| const ::bluetooth::common::ByteBuffer& advertising_data); |
| ::bluetooth::low_energy::RemoteDevicePtr NewLERemoteDevice( |
| const ::bluetooth::gap::RemoteDevice& device); |
| |
| // Validates the contents of a ScanFilter. |
| bool IsScanFilterValid(const ::bluetooth::low_energy::ScanFilter& fidl_filter); |
| |
| // Populates a library DiscoveryFilter based on a FIDL ScanFilter. Returns false |
| // if |fidl_filter| contains any malformed data and leaves |out_filter| |
| // unmodified. |
| bool PopulateDiscoveryFilter( |
| const ::bluetooth::low_energy::ScanFilter& fidl_filter, |
| ::bluetooth::gap::DiscoveryFilter* out_filter); |
| |
| } // namespace fidl_helpers |
| } // namespace bluetooth_service |