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
时,系统会再次调用该方法。
请求
<空>
响应
名称 | 类型 |
---|---|
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 来控制处理元素。
请注意,SettableElementState
是 ElementState
的子集,因为返回的某些字段
来自 WatchElementState
的数据(例如 latency
)只能由客户端观察到(未设置)。
如果 processing_element_id
与返回的 ID 不匹配,则返回 ZX_ERR_INVALID_ARGS
或者“SettableTypeSpecificElementState
”的类型不符合GetElements
与ElementType
此 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
时,系统会再次调用该方法。
请求
<空>
响应
名称 | 类型 |
---|---|
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 中定义
名称 | 值 | 说明 |
---|---|---|
VENDOR_SPECIFIC |
1 |
供应商特定。任何后续类型定义都不涵盖的处理元素类型。 |
CONNECTION_POINT |
3 |
控制流水线通道混合和路由。 |
收获 |
4 |
增益控制,又称为音量控制。 |
AUTOMATIC_GAIN_CONTROL |
5 |
自动增益控制。 不管输入信号如何变化,自动维持合适的信号电平。 |
AUTOMATIC_GAIN_LIMITER |
6 |
自动增益限制器。 自动将信号电平维持在指定的水平以下。 低于该水平的输入不受影响,高于该水平的峰值会衰减。 |
动态 |
7 |
更改信号的动态范围,例如动态范围压缩。 |
静音 |
8 |
忽略。 |
DELAY |
9 |
延迟。 |
EQUALIZER |
10 |
均衡器。 |
SAMPLE_RATE_CONVERSION |
11 |
采样率转换。 |
端点 |
12 |
流水线的开始/结束。 移除的数量:20 添加:12
|
RING_BUFFER |
13 |
环形缓冲区。 这是可以启动/结束处理流水线的两种元素中的第一种。 添加时间:20
|
DAI_INTERCONNECT |
14 |
数字音频接口互连。 这是可以启动/结束处理流水线的两种元素中的第二种。 添加时间:20
|
EndpointType 柔性
类型:uint8
在 fuchsia.hardware.audio.signalprocessing/dai_interconnect.fidl 中定义
端点类型。
名称 | 值 | 说明 |
---|---|---|
RING_BUFFER |
1 |
端点代表一个环形缓冲区。 环形缓冲区处理元素的 ID 允许多环缓冲区拓扑 提供 fuchsia.hardware.audio/Composite API 的驱动程序支持。 |
DAI_INTERCONNECT |
2 |
端点代表数字音频接口互连, 例如将 SoC 音频子系统连接到 DAC + 放大器硬件编解码器。 |
EqualizerBandType 柔性
类型:uint64
在 fuchsia.hardware.audio.signalprocessing/equalizer.fidl 中定义
均衡器频段的类型。
名称 | 值 | 说明 |
---|---|---|
PEAK |
1 |
在具有可选 |
凹口 |
2 |
窄带被拒会严重削弱 |
LOW_CUT |
3 |
通过可选的 |
HIGH_CUT |
4 |
通过可选的 |
LOW_SHELF |
5 |
将增益降至 |
HIGH_SHELF |
6 |
将增益降至 |
GainDomain flexible
类型:uint8
在 fuchsia.hardware.audio.signalprocessing/gain.fidl 中定义
增益的硬件域,例如ANALOG。
名称 | 值 | 说明 |
---|---|---|
数字 |
1 |
处理元素增益适用于数字领域。 |
ANALOG |
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 中定义
等级类型。
名称 | 值 | 说明 |
---|---|---|
PEAK |
1 |
等级增益已指定为峰值。 |
RMS |
2 |
水平被指定为均方根。 |
LuxeDetectCapabilities 柔性
类型:uint32
在 fuchsia.hardware.audio.signalprocessing/dai_interconnect.fidl 中定义
互连的插头检测功能。
名称 | 值 | 说明 |
---|---|---|
硬 |
0 |
互连采用硬线方式(将始终插入)。 |
CAN_ASYNC_NOTIFY |
1 |
互连可以拔出/插入,并且可以异步通知插头状态变化。 |
ThresholdType 严格
类型:uint8
在 fuchsia.hardware.audio.signalprocessing/dynamics.fidl 中定义
阈值类型。
名称 | 值 | 说明 |
---|---|---|
ABOVE |
1 |
应用高于阈值的动态处理。 |
低于 |
2 |
应用低于阈值的动态处理。 |
表
DaiInterconnect
在 fuchsia.hardware.audio.signalprocessing/dai_interconnect.fidl 中定义
type
等于 DAI_INTERCONNECT
的 Element
的参数。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
plug_detect_capabilities |
PlugDetectCapabilities
|
插头检测功能。 必填。 |
DaiInterconnectElementState
在 fuchsia.hardware.audio.signalprocessing/dai_interconnect.fidl 中定义
type
等于 DAI_INTERCONNECT
的 Element
的状态。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
plug_state |
PlugState
|
此 DAI 互连的插头状态。 必填。 |
2 |
external_delay |
zx/Duration
|
驱动程序对超出此 DAI 端点的外部延迟的最优估算值,作为流水线 当前已配置。 在确定要求时,客户必须考虑 如果未提供此参数,则 可选。 |
动力学
在 fuchsia.hardware.audio.signalprocessing/dynamics.fidl 中定义
type
等于 DYNAMICS
的 Element
的参数。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
bands |
vector<DynamicsBand>[64]
|
此协议中的 必需。必须包含至少一个条目。 |
2 |
supported_controls |
DynamicsSupportedControls
|
此处理元素支持的控件。 可选。 |
DynamicsBand
在 fuchsia.hardware.audio.signalprocessing/dynamics.fidl 中定义
Dynamics
元素频段的参数。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
id |
uint64
|
此频段的唯一 ID,只需在相应的
必填。 |
DynamicsBandState
在 fuchsia.hardware.audio.signalprocessing/dynamics.fidl 中定义
Element
中单个频段的状态,type
为 DYNAMICS
。
服务器可能会包含控制频段字段,即使
(即未在 supported_controls
中设置这些位)。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
id |
uint64
|
频段的唯一 ID。必须与 |
2 |
min_frequency |
uint32
|
频段的最低频率(以 Hz 为单位)。 此字段可以是 0,例如,对于单频段动态处理,用于指定 (以及 max_frequency)表明频段处于全范围。 |
3 |
max_frequency |
uint32
|
频段的最大频率(以 Hz 为单位)。 此字段可以是奈奎斯特频率,例如对于单频段动态 以指定频段为全范围(连同 min_frequency)。 必填。 |
4 |
threshold_db |
float32
|
动态主处理开始后的值(受
必填。 |
5 |
threshold_type |
ThresholdType
|
动态处理应用于 对于服务器而言是必需的。
在以下情况下,客户端不得在 |
6 |
ratio |
float32
|
高于或低于(请参阅 必填。 |
7 |
knee_width_db |
float32
|
膝部区域的宽度(以输入 dB 为单位)。如果存在,则不能为负数。
如果未添加,则未指定膝部区域的宽度。
值 0 表示“硬”膝盖;值越大,则越“柔和”膝盖。
这条膝盖位于 选填。
在以下情况下,客户端不得在 |
8 |
attack |
zx/Duration
|
攻击时间。 如果未提供此参数,则未指定攻击时间。 选填。
在以下情况下,客户端不得在 |
9 |
release |
zx/Duration
|
发布时间。 如果未提供此参数,则未指定发布时间。 选填。
在以下情况下,客户端不得在 |
10 |
output_gain_db |
float32
|
输出(即弥补或后置)增益值(以 dB 为单位)。 如果不包含,则未指定输出增益。 选填。
在以下情况下,客户端不得在 |
11 |
input_gain_db |
float32
|
以 dB 为单位的输入(又称为前置)增益值。 如果不包含,则未指定输入增益。 选填。
在以下情况下,客户端不得在 |
12 |
level_type |
LevelType
|
水平类型(峰值或均方根)。 如果不包含,则表示未指定级别类型。 选填。
在以下情况下,客户端不得在 |
13 |
lookahead |
zx/Duration
|
先行时间。 如果未提供此项,则未指定先行时间。 选填。
在以下情况下,客户端不得在 |
14 |
linked_channels |
bool
|
关联的声道(对于双声道系统,又称链接立体声)。 如果不包含此项,则表示未指定“已关联的频道”选项。 如果为 true,则动态响应会应用于所有通道。 如果为 false,则每个通道都有自己的动态响应。 选填。
在以下情况下,客户端不得在 |
DynamicsElementState
在 fuchsia.hardware.audio.signalprocessing/dynamics.fidl 中定义
type
等于 DYNAMICS
的 Element
的状态。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
band_states |
vector<DynamicsBandState>[64]
|
每个 ID 必须与 |
元素
在 fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
id |
ElementId
|
此元素的唯一 ID。此 ID 仅在 必填。 |
2 |
type |
ElementType
|
正在处理元素类型。 必填。 |
3 |
type_specific |
TypeSpecificElement
|
处理元素的类型专用参数(如果包含)。 可选。 |
4 |
can_disable |
bool
|
如果包含此元素且值为 true,则可以通过以下方式停用处理元素:
可选。 弃用改用 移除:20
|
5 |
description |
string[256]
|
处理元素的文字说明(如果包含)。 可选。 |
6 |
can_stop |
bool
|
如果该参数包含且为 true,则可以通过 可选。 添加时间:20
|
7 |
can_bypass |
bool
|
如果该参数包含且为 true,则可以通过 可选。 添加时间:20
|
ElementState
在 fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义
从驱动程序返回的元素的当前状态。请注意,此表包含
SettableElementState
中不存在的字段,因为这些字段无法由客户端设置。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
type_specific |
TypeSpecificElementState
|
处理元素的类型专用状态参数(如果包含)。 如果此处理元素被停用,并且提供了其类型特定的状态,则 类型特有状态仅供参考(例如,已停止的元素的状态, 无需提供其他取代状态信息即可重新启动)。 可选。 |
2 |
enabled |
bool
|
处理元素的启用/停用状态。默认情况下,处理元素处于启用状态。
如果对应的 可选。 弃用改用 移除:20
|
3 |
latency |
Latency
|
如果包含,则在此处理元素
。此字段不得出现在 可选。 移除:20
|
4 |
vendor_specific_data |
vector<uint8>[4096]
|
如果包含,则为八位字节的不透明对象,用于交换供应商特定信息。 可选。 添加时间:HEAD
|
5 |
started |
bool
|
此处理元素的开始/停止状态。 如果为 true,则会启动与该元素关联的硬件。如果为 false,则停止。 默认情况下,系统会启动处理元素。 已停止的处理元素不提供其抽象功能。 具体而言,没有任何音频数据流经已停止的元素。 必填。 添加时间:20
|
6 |
bypassed |
bool
|
此处理元素的绕过状态。 如果为 true,将绕过与该元素关联的硬件。如果为 false,则不会绕过。 默认情况下,系统不会绕过处理元素。
如果对应的 绕过的元素不会影响通过拓扑的音频流。 可选。 添加时间:20
|
7 |
turn_on_delay |
zx/Duration
|
如果包含,驾驶员对元素在某个元素上花费的时间的最准确估算值
在 如果不考虑此延迟,那么音频流的初始帧可能会
音频元素开机时丢失的情况。
如果未添加此参数,则 可选。 添加时间:20
|
8 |
turn_off_delay |
zx/Duration
|
如果包含,驾驶员对元素在某个元素上花费的时间的最准确估算值
在 如果不考虑此延迟,发送/捕获的帧将多于
客户可能已经意识到,特别是在元素停用时。
如果未添加此参数,则 可选。 添加时间:20
|
9 |
processing_delay |
zx/Duration
|
如果包含,则驱动程序的最佳估算值(根据当前配置,包括 客户在确定对 最短准备时间(播放期间)和最短拍摄延迟时间(拍摄期间)。 对于 可选。 添加时间:20
|
端点
在 fuchsia.hardware.audio.signalprocessing/dai_interconnect.fidl 中定义
type
等于 ENDPOINT
的 Element
的参数。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
type |
EndpointType
|
指定端点代表的内容。 必填。 |
2 |
plug_detect_capabilities |
PlugDetectCapabilities
|
插头检测功能。 必填。 |
EndpointElementState
在 fuchsia.hardware.audio.signalprocessing/dai_interconnect.fidl 中定义
type
等于 ENDPOINT
的 Element
的状态。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
plug_state |
PlugState
|
如果包含,则用于检测此端点的插头状态。 对于服务器而言是必需的。 |
均衡器
在 fuchsia.hardware.audio.signalprocessing/equalizer.fidl 中定义
type
等于 EQUALIZER
的 Element
的参数。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
bands |
vector<EqualizerBand>[64]
|
此协议中的均衡器由多个频段构建,每个频段指定
参数,以及可通过 必填。 |
2 |
supported_controls |
EqualizerSupportedControls
|
此均衡器支持的控件。 可选。 |
3 |
can_disable_bands |
bool
|
如果该参数包含且为 true,则可以通过 可选。 |
4 |
min_frequency |
uint32
|
频段的最小频率(以 Hz 为单位)。 必填。 |
5 |
max_frequency |
uint32
|
频段的最大频率(以 Hz 为单位)。 必填。 |
6 |
max_q |
float32
|
频段的最大质量因数,通常用“Q”表示。 指示频率转换的狭窄程度。Q 值越高,意味着越窄 凹口/峰值和更陡的切口/搁架。必须为正数。 可选。 |
7 |
min_gain_db |
float32
|
最小增益(以 dB 为单位)。 可选,但如果存在 |
8 |
max_gain_db |
float32
|
最大增益(以 dB 为单位)。 可选,但如果存在 |
EqualizerBand
在 fuchsia.hardware.audio.signalprocessing/equalizer.fidl 中定义
均衡器频段的参数。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
id |
uint64
|
此频段的唯一 ID,只需在相应的
必填。 |
EqualizerBandState
在 fuchsia.hardware.audio.signalprocessing/equalizer.fidl 中定义
Element
中单个频段的状态,type
为 EQUALIZER
。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
id |
uint64
|
频段的唯一 ID。必须与 必填。 |
2 |
type |
EqualizerBandType
|
腕带类型。 可选。 |
3 |
frequency |
uint32
|
频段的中心频率。 可选。 |
4 |
q |
float32
|
质量系数,通常表示为“Q”。 指示频率转换的狭窄程度。Q 值越高,意味着越窄 凹口/峰值和更陡的切口/搁架。必须为正数。 可选。 |
5 |
gain_db |
float32
|
增益(以 dB 为单位)。 可选,但对于 |
6 |
enabled |
bool
|
启用/停用频段。默认情况下,所有频段都处于启用状态。
通过将 可选。 |
EqualizerElementState
在 fuchsia.hardware.audio.signalprocessing/equalizer.fidl 中定义
type
等于 EQUALIZER
的 Element
的状态。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
bands_state |
vector<EqualizerBandState>[64]
|
必填。 移除:20
|
2 |
band_states |
vector<EqualizerBandState>[64]
|
必填。 添加时间:20
|
收益
在 fuchsia.hardware.audio.signalprocessing/gain.fidl 中定义
type
等于 GAIN
的 Element
的参数。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
type |
GainType
|
指定增益数字所代表的含义,例如百分比。 必填。 |
2 |
domain |
GainDomain
|
如果包含,则会在指定的 可选。 |
3 |
min_gain |
float32
|
最小增益值,采用 必填。 |
4 |
max_gain |
float32
|
最大增益值( 必填。 |
5 |
min_gain_step |
float32
|
采用 必填。 |
GainElementState
在 fuchsia.hardware.audio.signalprocessing/gain.fidl 中定义
type
等于 GAIN
的 Element
的状态。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
gain |
float32
|
当前增益,采用 必填。 |
PlugState
在 fuchsia.hardware.audio.signalprocessing/dai_interconnect.fidl 中定义
互连的插头状态。
如果驱动程序报告 plug_detect_capabilities
等于 HARDWIRED,则驱动程序应
WatchElementState
仅在第一次为给定互连调用时进行响应,
plugged
设置为 true,plug_state_time
设置为时间“0”。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
plugged |
bool
|
指示互连当前是否已插入。 必填 |
2 |
plug_state_time |
zx/Time
|
使用 必填。 |
SettableElementState
在 fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义
可以由客户端设置的处理元素状态。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
type_specific |
SettableTypeSpecificElementState
|
处理元素的类型专用状态参数。 如果此处理元素被停用,并且提供了其类型特定的状态,则
类型特有状态仅供参考,例如,如果 如果未设置,则该元素之前的 对于动态、均衡器、增益和供应商特定类型,则为可选。 如果包含对于任何其他元素类型,则无效。 |
2 |
vendor_specific_data |
vector<uint8>[4096]
|
如果包含,则为八位字节的不透明对象,用于交换供应商特定信息。 这样就可以将供应商专用数据发送到任何元素,而不仅仅是 VendorSpecific 类型。 可选。 添加时间:HEAD
|
3 |
started |
bool
|
是否启动此处理元素(如果为 false,则停止该元素)。 已停止的处理元素不提供其抽象功能。 具体而言,没有任何音频数据流经已停止的元素。 如果对应的 可选。 |
4 |
bypassed |
bool
|
是否绕过此处理元素(如果为 false,则启用/“绕过”该元素)。 绕过的元素不会影响通过拓扑的音频流。 具体来说,音频流经元素,没有任何变化。 如果相应的 可选。 |
拓扑学
在 fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义
Topology
指定处理元素在硬件中的一种排列方式。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
id |
TopologyId
|
此拓扑的唯一 ID。此 ID 仅在 必填。 |
2 |
processing_elements_edge_pairs |
vector<EdgePair>[64]
|
按此顺序处理元素的边缘对的矢量。
具有边对的处理元素按顺序形成流水线。
如需定义多个可能的流水线,请在 必填。 |
VendorSpecific
在 fuchsia.hardware.audio.signalprocessing/vendor_specific.fidl 中定义
type
等于 VENDOR_SPECIFIC
的 Element
的参数。
Ordinal | 字段 | 类型 | 说明 |
---|
VendorSpecificState
在 fuchsia.hardware.audio.signalprocessing/vendor_specific.fidl 中定义
type
等于 VENDOR_SPECIFIC
的 Element
的状态。
Ordinal | 字段 | 类型 | 说明 |
---|
联合体
延迟时间(柔性)
在 fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
latency_time |
zx/Duration
|
以 zx.Duration 的形式添加到流水线中的延迟时间。 |
2 |
latency_frames |
uint32
|
以帧数表示的向流水线添加的延迟时间。 |
Reader_GetElements_Result strict
在 fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Reader_GetElements_Response
|
|
2 |
err |
zx/Status
|
Reader_GetTopologies_Result 严格
在 fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Reader_GetTopologies_Response
|
|
2 |
err |
zx/Status
|
SettableTypeSpecificElementState flexible
在 fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义
可由客户端设置的特定于类型的处理元素状态。
处理元素控件的类型由本
并集。必须与ElementType
对应的 Element
。
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
vendor_specific |
VendorSpecificState
|
|
2 |
gain |
GainElementState
|
|
3 |
equalizer |
EqualizerElementState
|
|
4 |
dynamics |
DynamicsElementState
|
SignalProcessing_SetElementState_Result 严格
在 fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
SignalProcessing_SetElementState_Response
|
|
2 |
err |
zx/Status
|
SignalProcessing_SetTopology_Result 严格
在 fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
SignalProcessing_SetTopology_Response
|
|
2 |
err |
zx/Status
|
TypeSpecificElement 柔性
在 fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义
Element
的类型专用参数。
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
vendor_specific |
VendorSpecific
|
|
2 |
gain |
Gain
|
|
3 |
equalizer |
Equalizer
|
|
4 |
dynamics |
Dynamics
|
|
5 |
endpoint |
Endpoint
|
移除的数量:20 添加:12
|
6 |
dai_interconnect |
DaiInterconnect
|
添加时间:20
|
TypeSpecificElementState flexible
在 fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定义
特定于类型的处理元素状态。
处理元素控件的类型由本
并集。必须与ElementType
对应的 Element
。
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
vendor_specific |
VendorSpecificState
|
|
2 |
gain |
GainElementState
|
|
3 |
equalizer |
EqualizerElementState
|
|
4 |
dynamics |
DynamicsElementState
|
|
5 |
endpoint |
EndpointElementState
|
移除的数量:20 添加:12
|
6 |
dai_interconnect |
DaiInterconnectElementState
|
添加时间:20
|
位
DynamicsSupportedControls 柔性环境
类型:uint64
在 fuchsia.hardware.audio.signalprocessing/dynamics.fidl 中定义
Dynamics
支持的控件。
如果包含,则代表动态处理频段参数的每个位都可以更改
尽在 SetElementState
。
名称 | 值 | 说明 |
---|---|---|
KNEE_WIDTH |
1 | 如果包含 |
攻击 |
2 | 如果包含 |
发布 |
4 | 如果包含 |
OUTPUT_GAIN |
8 | 如果包含 |
INPUT_GAIN |
16 | 如果包含 |
俯视 |
32 | 如果包含 |
LEVEL_TYPE |
64 | 如果包含 |
LINKED_CHANNELS |
128 | 如果包含 |
THRESHOLD_TYPE |
256 | 如果包含 添加时间:20
|
EqualizerSupportedControls 柔性
类型:uint64
在 fuchsia.hardware.audio.signalprocessing/equalizer.fidl 中定义
Equalizer
中指定的均衡器支持的控件。
名称 | 值 | 说明 |
---|---|---|
CAN_CONTROL_FREQUENCY |
1 | 如果包含,则可使用 |
CAN_CONTROL_Q |
2 | 如果包含,则可使用 |
SUPPORTS_TYPE_PEAK |
4 | 如果包含,可以使用 |
SUPPORTS_TYPE_NOTCH |
8 | 如果包含,可以使用 |
SUPPORTS_TYPE_LOW_CUT |
16 | 如果包含,可以使用 |
SUPPORTS_TYPE_HIGH_CUT |
32 | 如果包含,可以使用 |
SUPPORTS_TYPE_LOW_SHELF |
64 | 如果包含,可以使用 |
SUPPORTS_TYPE_HIGH_SHELF |
128 | 如果包含,可以使用 |
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
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
|
频道 |