fuchsia.hardware.audio.signalprocessing

添加次数:7

协议

连接线

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

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

SignalProcessingConnect

连接到 SignalProcessing 协议。 可以支持多个连接,如果不支持新的连接请求(即,已创建最大连接数(例如一个),则 protocol 通道(而不是调用 SignalProcessingConnect 的通道)将以 ZX_ERR_ALREADY_BOUND epitaph 的形式关闭。如果完全不支持信号处理,则 protocol 通道(同样,而不是调用 SignalProcessingConnect 的通道)将以 ZX_ERR_NOT_SUPPORTED 音阶关闭。此方法命名为 SignalProcessingConnect(而不是 Connect),因为此协议旨在由系统组合而成,因此名称越详细,越便于区分,并且清晰度更高。

请求

名称类型
protocol server_end<SignalProcessing>

阅读者

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

如需了解概览,请参阅 [信号处理接口]

GetElements

返回受支持处理元素的矢量。 必须返回一个或多个处理元素,或者 ZX_ERR_NOT_SUPPORTED

请求

<EMPTY>

响应

名称类型
payload Reader_GetElements_Result

GetTopologies

返回受支持拓扑的矢量。必须返回一个或多个拓扑,或 ZX_ERR_NOT_SUPPORTED。如果返回多个拓扑,客户端可以使用 SetTopology 从列表中选择任何拓扑。如果仅返回一个拓扑,则拓扑定义仅供参考,因为使用的唯一拓扑无法通过 SetTopology 更改。如果 GetElements 返回一个或多个元素,则 GetTopologies 必须返回一个或多个拓扑。

请求

<EMPTY>

响应

名称类型
payload Reader_GetTopologies_Result

WatchElementState

通过挂起 get 获取处理元素状态。对于给定的 processing_element_id,驱动程序将回复客户端发送的第一个 WatchElementState。除非 Element 表中的任何字段从最近针对该 processing_element_id 报告的内容发生变化,否则驱动程序不会响应针对给定 processing_element_id 的后续客户端 WatchElementState 调用。如果在此客户端和 processing_element_id 已有待处理的 WatchElementState 的情况下再次调用此方法,驱动程序将关闭协议通道并显示错误 ZX_ERR_BAD_STATE

请求

名称类型
processing_element_id ElementId

响应

名称类型
state ElementState

WatchTopology

通过挂起 get 获取当前拓扑。 驱动程序将立即回复每个客户端发送的第一个 WatchTopology。在信号处理拓扑发生变更(因 SetTopology 调用而发生)之前,驱动程序不会响应来自该客户端的后续 WatchTopology 调用。如果在此客户端已有待处理的 WatchTopology 时再次调用此方法,驱动程序将以错误 ZX_ERR_BAD_STATE 关闭协议通道。

添加了:HEAD

请求

<EMPTY>

响应

名称类型
topology_id TopologyId

SignalProcessing

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

如需了解概览,请参阅 [信号处理接口]

GetElements

返回受支持处理元素的矢量。 必须返回一个或多个处理元素,或者 ZX_ERR_NOT_SUPPORTED

请求

<EMPTY>

响应

名称类型
payload Reader_GetElements_Result

GetTopologies

返回受支持拓扑的矢量。必须返回一个或多个拓扑,或 ZX_ERR_NOT_SUPPORTED。如果返回多个拓扑,客户端可以使用 SetTopology 从列表中选择任何拓扑。如果仅返回一个拓扑,则拓扑定义仅供参考,因为使用的唯一拓扑无法通过 SetTopology 更改。如果 GetElements 返回一个或多个元素,则 GetTopologies 必须返回一个或多个拓扑。

请求

<EMPTY>

响应

名称类型
payload Reader_GetTopologies_Result

SetElementState

使用由 GetElements 返回的唯一 ID 来控制处理元素。如果 processing_element_idGetElements 返回的 ID 不匹配,或者 TypeSpecificElementState 的类型与 GetElements 针对此 ID 返回的处理元素的 ElementType 不匹配,则返回 ZX_ERR_INVALID_ARGS。如果 state 值无效(即任何值违反此协议中指定的规则),驱动程序可能会返回 ZX_ERR_INVALID_ARGS,例如,当某个处理元素未在 supported_controls 中通告 CAN_CONTROL_FREQUENCY 时,试图更改 EQUALIZER 处理元素的 EqualizerBandState frequency

SetElementState 可以在非 SignalProcessing 协议调用之前或之后调用。如果在非 SignalProcessing 协议调用之后调用,则 SetElementState 可能需要(也可能不需要)与调用构成 SignalProcessing 的协议(例如 Dai)时重新协商所达到的驱动程序状态。例如,在 SetElementState 更改 AGL 处理元素的参数时,可能不需要重新协商 Dai 状态,因为更改增益参数通常不会更改受支持的音频格式集。相比之下,如果 SetElementState 更改了 CONNECTION_POINT 元素的参数,则该更改可能需要重新协商,因为它可能会使之前的 GetDaiFormats Dai 协议调用中返回的受支持格式集无效。

驱动程序负责确定何时需要重新协商。如果需要重新协商,则 SetElementState 必须返回 ZX_ERR_BAD_STATE,并且客户端必须关闭协议通道,以便重新开始协议协商。然后,客户端必须在任何非 SignalProcessing 协议调用之前进行返回 ZX_ERR_BAD_STATESetElementState 调用。

请求

名称类型
processing_element_id ElementId
state ElementState

响应

名称类型
payload SignalProcessing_SetElementState_Result

SetTopology

使用 GetTopologies 返回的向量 ID 设置要使用的拓扑。当前拓扑通过 WatchTopology 响应传达。如需更改处于活动状态的拓扑,客户端会使用 SetTopology。如果指定的 topology_id 未包含在 GetTopologies 返回的 topologies 内,则此调用将返回 ZX_ERR_INVALID_ARGS。如果 GetTopologies 仅返回一个 Topology,则 SetTopology 是可选的且不起作用。

SetTopology 可能会在非 SignalProcessing 协议调用之前或之后调用。如果在非 SignalProcessing 协议调用之后调用,则 SetTopology 可能会返回 ZX_ERR_BAD_STATE,以指示如果不重新协商驱动程序状态,操作将无法继续。如需进一步的讨论,请参阅 SetElementState

请求

名称类型
topology_id TopologyId

响应

名称类型
payload SignalProcessing_SetTopology_Result

WatchElementState

通过挂起 get 获取处理元素状态。对于给定的 processing_element_id,驱动程序将回复客户端发送的第一个 WatchElementState。除非 Element 表中的任何字段从最近针对该 processing_element_id 报告的内容发生变化,否则驱动程序不会响应针对给定 processing_element_id 的后续客户端 WatchElementState 调用。如果在此客户端和 processing_element_id 已有待处理的 WatchElementState 的情况下再次调用此方法,驱动程序将关闭协议通道并显示错误 ZX_ERR_BAD_STATE

请求

名称类型
processing_element_id ElementId

响应

名称类型
state ElementState

WatchTopology

通过挂起 get 获取当前拓扑。 驱动程序将立即回复每个客户端发送的第一个 WatchTopology。在信号处理拓扑发生变更(因 SetTopology 调用而发生)之前,驱动程序不会响应来自该客户端的后续 WatchTopology 调用。如果在此客户端已有待处理的 WatchTopology 时再次调用此方法,驱动程序将以错误 ZX_ERR_BAD_STATE 关闭协议通道。

添加了:HEAD

请求

<EMPTY>

响应

名称类型
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 中定义

<EMPTY>

SignalProcessing_SetTopology_Response

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

<EMPTY>

枚举

ElementType 柔性环境

类型:uint32

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

名称说明
1

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

3

控制流水线混合和路由。

4

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

5

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

6

自动增益限制器。 自动将信号电平保持在指定的电平之下。 低于该音量的输入不受影响,并且高于该音量的峰值会减弱。

7

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

8

忽略。

9

延迟。

10

均衡器。

11

采样率转换。

12

流水线的开始/结束位置。

添加数量:12

EndpointType 灵活

类型:uint8

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

端点类型。

添加数量:12

名称说明
1

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

2

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

EqualizerBandType 灵活

类型:uint64

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

均衡器频段的类型。

名称说明
1

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

2

窄带拒绝使用可选的 q,会显著减弱 frequency

3

使用可选的 q(也称为高通路)将增益降至 frequency 以下。

4

使用可选的 q(也称为低通路)来降低高于 frequency 的增益。

5

将增益降至 frequency 以下,并达到 gain_db 量,并形成平台效应。

6

将增益降至高于 frequency 时,达到 gain_db 量,并形成平台效应。

GainDomain 灵活

类型:uint8

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

增益的硬件域,例如 ANALOG。

名称说明
1

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

2

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

3

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

增益类型严格

类型: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

以 RMS 为单位的等级。

ConnectorDetectCapabilities 灵活

类型:uint32

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

端点的插头检测功能。

添加数量:12

名称说明
0

端点为有线连接(将始终接通电源)。

1

端点可以拔下再插上,并且可以异步通知插头状态变化。

ThresholdType 严格

类型:uint8

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

阈值类型。

名称说明
1

在阈值以上进行动态处理。

2

应用动态处理,以低于阈值。

动力学

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

type 等于 DYNAMICSElement 的参数。

序数野战类型说明
bands vector<DynamicsBand>[64]

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

(必填)。必须包含至少一个条目。

supported_controls DynamicsSupportedControls

此处理元素支持的控件。

可选。

DynamicsBand

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

Dynamics 元素频段的参数。

序数野战类型说明
id uint64

此频段的唯一 ID,只需要在相应 Element 中是唯一的,并且在与 SignalProcessing 协议关联的通道关闭之前有效。

必选。

DynamicsBandState

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

Element 中单个频段的状态,type 等于 DYNAMICS。即使客户端无法更改控制频段字段(即未在 supported_controls 中设置这些位),服务器也可能会包含控制频段字段。

序数野战类型说明
id uint64

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

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 时应用动态处理。

对服务器而言是必需的。如果 supported_controls 中未设置 DynamicsSupportedControls.THRESHOLD_TYPE,则客户端不得在 SetElementState 中包含此字段。

ratio float32

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

必选。

knee_width_db float32

膝盖区域的宽度(以输入 dB 为单位)。如果存在,则不能为负数。 如果未添加这项属性,则未指定膝盖区域的宽度。 零表示“硬”膝盖;值越大表示“软”膝部。 此膝关节以threshold_db为中心。

可选。 如果 supported_controls 中未设置 DynamicsSupportedControls.KNEE_WIDTH,则客户端不得在 SetElementState 中包含此字段。

attack zx/Duration

攻击时间。 如果未添加此属性,则未指定攻击时间。

可选。 如果 supported_controls 中未设置 DynamicsSupportedControls.ATTACK,则客户端不得在 SetElementState 中包含此字段。

release zx/Duration

发布时间。 如果您未添加该属性,则未指定发布时间。

可选。 如果 supported_controls 中未设置 DynamicsSupportedControls.RELEASE,则客户端不得在 SetElementState 中包含此字段。

output_gain_db float32

输出(也称为补全或后置)增益值(以 dB 为单位)。 如果未指定,则未指定输出增益。

可选。 如果 supported_controls 中未设置 DynamicsSupportedControls.OUTPUT_GAIN,则客户端不得在 SetElementState 中包含此字段。

input_gain_db float32

输入(也称为预)增益值(以 dB 为单位)。 如果未指定,则未指定输入增益。

可选。 如果 supported_controls 中未设置 DynamicsSupportedControls.INPUT_GAIN,则客户端不得在 SetElementState 中包含此字段。

level_type LevelType

等级类型(峰值或 RMS)。 如果未添加,则表示级别类型未指定。

可选。 如果 supported_controls 中未设置 DynamicsSupportedControls.LEVEL_TYPE,则客户端不得在 SetElementState 中包含此字段。

lookahead zx/Duration

提前时间。 如果未添加,则未指定先行时间。

可选。 如果 supported_controls 中未设置 DynamicsSupportedControls.LOOKAHEAD,则客户端不得在 SetElementState 中包含此字段。

linked_channels bool

关联频道(也称为“关联的立体声”,适用于双声道系统)。 如果未提供此项,则未指定“关联的频道”选项。 如果为 true,则动态响应将应用于所有渠道。 如果为 false,每个渠道都有自己的动态响应。

可选。 如果 supported_controls 中未设置 DynamicsSupportedControls.LINKED_CHANNELS,则客户端不得在 SetElementState 中包含此字段。

DynamicsElementState

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

type 等于 DYNAMICSElement 的状态。

序数野战类型说明
band_states vector<DynamicsBandState>[64]

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

元素

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

序数野战类型说明
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 中定义

序数野战类型说明
type_specific TypeSpecificElementState

如果包含,则是处理元素的特定类型状态参数。

如果此处理元素已停用,并且提供了其类型特有状态,则特定于类型的状态仅供参考。例如,如果 SetElementState 启用了提供 TypeSpecificElementState 的已停用处理元素,则之前提供的所有信息 TypeSpecificElementState 将被取代。

可选。

enabled bool

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

可选。

弃用

改用 bypassed

已弃用:20
latency Latency

如果包含此字段,则表示在启用此处理元素的情况下,会增加多长的延迟时间。此字段不得出现在 SetElementState state 中,因为客户端无法设置延迟时间,只能由服务器在 WatchElementState 回复中提供。

可选。

vendor_specific_data vector<uint8>[4096]

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

可选。

添加了:HEAD
started bool

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

默认情况下,系统会启动处理元素。如果相应的 Element 返回的 can_stop 等于 false,则此字段不能设置为 false

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

必选。

添加数量:20
bypassed bool

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

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

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

可选。

添加数量:20
turn_on_delay zx/Duration

如果包含此字段,则驱动程序在 started 从 false 更改为 true 后,元素硬件进入完全运行模式所需的时间(以纳秒为单位)的最佳估算值。

此字段不应出现在 SetElementState state 中,因为客户端无法设置 turn_on_delay。它可以由服务器在 WatchElementState 回复中提供。

硬件可能需要一段时间才能进入完全运行模式,例如当电源状态发生变化时。如果无法接受播放或捕获初始音频样本,则必须将这种延迟考虑在内。如果未提供,则 turn_on_delay 未知。

可选。

添加数量:20
turn_off_delay zx/Duration

如果添加了此参数,在 ElementStatestarted 从 true 更改为 false 后,驱动程序对元素硬件进入完全停用模式所需的时间(以纳秒为单位)的最佳估算值。

此字段不应出现在 SetElementState state 中,因为客户端无法设置 turn_off_delay。它可以由服务器在 WatchElementState 回复中提供。

硬件可能需要一段时间才能进入完全停用模式,例如由于电源状态发生变化。如果在停用处理元素之后无法对音频样本进行音频处理,则必须考虑这种延迟。如果不添加此属性,则关闭延迟时间未知。

可选。

添加数量:20

端点

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

type 等于 ENDPOINTElement 的参数。

添加数量:12

序数野战类型说明
type EndpointType

指定端点所代表的含义。

必选。

plug_detect_capabilities PlugDetectCapabilities

插头检测功能。 必选。

EndpointElementState

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

type 等于 ENDPOINTElement 的状态。

添加数量:12

序数野战类型说明
plug_state PlugState

如果包含插头检测此端点的状态。

此字段不应出现在 SetElementState state 中,因为客户端无法设置插头状态。它必须由服务器在 WatchElementState 回复中提供。

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

均衡器

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

type 等于 EQUALIZERElement 的参数。

序数野战类型说明
bands vector<EqualizerBand>[64]

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

必选。

supported_controls EqualizerSupportedControls

此均衡器支持的控件。

可选。

can_disable_bands bool

如果包含且为 true,则可以通过 SetElementState 停用各个频段。如果未包含或为 false,频段将始终启用。为使频段正常工作,必须启用其封闭均衡器处理元素。

可选。

min_frequency uint32

频段的最低频率,以 Hz 为单位。

必选。

max_frequency uint32

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

必选。

max_q float32

频段的最大质量系数,通常用“Q”表示。 表示频率转换有多窄。Q 值越高,刻度/峰值越窄,切口/搁架越陡。必须为正值。

可选。

min_gain_db float32

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

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

max_gain_db float32

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

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

EqualizerBand

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

均衡器频段的参数。

序数野战类型说明
id uint64

此频段的唯一 ID,只需要在相应 Element 中是唯一的,并且在与 SignalProcessing 协议关联的通道关闭之前有效。

必选。

EqualizerBandState

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

Element 中单个频段的状态,type 等于 EQUALIZER

序数野战类型说明
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 的状态。

序数野战类型说明
band_states vector<EqualizerBandState>[64]

band_states 矢量的元素数量必须等于或小于在相应 Equalizer 中返回的 bands 中的元素数量。band_states 必须至少包含一个元素。由 band_states 控制的频段由每个 band.id 决定。

必选。

添加数量:20

增益

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

type 等于 GAINElement 的参数。

序数野战类型说明
type GainType

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

必选。

domain GainDomain

如果添加了相应增益,则会在指定的 GainDomain 中应用增益。如果未添加,增益域将未指定。

可选。

min_gain float32

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

必选。

max_gain float32

最大增益值(GainType 格式)。

必选。

min_gain_step float32

GainType 格式的最小增益步长,此值不能为负数,但可以为零才能传达有效连续的值范围。不得超过 max_gain - min_gain。 客户端可能会通过调用 WatchElementState 查询实际增益设置。

必选。

GainElementState

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

type 等于 GAINElement 的状态。

序数野战类型说明
gain float32

当前增益(GainType 格式)。

必选。

PlugState

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

端点的插头状态。 如果驱动程序报告的 plug_detect_capabilities 等于 HARDWIRED,则驱动程序应仅在针对给定端点首次调用它时响应 WatchElementState,并将 plugged 设置为 true,将 plug_state_time 设置为时间“0”。

添加数量:12

序数野战类型说明
plugged bool

端点当前已插入。

必需

plug_state_time zx/Time

此表其他字段中提供的信息的时间戳(使用 ZX_CLOCK_MONOTONIC)。表示此表所述的转换发生的时间。

必选。

拓扑学

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

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

序数野战类型说明
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 的参数。

序数野战类型说明

VendorSpecificState

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

type 等于 VENDOR_SPECIFICElement 的状态。

序数野战类型说明

联合

延迟时间灵活

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

序数变体类型说明
latency_time zx/Duration

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

latency_frames uint32

以帧数的形式添加到流水线的延迟时间。

Reader_GetElements_Result 严格

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

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

Reader_GetTopologies_Result 严格

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

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

SignalProcessing_SetElementState_Result 严格

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

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

SignalProcessing_SetTopology_Result 严格

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

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

TypeSpecificElement 灵活

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

Element 的类型特定参数。

序数变体类型说明
vendor_specific VendorSpecific
gain Gain
equalizer Equalizer
dynamics Dynamics
endpoint Endpoint
添加数量:12

TypeSpecificElementState灵活

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

特定于类型的处理元素状态。 处理元素控件的类型由此联合中提供的参数类型定义。必须与相应 Element 中相应 ElementType 条目中返回的类型一致。

序数变体类型说明
vendor_specific VendorSpecificState
gain GainElementState
equalizer EqualizerElementState
dynamics DynamicsElementState
endpoint EndpointElementState
添加数量:12

BITS

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 频道