| // Copyright 2018 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. |
| |
| library fuchsia.bluetooth.host; |
| |
| using fuchsia.bluetooth; |
| using fuchsia.bluetooth.control; |
| using fuchsia.bluetooth.gatt; |
| using fuchsia.bluetooth.le; |
| using fuchsia.bluetooth.bredr; |
| |
| // Interface for interacting with a Bluetooth host device (bt-host) |
| interface Host { |
| // The following methods fulfill a given interface request. bt-host device |
| // will start processing FIDL messages. If the request cannot be fulfilled, |
| // the bt-host device will close its end of the given channel. |
| 1: RequestLowEnergyCentral(request<fuchsia.bluetooth.le.Central> central); |
| 2: RequestLowEnergyPeripheral(request<fuchsia.bluetooth.le.Peripheral> peripheral); |
| 3: RequestGattServer(request<fuchsia.bluetooth.gatt.Server> server); |
| 4: RequestProfile(request<fuchsia.bluetooth.bredr.Profile> profile); |
| |
| // Closes all FIDL interface handles that are associated with this bt-host |
| // device (excluding any Host interface handles). |
| 5: Close(); |
| |
| // Returns information about the Bluetooth adapter managed by this host. |
| 6: GetInfo() -> (fuchsia.bluetooth.control.AdapterInfo @info); |
| |
| // Sets the local name for this adapter. |
| 7: SetLocalName(string local_name) -> (fuchsia.bluetooth.Status status); |
| |
| // Initiates a general discovery procedure for BR/EDR and LE devices. On success, discovered |
| // devices will be reported via AdapterDelegate.OnDeviceDiscovered(). |
| // |
| // On the LE transport, only general-discoverable and connectable peripherals will be reported. |
| // |
| // Discovery will continue until it is terminated via StopDiscovery() or if the proxy to the |
| // Adapter gets disconnected. |
| 8: StartDiscovery() -> (fuchsia.bluetooth.Status status); |
| |
| // Terminates discovery if one was started via StartDiscovery(). The AdapterDelegate will stop |
| // receiving device discovery notifications. |
| // |
| // NOTE: If another client is performing discovery (e.g. via its own Adapter interface handle), |
| // then the system will continue performing device discovery even if this method results in |
| // success. |
| 9: StopDiscovery() -> (fuchsia.bluetooth.Status status); |
| |
| // Sets whether this host should be connectable. |
| 10: SetConnectable(bool enabled) -> (fuchsia.bluetooth.Status status); |
| |
| // Sets whether this host should be discoverable. |
| 11: SetDiscoverable(bool enabled) -> (fuchsia.bluetooth.Status status); |
| |
| // Assigns the pairing delegate that will respond to authentication challenges using the given |
| // I/O capabilities. Setting a pairing delegate cancels any on-going pairing procedure started |
| // using a previous delegate. Pairing requests will be rejected if no PairingDelegate has been |
| // assigned. |
| 12: SetPairingDelegate( |
| fuchsia.bluetooth.control.InputCapabilityType input, |
| fuchsia.bluetooth.control.OutputCapabilityType output, |
| fuchsia.bluetooth.control.PairingDelegate? delegate); |
| |
| // TODO(NET-1148): add Forget() & -> OnDeleteBond |
| |
| // Adds existing bonded devices to the host. The host will be configured to automatically connect |
| // to these devices when they are in range and connectable. Future connections will be encrypted |
| // using the provided bonding data. |
| 110: AddBondedDevices(vector<fuchsia.bluetooth.control.BondingData> bonds) -> (fuchsia.bluetooth.Status status); |
| |
| // Events |
| 101: -> OnAdapterStateChanged(fuchsia.bluetooth.control.AdapterState state); |
| 102: -> OnDeviceUpdated(fuchsia.bluetooth.control.RemoteDevice device); |
| 103: -> OnDeviceRemoved(string identifier); |
| 104: -> OnNewBondingData(fuchsia.bluetooth.control.BondingData data); |
| }; |