| // Copyright 2022 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.hardware.audio.signalprocessing; |
| |
| /// For an overview of the signal processing protocols see |
| /// [Audio Signal Processing](//docs/concepts/drivers/driver_architectures/audio_drivers/audio_signal_processing.md) |
| closed protocol Connector { |
| /// Connect to a `SignalProcessing` protocol. |
| /// Multiple connections may be supported, if a new connection request is not supported, i.e. |
| /// the maximum number of connections have already been created, for instance one, then the |
| /// `protocol` channel (not the channel upon which `SignalProcessingConnect` is being called) |
| /// will be closed with a `ZX_ERR_ALREADY_BOUND` epitaph. |
| /// If signal processing is not supported at all, then the `protocol` channel (again, not the |
| /// channel upon which `SignalProcessingConnect` is being called) will be closed with a |
| /// `ZX_ERR_NOT_SUPPORTED` epitaph. |
| /// This method is named `SignalProcessingConnect` instead of `Connect` because this protocol |
| /// is intended to be composed, and hence the more verbose name allows differentiation and |
| /// improved clarity. |
| strict SignalProcessingConnect(resource struct { |
| protocol server_end:SignalProcessing; |
| }); |
| }; |
| |
| service ConnectorService { |
| connector client_end:Connector; |
| }; |