blob: 0147c2ece0cf8d79737667f4a8472a6c7eae5a7f [file] [log] [blame]
// 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.media.audio;
type UpdateEffectError = strict enum {
INVALID_CONFIG = 1;
NOT_FOUND = 2;
};
const MAX_EFFECT_NAME_LENGTH uint32 = 128;
@discoverable
closed protocol EffectsController {
/// Sends the `config` message to an audio effect named `effect_name`. If the
/// server closes the `EffectsController` connection for any reason, that
/// indicates that the effects have been reset and any state associated with
/// previous `UpdateEffect` messages have been lost. Clients who wish to re-apply
/// state should respond by reconnecting and resending any needed `UpdateEffect`
/// messages. If a client closes the connection, no state will be lost but the
/// client will also be unable to determine if and when any state associated with
/// previous messages have been lost.
///
/// Returns success (empty response) if the message was accepted by an
/// effect named `effect_name`.
///
/// Returns `UpdateEffectError.INVALID_CONFIG` if an effect with the name
/// `effect_name` was found, but the `config` message was rejected.
///
/// Returns `UpdateEffectError.NOT_FOUND` if no effect with name `effect_name`
/// could be located.
strict UpdateEffect(struct {
effect_name string:MAX_EFFECT_NAME_LENGTH;
config string:MAX;
}) -> () error UpdateEffectError;
};