| // Copyright 2020 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.a2dp; |
| |
| /// Enum corresponding to the A2DP SRC/SNK roles as defined in the |
| /// A2DP v1.3.2 profile specification, section 2.2. |
| enum Role { |
| /// Act as a source of digital audio streams, sending audio to peers. |
| SOURCE = 1; |
| /// Act as a sink of digital audio streams and play audio sent from peers. |
| SINK = 2; |
| }; |
| |
| /// A protocol for specifying which A2DP role this device should operate. |
| [Discoverable] |
| protocol AudioMode { |
| /// Switch the device to act as the specified A2DP Role. If the device is already |
| /// set to the requested role, calling this method is a no-op. |
| /// |
| /// When this method returns, a client can depend on the following: |
| /// 1. If the role was switched, the previous profile has requested removal |
| /// from the hosts' SDP databases, and all L2CAP channels associated with |
| /// the previous profile have initiated or completed the process of closing. |
| /// 2. The device is in the requested A2DP role. |
| /// |
| /// If the role cannot be set due to an internal error, the server will close |
| /// the channel. |
| SetRole(Role role) -> (); |
| }; |