fuchsia.hardware.audio.signalprocessing

添加时间:7

PROTOCOLS

连接线

fuchsia.hardware.audio.signalprocessing/connector.fidl 中定义

如需简要了解信号处理协议,请参阅 音频信号处理

SignalProcessingConnect

请连接到 SignalProcessing 协议。 如果不支持新的连接请求(例如, 创建的连接数达到上限,例如 1,则 protocol 通道(不是调用 SignalProcessingConnect 的通道) 将以 ZX_ERR_ALREADY_BOUND 标题为关闭标志。 如果完全不支持信号处理,则 protocol 通道(同样,不是 调用 SignalProcessingConnect 的渠道)将通过 ZX_ERR_NOT_SUPPORTED 墓碑。 此方法命名为 SignalProcessingConnect 而不是 Connect,因为此协议 是可组合的,因此使用更为冗长的名称有助于 清晰度更高。

请求

名称类型
protocol server_end<SignalProcessing>

阅读者

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

有关概述,请参阅 [Signal Processing Interface]

GetElements

返回支持的处理元素的矢量。 必须返回一个或多个处理元素,或者 ZX_ERR_NOT_SUPPORTED。 如果 GetTopologies 返回一个或多个拓扑,则 GetElements 必须返回一个或 更多元素。

请求

<空>

响应

名称类型
payload Reader_GetElements_Result

GetTopologies

返回受支持拓扑的矢量。 必须返回一个或多个拓扑或 ZX_ERR_NOT_SUPPORTED。 如果返回多个拓扑,则客户端可以从 包含 SetTopology 的列表。 如果只返回一个拓扑,则拓扑定义仅用作信息,因为 使用 SetTopology 是无法更改的唯一拓扑。 如果 GetElements 返回一个或多个元素,则 GetTopologies 必须返回一个或 更多拓扑。

请求

<空>

响应

名称类型
payload Reader_GetTopologies_Result

WatchElementState

通过挂起 get 获取处理元素状态。 对于指定的 processing_element_id,驱动程序将回复第一个 WatchElementState 客户端发送的内容驱动程序不会响应后续客户端 WatchElementState 对给定 processing_element_id 的调用,直到 Element 表的任何字段发生更改 与该processing_element_id的最近报告的数据相比。

驱动程序将关闭协议通道并显示 ZX_ERR_BAD_STATE 错误 当此客户端已有待处理的 WatchElementState 时,系统会再次调用该方法 和 processing_element_id。

请求

名称类型
processing_element_id ElementId

响应

名称类型
state ElementState

WatchTopology

通过挂起获取来获取当前拓扑。 驱动程序将立即回复每个客户端发送的第一个 WatchTopology。通过 驱动程序不会响应来自该客户端的后续 WatchTopology 调用,直到 信号处理拓扑发生变化,这是由于 SetTopology 调用而发生的。 驱动程序将关闭协议通道并显示 ZX_ERR_BAD_STATE 错误 当此客户端已有待处理的 WatchTopology 时,系统会再次调用该方法。

添加时间:HEAD

请求

<空>

响应

名称类型
topology_id TopologyId

SignalProcessing

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

有关概述,请参阅 [Signal Processing Interface]

GetElements

返回支持的处理元素的矢量。 必须返回一个或多个处理元素,或者 ZX_ERR_NOT_SUPPORTED。 如果 GetTopologies 返回一个或多个拓扑,则 GetElements 必须返回一个或 更多元素。

请求

<空>

响应

名称类型
payload Reader_GetElements_Result

GetTopologies

返回受支持拓扑的矢量。 必须返回一个或多个拓扑或 ZX_ERR_NOT_SUPPORTED。 如果返回多个拓扑,则客户端可以从 包含 SetTopology 的列表。 如果只返回一个拓扑,则拓扑定义仅用作信息,因为 使用 SetTopology 是无法更改的唯一拓扑。 如果 GetElements 返回一个或多个元素,则 GetTopologies 必须返回一个或 更多拓扑。

请求

<空>

响应

名称类型
payload Reader_GetTopologies_Result

SetElementState

使用 GetElements 返回的唯一 ElementId 来控制处理元素。 请注意,SettableElementStateElementState 的子集,因为返回的某些字段 来自 WatchElementState 的数据(例如 latency)只能由客户端观察到(未设置)。

如果 processing_element_id 与返回的 ID 不匹配,则返回 ZX_ERR_INVALID_ARGS 或者“SettableTypeSpecificElementState”的类型不符合GetElementsElementType 此 ID 的 GetElements。 如果 state 值无效(即任何值),驱动程序可能会返回 ZX_ERR_INVALID_ARGS 的值违反了此协议中指定的规则,例如尝试改变 进行此处理时,EQUALIZER 个处理元素的 EqualizerBandState frequency 元素未在其 supported_controls 中通告 CAN_CONTROL_FREQUENCY

可以在非 SignalProcessing 协议之前或之后调用 SetElementState 调用。如果在非 SignalProcessing 协议调用之后调用,则 SetElementState 不一定需要重新协商驱动程序状态,因为 通过调用构成 SignalProcessing 的协议来联系,例如Dai。 例如,SetElementState 更改 AGL 处理元素的参数 可能不需要重新协商 Dai 状态,因为更改增益参数通常 不会更改支持的音频格式集。 相比之下,如果 SetElementState 更改了 CONNECTION_POINT 的参数 元素,那么更改可能需要重新进行协商,因为这可能会使 上一个 GetDaiFormats Dai 协议调用中返回的受支持格式。

决定何时需要进行重新协商是驾驶员的职责。如果重新协商 则 SetElementState 必须返回 ZX_ERR_BAD_STATE,并且客户端必须 关闭协议通道,以便重新开始协商。 然后,客户端必须进行返回的 SetElementState 调用 ZX_ERR_BAD_STATE,然后再调用任何非 SignalProcessing 协议。

请求

名称类型
processing_element_id ElementId
state SettableElementState

响应

名称类型
payload SignalProcessing_SetElementState_Result

SetTopology

使用 GetTopologies 返回的矢量的 ID 设置要使用的拓扑。 当前拓扑通过 WatchTopology 响应进行传达。如需更改拓扑,请执行以下操作: 处于有效状态,客户端使用 SetTopology。 如果指定的 topology_id 不在 GetTopologies 返回的 topologies 内, 此调用将返回 ZX_ERR_INVALID_ARGS。 如果 GetTopologies 仅返回一个 Topology,则 SetTopology 是可选的,没有任何影响。

可以在非 SignalProcessing 协议调用之前或之后调用 SetTopology。 如果在非 SignalProcessing 协议调用之后调用,SetTopology 可能会返回 ZX_ERR_BAD_STATE,用于表示相应操作必须经过重新协商才能继续操作 驱动程序状态。请参阅 SetElementState 进行进一步讨论。

请求

名称类型
topology_id TopologyId

响应

名称类型
payload SignalProcessing_SetTopology_Result

WatchElementState

通过挂起 get 获取处理元素状态。 对于指定的 processing_element_id,驱动程序将回复第一个 WatchElementState 客户端发送的内容驱动程序不会响应后续客户端 WatchElementState 对给定 processing_element_id 的调用,直到 Element 表的任何字段发生更改 与该processing_element_id的最近报告的数据相比。

驱动程序将关闭协议通道并显示 ZX_ERR_BAD_STATE 错误 当此客户端已有待处理的 WatchElementState 时,系统会再次调用该方法 和 processing_element_id。

请求

名称类型
processing_element_id ElementId

响应

名称类型
state ElementState

WatchTopology

通过挂起获取来获取当前拓扑。 驱动程序将立即回复每个客户端发送的第一个 WatchTopology。通过 驱动程序不会响应来自该客户端的后续 WatchTopology 调用,直到 信号处理拓扑发生变化,这是由于 SetTopology 调用而发生的。 驱动程序将关闭协议通道并显示 ZX_ERR_BAD_STATE 错误 当此客户端已有待处理的 WatchTopology 时,系统会再次调用该方法。

添加时间:HEAD

请求

<空>

响应

名称类型
topology_id TopologyId

结构体

EdgePair

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

处理元素之间的边缘对,用于定义处理元素中的排序 。

字段类型说明默认
processing_element_id_from ElementId 无默认设置
processing_element_id_to ElementId 无默认设置

Reader_GetElements_Response

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

字段类型说明默认
processing_elements vector<Element>[64] 无默认设置

Reader_GetTopologies_Response

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

字段类型说明默认
topologies vector<Topology>[64] 无默认设置

SignalProcessing_SetElementState_Response

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

<空>

SignalProcessing_SetTopology_Response

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

<空>

精英

ElementType 柔性环境

类型:uint32

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

名称说明
1

供应商特定。任何后续类型定义都不涵盖的处理元素类型。

3

控制流水线通道混合和路由。

4

增益控制,又称为音量控制。

5

自动增益控制。 不管输入信号如何变化,自动维持合适的信号电平。

6

自动增益限制器。 自动将信号电平维持在指定的水平以下。 低于该水平的输入不受影响,高于该水平的峰值会衰减。

7

更改信号的动态范围,例如动态范围压缩。

8

忽略。

9

延迟。

10

均衡器。

11

采样率转换。

12

流水线的开始/结束。

移除的数量:20 添加:12
13

环形缓冲区。 这是可以启动/结束处理流水线的两种元素中的第一种。

添加时间:20
14

数字音频接口互连。 这是可以启动/结束处理流水线的两种元素中的第二种。

添加时间:20

EndpointType 柔性

类型:uint8

fuchsia.hardware.audio.signalprocessing/dai_interconnect.fidl 中定义

端点类型。

移除的数量:20 添加:12

名称说明
1

端点代表一个环形缓冲区。 环形缓冲区处理元素的 ID 允许多环缓冲区拓扑 提供 fuchsia.hardware.audio/Composite API 的驱动程序支持。

2

端点代表数字音频接口互连, 例如将 SoC 音频子系统连接到 DAC + 放大器硬件编解码器。

EqualizerBandType 柔性

类型:uint64

fuchsia.hardware.audio.signalprocessing/equalizer.fidl 中定义

均衡器频段的类型。

名称说明
1

在具有可选 qfrequency 附近增加/减少 gain_db

2

窄带被拒会严重削弱 frequency,并提供可选的 q

3

通过可选的 q(也称为高通)将增益降到 frequency 以下。

4

通过可选的 q(也称为低通)将增益降到 frequency 以上。

5

将增益降至 frequency 以下,实现 gain_db 值(具有平台效应)。

6

将增益降至 frequency 以上,实现 gain_db 的增益(具有高原效应)。

GainDomain flexible

类型:uint8

fuchsia.hardware.audio.signalprocessing/gain.fidl 中定义

增益的硬件域,例如ANALOG。

名称说明
1

处理元素增益适用于数字领域。

2

处理元素增益适用于模拟域。

3

处理元素增益会使用数字和模拟硬件来混合。

GainType 严格

类型:uint8

fuchsia.hardware.audio.signalprocessing/gain.fidl 中定义

表征的增益类型。

名称说明
1

增益以 dB 为单位,例如 -103.0dB 或 +3.2dB。

2

收益以百分比表示,例如 10.0% 或 80.5%。

LevelType 严格

类型:uint8

fuchsia.hardware.audio.signalprocessing/dynamics.fidl 中定义

等级类型。

名称说明
1

等级增益已指定为峰值。

2

水平被指定为均方根。

LuxeDetectCapabilities 柔性

类型:uint32

fuchsia.hardware.audio.signalprocessing/dai_interconnect.fidl 中定义

互连的插头检测功能。

添加时间:12

名称说明
0

互连采用硬线方式(将始终插入)。

1

互连可以拔出/插入,并且可以异步通知插头状态变化。

ThresholdType 严格

类型:uint8

fuchsia.hardware.audio.signalprocessing/dynamics.fidl 中定义

阈值类型。

名称说明
1

应用高于阈值的动态处理。

2

应用低于阈值的动态处理。

DaiInterconnect

fuchsia.hardware.audio.signalprocessing/dai_interconnect.fidl 中定义

type 等于 DAI_INTERCONNECTElement 的参数。

添加时间:20

Ordinal字段类型说明
plug_detect_capabilities PlugDetectCapabilities

插头检测功能。

必填。

DaiInterconnectElementState

fuchsia.hardware.audio.signalprocessing/dai_interconnect.fidl 中定义

type 等于 DAI_INTERCONNECTElement 的状态。

添加时间:20

Ordinal字段类型说明
plug_state PlugState

此 DAI 互连的插头状态。

必填。

external_delay zx/Duration

驱动程序对超出此 DAI 端点的外部延迟的最优估算值,作为流水线 当前已配置。

在确定要求时,客户必须考虑external_delay 最短准备时间(播放期间)和最短捕获延迟时间(捕获期间)。

如果未提供此参数,则 external_delay 未知;客户端可能会按照自己的方式 (例如,将其视为 0 或其他某个时长、自动检测等)。

可选。

动力学

fuchsia.hardware.audio.signalprocessing/dynamics.fidl 中定义

type 等于 DYNAMICSElement 的参数。

Ordinal字段类型说明
bands vector<DynamicsBand>[64]

此协议中的 Dynamics 元素可以支持多个频段, 在 DynamicsElementState 中指定多个可以更改的参数 与SetElementState共享。 bands 矢量的元素数量决定了 处理元素。

必需。必须包含至少一个条目。

supported_controls DynamicsSupportedControls

此处理元素支持的控件。

可选。

DynamicsBand

fuchsia.hardware.audio.signalprocessing/dynamics.fidl 中定义

Dynamics 元素频段的参数。

Ordinal字段类型说明
id uint64

此频段的唯一 ID,只需在相应的 Element,并且在与 SignalProcessing 关联的频道之前有效 因为这个协议已关闭

必填。

DynamicsBandState

fuchsia.hardware.audio.signalprocessing/dynamics.fidl 中定义

Element 中单个频段的状态,typeDYNAMICS。 服务器可能会包含控制频段字段,即使 (即未在 supported_controls 中设置这些位)。

Ordinal字段类型说明
id uint64

频段的唯一 ID。必须与id Dynamics bands

min_frequency uint32

频段的最低频率(以 Hz 为单位)。 此字段可以是 0,例如,对于单频段动态处理,用于指定 (以及 max_frequency)表明频段处于全范围。

max_frequency uint32

频段的最大频率(以 Hz 为单位)。 此字段可以是奈奎斯特频率,例如对于单频段动态 以指定频段为全范围(连同 min_frequency)。

必填。

threshold_db float32

动态主处理开始后的值(受 knee_width_db),以输入 dB 为单位。 某些信号处理(例如 input_gainoutput_gain)不受此值的影响。

必填。

threshold_type ThresholdType

动态处理应用于 ABOVEBELOW 阈值。

对于服务器而言是必需的。 在以下情况下,客户端不得在 SetElementState 中包含此字段: supported_controls 中未设置“DynamicsSupportedControls.THRESHOLD_TYPE”。

ratio float32

高于或低于(请参阅 threshold_type)膝盖区域部分的输入与输出 dB 比率。

必填。

knee_width_db float32

膝部区域的宽度(以输入 dB 为单位)。如果存在,则不能为负数。 如果未添加,则未指定膝部区域的宽度。 值 0 表示“硬”膝盖;值越大,则越“柔和”膝盖。 这条膝盖位于threshold_db的中心位置。

选填。 在以下情况下,客户端不得在 SetElementState 中包含此字段: supported_controls 中未设置“DynamicsSupportedControls.KNEE_WIDTH”。

attack zx/Duration

攻击时间。 如果未提供此参数,则未指定攻击时间。

选填。 在以下情况下,客户端不得在 SetElementState 中包含此字段: supported_controls 中未设置“DynamicsSupportedControls.ATTACK”。

release zx/Duration

发布时间。 如果未提供此参数,则未指定发布时间。

选填。 在以下情况下,客户端不得在 SetElementState 中包含此字段: supported_controls 中未设置“DynamicsSupportedControls.RELEASE”。

output_gain_db float32

输出(即弥补或后置)增益值(以 dB 为单位)。 如果不包含,则未指定输出增益。

选填。 在以下情况下,客户端不得在 SetElementState 中包含此字段: supported_controls 中未设置“DynamicsSupportedControls.OUTPUT_GAIN”。

input_gain_db float32

以 dB 为单位的输入(又称为前置)增益值。 如果不包含,则未指定输入增益。

选填。 在以下情况下,客户端不得在 SetElementState 中包含此字段: supported_controls 中未设置“DynamicsSupportedControls.INPUT_GAIN”。

level_type LevelType

水平类型(峰值或均方根)。 如果不包含,则表示未指定级别类型。

选填。 在以下情况下,客户端不得在 SetElementState 中包含此字段: supported_controls 中未设置“DynamicsSupportedControls.LEVEL_TYPE”。

lookahead zx/Duration

先行时间。 如果未提供此项,则未指定先行时间。

选填。 在以下情况下,客户端不得在 SetElementState 中包含此字段: supported_controls 中未设置“DynamicsSupportedControls.LOOKAHEAD”。

linked_channels bool

关联的声道(对于双声道系统,又称链接立体声)。 如果不包含此项,则表示未指定“已关联的频道”选项。 如果为 true,则动态响应会应用于所有通道。 如果为 false,则每个通道都有自己的动态响应。

选填。 在以下情况下,客户端不得在 SetElementState 中包含此字段: supported_controls 中未设置“DynamicsSupportedControls.LINKED_CHANNELS”。

DynamicsElementState

fuchsia.hardware.audio.signalprocessing/dynamics.fidl 中定义

type 等于 DYNAMICSElement 的状态。

Ordinal字段类型说明
band_states vector<DynamicsBandState>[64]

每个 ID 必须与 Dynamics.bands 中的一个 ID 匹配,并且 ID 不能重复。 “band_states”必须至少有一个元素。 由 band_states 控制的频段由每个 band.id 决定。

元素

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

Ordinal字段类型说明
id ElementId

此元素的唯一 ID。此 ID 仅在 SignalProcessing 内 协议有效期,即与协议相关联的通道关闭为止。

必填。

type ElementType

正在处理元素类型。

必填。

type_specific TypeSpecificElement

处理元素的类型专用参数(如果包含)。

可选。

can_disable bool

如果包含此元素且值为 true,则可以通过以下方式停用处理元素: ElementSetState。 如果未提供此参数或为 false,处理元素将始终处于启用状态。

可选。

弃用

改用 can_bypass

移除:20
description string[256]

处理元素的文字说明(如果包含)。

可选。

can_stop bool

如果该参数包含且为 true,则可以通过 ElementSetState 停止处理元素。 如果未提供此参数或为 false,则处理元素始终会启动。

可选。

添加时间:20
can_bypass bool

如果该参数包含且为 true,则可以通过 ElementSetState 绕过处理元素。 如果未提供此参数或为 false,则无法绕过处理元素。

可选。

添加时间:20

ElementState

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

从驱动程序返回的元素的当前状态。请注意,此表包含 SettableElementState 中不存在的字段,因为这些字段无法由客户端设置。

Ordinal字段类型说明
type_specific TypeSpecificElementState

处理元素的类型专用状态参数(如果包含)。

如果此处理元素被停用,并且提供了其类型特定的状态,则 类型特有状态仅供参考(例如,已停止的元素的状态, 无需提供其他取代状态信息即可重新启动)。

可选。

enabled bool

处理元素的启用/停用状态。默认情况下,处理元素处于启用状态。 如果对应的 Element 返回的 can_disable 等于 false,则 此字段不能设为 false。 如果不包含 enabled,则当且仅当处理操作时,必须包含 state 元素当前已启用。

可选。

弃用

改用 bypassed

移除:20
latency Latency

如果包含,则在此处理元素 。此字段不得出现在 SetElementState state 中,因为 延迟时间不能由客户端设置,只能由服务器在 WatchElementState 条回复。

可选。

移除:20
vendor_specific_data vector<uint8>[4096]

如果包含,则为八位字节的不透明对象,用于交换供应商特定信息。

可选。

添加时间:HEAD
started bool

此处理元素的开始/停止状态。 如果为 true,则会启动与该元素关联的硬件。如果为 false,则停止。

默认情况下,系统会启动处理元素。

已停止的处理元素不提供其抽象功能。 具体而言,没有任何音频数据流经已停止的元素。

必填。

添加时间:20
bypassed bool

此处理元素的绕过状态。 如果为 true,将绕过与该元素关联的硬件。如果为 false,则不会绕过。

默认情况下,系统不会绕过处理元素。 如果对应的 Element 返回的 can_bypass 等于 false,则 此字段不能设置为 true

绕过的元素不会影响通过拓扑的音频流。

可选。

添加时间:20
turn_on_delay zx/Duration

如果包含,驾驶员对元素在某个元素上花费的时间的最准确估算值 在 started 从 false 更改为 true 后,让硬件进入完全运行模式。 在发生变更后,硬件可能需要一段时间才能进入完全运行模式 电源状态等

如果不考虑此延迟,那么音频流的初始帧可能会 音频元素开机时丢失的情况。 如果未添加此参数,则 turn_on_delay 未知。

可选。

添加时间:20
turn_off_delay zx/Duration

如果包含,驾驶员对元素在某个元素上花费的时间的最准确估算值 在 started 从 true 更改为 false 后,让硬件进入完全停用模式。 在发生变更后,硬件可能需要一段时间才能进入完全停止状态, 电源状态等

如果不考虑此延迟,发送/捕获的帧将多于 客户可能已经意识到,特别是在元素停用时。 如果未添加此参数,则 turn_off_delay 未知。

可选。

添加时间:20
processing_delay zx/Duration

如果包含,则驱动程序的最佳估算值(根据当前配置,包括 bypassed) 由此处理元素增加的延迟。

客户在确定对 最短准备时间(播放期间)和最短拍摄延迟时间(拍摄期间)。

对于 RING_BUFFER 类型的元素,此延迟不应包含固有延迟 由将数据复制到环形缓冲区和从环形缓冲区复制数据所需的临时缓冲所添加的 包含在 RingBufferProperties 字段 driver_transfer_bytes 中。

可选。

添加时间:20

端点

fuchsia.hardware.audio.signalprocessing/dai_interconnect.fidl 中定义

type 等于 ENDPOINTElement 的参数。

移除的数量:20 添加:12

Ordinal字段类型说明
type EndpointType

指定端点代表的内容。

必填。

plug_detect_capabilities PlugDetectCapabilities

插头检测功能。 必填。

EndpointElementState

fuchsia.hardware.audio.signalprocessing/dai_interconnect.fidl 中定义

type 等于 ENDPOINTElement 的状态。

移除的数量:20 添加:12

Ordinal字段类型说明
plug_state PlugState

如果包含,则用于检测此端点的插头状态。

对于服务器而言是必需的。

均衡器

fuchsia.hardware.audio.signalprocessing/equalizer.fidl 中定义

type 等于 EQUALIZERElement 的参数。

Ordinal字段类型说明
bands vector<EqualizerBand>[64]

此协议中的均衡器由多个频段构建,每个频段指定 参数,以及可通过 SetElementState 更改的 EqualizerElementStatebands 矢量的元素数决定了频段数 该处理元素支持的网络。

必填。

supported_controls EqualizerSupportedControls

此均衡器支持的控件。

可选。

can_disable_bands bool

如果该参数包含且为 true,则可以通过 SetElementState 停用各个频段。 如果该属性为 false 或 false,则频段将始终处于启用状态。 要使频段正常运行,必须启用其封装的均衡器处理元素。

可选。

min_frequency uint32

频段的最小频率(以 Hz 为单位)。

必填。

max_frequency uint32

频段的最大频率(以 Hz 为单位)。

必填。

max_q float32

频段的最大质量因数,通常用“Q”表示。 指示频率转换的狭窄程度。Q 值越高,意味着越窄 凹口/峰值和更陡的切口/搁架。必须为正数。

可选。

min_gain_db float32

最小增益(以 dB 为单位)。

可选,但如果存在 supported_controls 且包含 SUPPORTS_TYPE_PEAK,则为必需。 SUPPORTS_TYPE_LOW_SHELFSUPPORTS_TYPE_HIGH_SHELF

max_gain_db float32

最大增益(以 dB 为单位)。

可选,但如果存在 supported_controls 且包含 SUPPORTS_TYPE_PEAK,则为必需。 SUPPORTS_TYPE_LOW_SHELFSUPPORTS_TYPE_HIGH_SHELF

EqualizerBand

fuchsia.hardware.audio.signalprocessing/equalizer.fidl 中定义

均衡器频段的参数。

Ordinal字段类型说明
id uint64

此频段的唯一 ID,只需在相应的 Element,并且在与 SignalProcessing 关联的频道之前有效 因为这个协议已关闭

必填。

EqualizerBandState

fuchsia.hardware.audio.signalprocessing/equalizer.fidl 中定义

Element 中单个频段的状态,typeEQUALIZER

Ordinal字段类型说明
id uint64

频段的唯一 ID。必须与 Equalizer bands 中指定的某个 id 匹配。

必填。

type EqualizerBandType

腕带类型。

可选。

frequency uint32

频段的中心频率。

可选。

q float32

质量系数,通常表示为“Q”。 指示频率转换的狭窄程度。Q 值越高,意味着越窄 凹口/峰值和更陡的切口/搁架。必须为正数。

可选。

gain_db float32

增益(以 dB 为单位)。

可选,但对于 EqualizerBandType PEAKLOW_SHELFHIGH_SHELF 是必需的。 可能不会包含在 EqualizerBandType NOTCHLOW_CUTHIGH_CUT 中。

enabled bool

启用/停用频段。默认情况下,所有频段都处于启用状态。 通过将 ElementState.enabled 设置为 false 停用整个均衡器,并且不会更改此字段。一个乐队 功能。

可选。

EqualizerElementState

fuchsia.hardware.audio.signalprocessing/equalizer.fidl 中定义

type 等于 EQUALIZERElement 的状态。

Ordinal字段类型说明
bands_state vector<EqualizerBandState>[64]

bands_state 矢量的元素数量必须等于或小于 所返回的 bands 的元素数量 Equalizer。“bands_state”必须至少有一个元素。 由 bands_state 控制的频段由每个 band.id 决定。

必填。

移除:20
band_states vector<EqualizerBandState>[64]

band_states 矢量的元素数量必须等于或小于 所返回的 bands 的元素数量 Equalizer。“band_states”必须至少有一个元素。 由 band_states 控制的频段由每个 band.id 决定。

必填。

添加时间:20

收益

fuchsia.hardware.audio.signalprocessing/gain.fidl 中定义

type 等于 GAINElement 的参数。

Ordinal字段类型说明
type GainType

指定增益数字所代表的含义,例如百分比。

必填。

domain GainDomain

如果包含,则会在指定的 GainDomain 中应用增益。 如果不包含,则未指定增益域。

可选。

min_gain float32

最小增益值,采用 GainType 格式。

必填。

max_gain float32

最大增益值(GainType 格式)。

必填。

min_gain_step float32

采用 GainType 格式的最小增益步长,此值不能为负数,但可以为零到 0 能够传达出有效连续的一系列值。不得超过 max_gain - min_gain。 客户端可以通过 WatchElementState 调用来查询实际增益集。

必填。

GainElementState

fuchsia.hardware.audio.signalprocessing/gain.fidl 中定义

type 等于 GAINElement 的状态。

Ordinal字段类型说明
gain float32

当前增益,采用 GainType 格式。

必填。

PlugState

fuchsia.hardware.audio.signalprocessing/dai_interconnect.fidl 中定义

互连的插头状态。 如果驱动程序报告 plug_detect_capabilities 等于 HARDWIRED,则驱动程序应 WatchElementState仅在第一次为给定互连调用时进行响应, plugged 设置为 true,plug_state_time 设置为时间“0”。

添加时间:12

Ordinal字段类型说明
plugged bool

指示互连当前是否已插入。

必填

plug_state_time zx/Time

使用 ZX_CLOCK_MONOTONIC 指示当前 plugged 状态的设置时间。 不能为负数。

必填。

SettableElementState

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

可以由客户端设置的处理元素状态。

添加时间:20

Ordinal字段类型说明
type_specific SettableTypeSpecificElementState

处理元素的类型专用状态参数。

如果此处理元素被停用,并且提供了其类型特定的状态,则 类型特有状态仅供参考,例如,如果 SetElementState 启用了 停用了处理元素(提供 SettableTypeSpecificElementState),那么任何 已取代之前的信息类 SettableTypeSpecificElementState

如果未设置,则该元素之前的 type_specific 状态将保持不变。

对于动态、均衡器、增益和供应商特定类型,则为可选。 如果包含对于任何其他元素类型,则无效。

vendor_specific_data vector<uint8>[4096]

如果包含,则为八位字节的不透明对象,用于交换供应商特定信息。 这样就可以将供应商专用数据发送到任何元素,而不仅仅是 VendorSpecific 类型。

可选。

添加时间:HEAD
started bool

是否启动此处理元素(如果为 false,则停止该元素)。 已停止的处理元素不提供其抽象功能。 具体而言,没有任何音频数据流经已停止的元素。

如果对应的 Element 返回的 can_stop 等于 false,则此字段 不得设置为 false。 如果未设置,则该元素之前的 started 状态将保持不变。

可选。

bypassed bool

是否绕过此处理元素(如果为 false,则启用/“绕过”该元素)。 绕过的元素不会影响通过拓扑的音频流。 具体来说,音频流经元素,没有任何变化。

如果相应的 Element 包含 falsecan_bypass,则此字段 不得设置为 true。 如果未设置,则该元素之前的 bypassed 状态将保持不变。

可选。

拓扑学

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

Topology 指定处理元素在硬件中的一种排列方式。

Ordinal字段类型说明
id TopologyId

此拓扑的唯一 ID。此 ID 仅在 SignalProcessing 内 协议有效期,即与协议相关联的通道关闭为止。

必填。

processing_elements_edge_pairs vector<EdgePair>[64]

按此顺序处理元素的边缘对的矢量。 具有边对的处理元素按顺序形成流水线。 如需定义多个可能的流水线,请在 GetTopologies 中返回更多 Topology 条目。

必填。

VendorSpecific

fuchsia.hardware.audio.signalprocessing/vendor_specific.fidl 中定义

type 等于 VENDOR_SPECIFICElement 的参数。

Ordinal字段类型说明

VendorSpecificState

fuchsia.hardware.audio.signalprocessing/vendor_specific.fidl 中定义

type 等于 VENDOR_SPECIFICElement 的状态。

Ordinal字段类型说明

联合体

延迟时间(柔性

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

移除:20
Ordinal变体类型说明
latency_time zx/Duration

以 zx.Duration 的形式添加到流水线中的延迟时间。

latency_frames uint32

以帧数表示的向流水线添加的延迟时间。

Reader_GetElements_Result strict

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

Ordinal变体类型说明
response Reader_GetElements_Response
err zx/Status

Reader_GetTopologies_Result 严格

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

Ordinal变体类型说明
response Reader_GetTopologies_Response
err zx/Status

SettableTypeSpecificElementState flexible

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

可由客户端设置的特定于类型的处理元素状态。 处理元素控件的类型由本 并集。必须与ElementType 对应的 Element

添加时间:20
Ordinal变体类型说明
vendor_specific VendorSpecificState
gain GainElementState
equalizer EqualizerElementState
dynamics DynamicsElementState

SignalProcessing_SetElementState_Result 严格

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

Ordinal变体类型说明
response SignalProcessing_SetElementState_Response
err zx/Status

SignalProcessing_SetTopology_Result 严格

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

Ordinal变体类型说明
response SignalProcessing_SetTopology_Response
err zx/Status

TypeSpecificElement 柔性

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

Element 的类型专用参数。

Ordinal变体类型说明
vendor_specific VendorSpecific
gain Gain
equalizer Equalizer
dynamics Dynamics
endpoint Endpoint
移除的数量:20 添加:12
dai_interconnect DaiInterconnect
添加时间:20

TypeSpecificElementState flexible

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义

特定于类型的处理元素状态。 处理元素控件的类型由本 并集。必须与ElementType 对应的 Element

Ordinal变体类型说明
vendor_specific VendorSpecificState
gain GainElementState
equalizer EqualizerElementState
dynamics DynamicsElementState
endpoint EndpointElementState
移除的数量:20 添加:12
dai_interconnect DaiInterconnectElementState
添加时间:20

DynamicsSupportedControls 柔性环境

类型:uint64

fuchsia.hardware.audio.signalprocessing/dynamics.fidl 中定义

Dynamics支持的控件。 如果包含,则代表动态处理频段参数的每个位都可以更改 尽在 SetElementState

名称说明
1

如果包含 knee_width_db 参数,则可以更改该参数。

2

如果包含 attack 参数,则可以更改该参数。

4

如果包含 release 参数,则可以更改该参数。

8

如果包含 output_gain_db 参数,则可以更改该参数。

16

如果包含 input_gain_db 参数,则可以更改该参数。

32

如果包含 lookahead 参数,则可以更改该参数。

64

如果包含 level_type 参数,则可以更改该参数。

128

如果包含 linked_channels 参数,则可以更改该参数。

256

如果包含 threshold_type 参数,则可以更改该参数。

添加时间:20

EqualizerSupportedControls 柔性

类型:uint64

fuchsia.hardware.audio.signalprocessing/equalizer.fidl 中定义

Equalizer 中指定的均衡器支持的控件。

名称说明
1

如果包含,则可使用 SetElementState 更改均衡器频段的 frequency

2

如果包含,则可使用 SetElementState 更改均衡器频段的 q

4

如果包含,可以使用 SetElementState 更改均衡器频段的 type 发送至EqualizerBandType PEAK

8

如果包含,可以使用 SetElementState 更改均衡器频段的 type 发送至EqualizerBandType NOTCH

16

如果包含,可以使用 SetElementState 更改均衡器频段的 type 发送至EqualizerBandType LOW_CUT

32

如果包含,可以使用 SetElementState 更改均衡器频段的 type 发送至EqualizerBandType HIGH_CUT

64

如果包含,可以使用 SetElementState 更改均衡器频段的 type 发送至EqualizerBandType LOW_SHELF

128

如果包含,可以使用 SetElementState 更改均衡器频段的 type 发送至EqualizerBandType HIGH_SHELF

常量

名称类型说明
MAX_BYTES_ELEMENT_VENDOR_SPECIFIC 4096 uint32
添加时间:HEAD
MAX_COUNT_DYNAMICS_BANDS 64 uint32
MAX_COUNT_EQUALIZER_BANDS 64 uint32
MAX_COUNT_PROCESSING_ELEMENTS 64 uint32
MAX_COUNT_PROCESSING_ELEMENTS_EDGE_PAIRS 64 uint32
MAX_COUNT_TOPOLOGIES 64 uint32
MAX_STRING_SIZE 256 uint32

别名

名称说明
ElementId uint64
TopologyId uint64

服务

ConnectorService

fuchsia.hardware.audio.signalprocessing/connector.fidl 中定义

名称类型传输
连接器 fuchsia.hardware.audio.signalprocessing/Connector 频道