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 中定義的

如需總覽,請參閱 [信號處理介面]

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

透過懸掛的取得取得處理元素狀態。 根據指定的 processing_element_id,驅動程式庫會回覆第一個 WatchElementState 呼叫驅動程式不會回應後續的用戶端 WatchElementState 對指定 processing_element_id 的呼叫,直到 Element 資料表的任何欄位變更為止 來自「processing_element_id」的最新報導

若有 ZX_ERR_BAD_STATE 錯誤,驅動程式就會關閉通訊協定管道 如果這個用戶端已有待處理的 WatchElementState,系統就會再次呼叫方法 和 Process_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 中定義的

如需總覽,請參閱 [信號處理介面]

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 依據 GetElementsSettableTypeSpecificElementState 類型未 符合 ElementType 的 此為 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

透過懸掛的取得取得處理元素狀態。 根據指定的 processing_element_id,驅動程式庫會回覆第一個 WatchElementState 呼叫驅動程式不會回應後續的用戶端 WatchElementState 對指定 processing_element_id 的呼叫,直到 Element 資料表的任何欄位變更為止 來自「processing_element_id」的最新報導

若有 ZX_ERR_BAD_STATE 錯誤,驅動程式就會關閉通訊協定管道 如果這個用戶端已有待處理的 WatchElementState,系統就會再次呼叫方法 和 Process_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 中定義的

<空白>

ENUMS

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

frequency 鄰近地區增加/減少 gain_db,選用 q

2

狹窄錶帶拒絕功能大幅影響 frequency,選用 q

3

運用選用的 q,也就是高通過率,將增減幅度降至 frequency 以下。

4

使用選用的 q,也就是低速傳遞,將增益幅度降低至 frequency

5

將增益降低到 frequency 以下,金額為 gain_db,具有高地效果。

6

以高原效果調低 frequency 的增益值,讓金額 gain_db

GainDomain 彈性

類型:uint8

定義於 fuchsia.hardware.audio.signalprocessing/gain.fidl

獲益的硬體網域,例如註解。

名稱說明
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

指定為 RMS 的等級。

PlugDetectabilities 彈性

類型: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 中定義

Element 的參數 (type 等於 DAI_INTERCONNECT)。

新增:20

Ordinal欄位類型說明
plug_detect_capabilities PlugDetectCapabilities

插電偵測功能。

必填。

DaiInterconnectElementState

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

Element 的狀態為 type 等於 DAI_INTERCONNECT

新增:20

Ordinal欄位類型說明
plug_state PlugState

這個 DAI 互連網路的插頭狀態。

必填。

external_delay zx/Duration

從這個 DAI 端點之後,驅動程式的最佳外部延遲時間估計值,因為 目前已設定。

用戶端在確定需求時必須將 external_delay 納入考量 至少前置時間 (播放時) 和最短拍攝延遲時間 (拍攝時)。

如果未包含,external_delay 表示不明;客戶可能會選擇採用 (例如視為 0 或其他其他時間長度、自動偵測等)。

選用。

動力學

fuchsia.hardware.audio.signalprocessing/dynamics.fidl 中定義的

Element 的參數 (type 等於 DYNAMICS)。

Ordinal欄位類型說明
bands vector<DynamicsBand>[64]

這個通訊協定中的 Dynamics 元素可能支援多個頻帶, 指定 DynamicsElementState 中可以變更的幾個參數 搭配 SetElementStatebands 向量的元素數量會決定支援的頻帶數量 這個處理元素

此為必要項目。至少須包含一個項目。

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 中單一錶帶的狀態,type 等於 DYNAMICS。 伺服器可能包含控制頻段欄位,即使該伺服器無法在 用戶端的用戶端 (也就是說,位元並非在 supported_controls 中設定)。

Ordinal欄位類型說明
id uint64

錶帶的專屬 ID。必須與以下項目中指定的其中一個 id 相符: Dynamics bands

min_frequency uint32

錶帶的最小頻率 (以 Hz 為單位)。 舉例來說,這個欄位可以是 0,例如用於單頻動態處理需指定 (連同 max_frequency 一起) 表示錶帶的完整範圍。

max_frequency uint32

錶帶的最大頻率 (以 Hz 為單位)。 這個欄位可以是 Nyquist 頻率,例如單頻動態。 處理程序,指定錶帶的完整範圍 (搭配 min_frequency)。

必填。

threshold_db float32

動態主處理程序開始後的值 (取決於 knee_width_db),在輸入 dB 中。 input_gainoutput_gain 等部分信號處理程序不會受到這個值影響。

必填。

threshold_type ThresholdType

動態處理功能已套用 ABOVEBELOW 門檻。

伺服器需要。 如果發生以下情況,用戶端不得在 SetElementState 中加入這個欄位 未在「supported_controls」中設定「DynamicsSupportedControls.THRESHOLD_TYPE」。

ratio float32

輸入與輸出 dB 的比率高於或低於膝蓋區域 (請參閱 threshold_type)。

必填。

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

等級類型 (最高值或 RMS)。 如未提供,則未指定等級類型。

選用。 如果發生以下情況,用戶端不得在 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 中定義的

Element 的狀態為 type 等於 DYNAMICS

Ordinal欄位類型說明
band_states vector<DynamicsBandState>[64]

每個 ID 都必須與 Dynamics.bands 的 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。 如果不包含或否,系統會一律啟用處理元素。

選用。

淘汰

請改用 can_bypass

移除時間:20
description string[256]

如有這類標記,則會顯示處理元素的文字說明。

選用。

can_stop bool

如果加入且為 True,即可透過 ElementSetState 停止處理元素。 如果不包含或否,系統會一律啟動處理元素。

選用。

新增: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 中定義

Element 的參數 (type 等於 ENDPOINT)。

移除:20 新增:12

Ordinal欄位類型說明
type EndpointType

指定端點代表的內容,

必填。

plug_detect_capabilities PlugDetectCapabilities

插電偵測功能。 必填。

EndpointElementState

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

Element 的狀態為 type 等於 ENDPOINT

移除:20 新增:12

Ordinal欄位類型說明
plug_state PlugState

如果納入這個端點的插座偵測狀態,

伺服器需要。

等化器

fuchsia.hardware.audio.signalprocessing/equalizer.fidl 中定義的

Element 的參數 (type 等於 EQUALIZER)。

Ordinal欄位類型說明
bands vector<EqualizerBand>[64]

這個通訊協定中的等化器是由多個色彩模式所構成,每個頻段都會指定 和 EqualizerElementState 可用 SetElementState 變更。 bands 向量的元素數量會決定色彩模式數量 該處理元素所提供的支援。

必填。

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_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 中單一錶帶的狀態,type 等於 EQUALIZER

Ordinal欄位類型說明
id uint64

錶帶的專屬 ID。必須與 Equalizer bands 中指定的其中一個 id 相符。

必填。

type EqualizerBandType

錶帶類型。

選用。

frequency uint32

錶帶的中心頻率。

選用。

q float32

品質因素,通常以「Q」表示。 用於表示頻率轉換的頻率有多長。Q 值越高,表示越窄 凹槽/高音以及燉切/剪接頭。必須為正數。

選用。

gain_db float32

增加 分貝。

選填,但 EqualizerBandType PEAKLOW_SHELFHIGH_SHELF 為必填。 可能不包含在 EqualizerBandType NOTCHLOW_CUTHIGH_CUT 的情況下。

enabled bool

啟用/停用錶帶。系統預設會啟用所有頻帶。 將 ElementState.enabled 設為 false 會停用整個等化器,且不會變更這個欄位。配戴 必須啟用該容器內含的等化器處理元素。

選用。

EqualizerElementState

fuchsia.hardware.audio.signalprocessing/equalizer.fidl 中定義的

Element 的狀態 (type 等於 EQUALIZER)。

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

Element 的參數 (type 等於 GAIN)。

Ordinal欄位類型說明
type GainType

指定增益數字代表的意義,例如百分比。

必填。

domain GainDomain

如果包含,則會套用在指定 GainDomain 中。 如果不包含,則未指定取得網域。

選用。

min_gain float32

最小增益,格式為 GainType

必填。

max_gain float32

最大增益,採用 GainType 格式。

必填。

min_gain_step float32

採用 GainType 格式的最小增益步驟,這個值不得為負數,但可以是零至 傳達一個有效連續的值範圍不得超過 max_gainmin_gain。 用戶端可以透過 WatchElementState 呼叫查詢實際的增益集。

必填。

GainElementState

定義於 fuchsia.hardware.audio.signalprocessing/gain.fidl

Element 的狀態為 type 等於 GAIN

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]

如有包含,這是用來交換供應商特定資訊的不透明八位元物件。 系統可能會將供應商專屬資料傳送至任何元素,而不只是供應商專屬類型。

選用。

新增時間:HEAD
started bool

是否啟動這個處理元素 (如為 false,則停止)。 停止處理的元素並不提供抽象的功能。 具體來說,沒有任何音訊資料透過停止的元素傳輸。

如果對應的 Element 傳回 can_stop 等於 false,則這個欄位 不得設為 false。 如未設定,元素先前的 started 狀態會維持不變。

選用。

bypassed bool

是否略過這個處理元素 (如果為 false,則啟用/「略過」。 略過的元素不會影響拓撲間的音訊流動。 具體來說,音訊會透過元素傳遞,且不會有任何變化。

如果對應的 Element 包含 can_bypassfalse,則這個欄位 不得設為 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

Element 的參數 (type 等於 VENDOR_SPECIFIC)。

Ordinal欄位類型說明

VendorSpecificState

定義於 fuchsia.hardware.audio.signalprocessing/vendor_specific.fidl

Element 的狀態為 type 等於 VENDOR_SPECIFIC

Ordinal欄位類型說明

聯合國

延遲時間彈性

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定義的

移除時間:20
OrdinalVariant類型說明
latency_time zx/Duration

延遲時間已新增為 zx.Duration 管道的延遲時間。

latency_frames uint32

以影格數的形式新增至管道的延遲時間。

Reader_GetElements_Result 嚴格

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定義的

OrdinalVariant類型說明
response Reader_GetElements_Response
err zx/Status

Reader_GetTopologies_Result 嚴格

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定義的

OrdinalVariant類型說明
response Reader_GetTopologies_Response
err zx/Status

SettableTypeSpecificElementState 彈性

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定義的

特定類型處理元素狀態,可由用戶端設定。 處理元素控制項的類型是由此 聯集。必須與ElementType 對應 Element

新增:20
OrdinalVariant類型說明
vendor_specific VendorSpecificState
gain GainElementState
equalizer EqualizerElementState
dynamics DynamicsElementState

SignalProcessing_SetElementState_Result 嚴格

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定義的

OrdinalVariant類型說明
response SignalProcessing_SetElementState_Response
err zx/Status

SignalProcessing_SetTopology_Result 嚴格

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定義的

OrdinalVariant類型說明
response SignalProcessing_SetTopology_Response
err zx/Status

TypeSpecificElement 彈性

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定義的

Element 的類型專屬參數。

OrdinalVariant類型說明
vendor_specific VendorSpecific
gain Gain
equalizer Equalizer
dynamics Dynamics
endpoint Endpoint
移除:20 新增:12
dai_interconnect DaiInterconnect
新增:20

TypeSpecificElementState 彈性

fuchsia.hardware.audio.signalprocessing/signal_processing.fidl 中定義的

特定類型處理元素狀態。 處理元素控制項的類型是由此 聯集。必須與ElementType 對應 Element

OrdinalVariant類型說明
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

等化器支援控制項 (彈性)

類型:uint64

fuchsia.hardware.audio.signalprocessing/equalizer.fidl 中定義的

Equalizer 中指定的等化器支援的控制項。

名稱說明
1

如果加入,則可使用 SetElementState 變更等化器錶帶的 frequency

2

如果加入,則可使用 SetElementState 變更等化器錶帶的 q

4

如果加入,則可使用 SetElementState 變更等化器錶帶的 typeEqualizerBandType PEAK

8

如果加入,則可使用 SetElementState 變更等化器錶帶的 typeEqualizerBandType NOTCH

16

如果加入,則可使用 SetElementState 變更等化器錶帶的 typeEqualizerBandType LOW_CUT

32

如果加入,則可使用 SetElementState 變更等化器錶帶的 typeEqualizerBandType HIGH_CUT

64

如果加入,則可使用 SetElementState 變更等化器錶帶的 typeEqualizerBandType LOW_SHELF

128

如果加入,則可使用 SetElementState 變更等化器錶帶的 typeEqualizerBandType 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 頻道