fuchsia.hardware.audio.signalprocessing

新增日期:7

通訊協定

連接線

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

如需信號處理通訊協定總覽,請參閱「音訊訊號處理」一文

SignalProcessingConnect

連線至 SignalProcessing 通訊協定。如果系統不支援新的連線要求 (例如已建立的連線數量上限,例如已建立的連線數量上限),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

要求

<EMPTY>

回應

名稱類型
payload Reader_GetElements_Result

GetTopologies

傳回支援拓撲的向量。必須傳回一或多個拓撲,或 ZX_ERR_NOT_SUPPORTED。如果傳回多個拓撲,用戶端可能會使用 SetTopology 從清單中選擇任何拓撲。如果只傳回一個拓撲,則由於拓撲定義不能透過 SetTopology 變更,因此拓撲定義只是資訊。如果 GetElements 傳回一或多個元素,GetTopologies 必須傳回一或多個拓撲。

要求

<EMPTY>

回應

名稱類型
payload Reader_GetTopologies_Result

WatchElementState

透過懸掛的取得作業取得處理元素狀態。對於指定的 processing_element_id,驅動程式庫會回覆用戶端傳送的第一個 WatchElementState。除非 Element 資料表的任何欄位與 processing_element_id 最新回報的內容不同,否則驅動程式不會回應對 processing_element_id 的後續用戶端 WatchElementState 呼叫。如果再次呼叫此方法和處理_element_id 的待處理 WatchElementState,則驅動程式會關閉錯誤為 ZX_ERR_BAD_STATE 的通訊協定管道。

要求

名稱類型
processing_element_id ElementId

回應

名稱類型
state ElementState

WatchTopology

透過等待中取得目前的拓撲。駕駛人會立即回覆每個用戶端傳送的第一則 WatchTopology。在信號處理拓撲變更 (因為 SetTopology 呼叫而發生) 之前,驅動程式不會回應來自該用戶端的後續 WatchTopology 呼叫。如果在這個用戶端已有待處理的 WatchTopology 時再次呼叫這個方法,驅動程式會關閉錯誤為 ZX_ERR_BAD_STATE 的通訊協定管道。

已新增:HEAD

要求

<EMPTY>

回應

名稱類型
topology_id TopologyId

SignalProcessing

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

詳情請參閱 [Signal Processing Interface] 一文。

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

SignalProcessing 通訊協定呼叫前後可能會呼叫 SetElementState。如果在非 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

將使用 ID 設為要使用的拓撲,以指定 GetTopologies 傳回的向量。目前的拓撲會透過 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。除非 Element 資料表的任何欄位與 processing_element_id 最新回報的內容不同,否則驅動程式不會回應對 processing_element_id 的後續用戶端 WatchElementState 呼叫。如果再次呼叫此方法和處理_element_id 的待處理 WatchElementState,則驅動程式會關閉錯誤為 ZX_ERR_BAD_STATE 的通訊協定管道。

要求

名稱類型
processing_element_id ElementId

回應

名稱類型
state ElementState

WatchTopology

透過等待中取得目前的拓撲。駕駛人會立即回覆每個用戶端傳送的第一則 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>

ENUMS

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

增加/減少 gain_db (在 frequency 附近可達 q 的情況下)。

2

拒絕狹窄的錶帶,大幅重視 frequency 加上選用的 q

3

如要降低低於 frequency,選用 q (即高通過) 的升幅。

4

使用 q (選用) 較低的通道,將升幅降低到超過 frequency 以上。

5

以高強度效果將增減 gain_db 以下,金額降至 frequency

6

以高強度效果將增減 gain_db 提高到 frequency 以上。

GainDomain 彈性

類型:uint8

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

獲益的硬體領域,例如 ANALOG。

名稱物超所值說明
1

處理元素增益同樣適用於數位領域。

2

處理元素增益集會在類比網域中套用。

3

處理元素增益是使用數位和類比硬體。

GainType 嚴格

類型:uint8

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

獲取代表性類型。

名稱物超所值說明
1

分貝中指定的漲幅,例如 -103.0dB 或 +3.2dB。

2

獲利金額是以百分比表示,例如 10.0% 或 80.5%。

LevelType strict

類型:uint8

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

等級類型。

名稱物超所值說明
1

等級增益處以峰值表示。

2

指定為 RMS 的等級。

PlugDetectCapabilities 彈性

類型:uint32

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

為端點插入偵測功能。

新增時間:12 張

名稱物超所值說明
0

端點採用有線連接 (一律連接)。

1

端點可能未接上電源並插上插頭,並以非同步方式通知插座狀態異動。

ThresholdType strict

類型: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 為單位)。這個欄位可以是 Nyquist 頻率,舉例來說,如果是單一頻帶動態處理,進而指定錶帶位於整個範圍 (加上 min_frequency 設定) 值即可。

必填。

threshold_db float32

輸入 dB 中,動態主要處理開始超出的值 (取決於 knee_width_db)。這個值不會影響部分信號處理程序 (例如 input_gainoutput_gain)。

必填。

threshold_type ThresholdType

動態處理程序已套用於 ABOVEBELOW

伺服器必填。 如未在 supported_controls 中設定 DynamicsSupportedControls.THRESHOLD_TYPE,用戶端就不得在 SetElementState 中加入這個欄位。

ratio float32

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

必填。

knee_width_db float32

膝蓋區域的寬度,以輸入的 dB 表示。如果有值,則不能為負數。如未加入,則不會指定膝蓋區域的寬度。值為 0 是「硬度」膝蓋;數值越大,則代表「柔軟」膝蓋。 這支膝蓋位於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

連結的頻道 (即適用於 2 個管道系統的立體聲頻道)。 如未加入,就不會指定已連結頻道選項。如果為 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 相符,且 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 後,元素硬體進入完整運作模式所需的時間 (以奈秒為單位) 的最佳預估時間。

由於 turn_on_delay 無法由用戶端設定,因此 SetElementState state 中不應包含這個欄位。伺服器可能會在 WatchElementState 回覆中提供此名稱。

硬體可能需要一段時間才能進入完整運作模式,例如電源狀態變更所致。如果系統不接受播放或擷取的初始音訊樣本,則必須將這類延遲納入考量。如未加入,turn_on_delay 就不會出現。

選用。

新增日期:20 位
turn_off_delay zx/Duration

如果納入此屬性,驅動程式庫在 ElementStatestarted 從 true 變更為 false 後,元素硬體進入完全停用模式所需的時間 (以奈秒為單位) 最佳預估時間。

由於 turn_off_delay 無法由用戶端設定,因此 SetElementState state 中不應包含這個欄位。伺服器可能會在 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

Elementtype 等於 EQUALIZER 的參數。

序數廣闊類型說明
bands vector<EqualizerBand>[64]

這個通訊協定中的等化器是由多個頻帶建構而成,每個頻帶都指定幾個參數,以及可以用 SetElementState 變更的 EqualizerElementStatebands 向量的元素數量會決定這個處理元素支援的頻帶數量。

必填。

supported_controls EqualizerSupportedControls

這個等化器支援的控制項。

選用。

can_disable_bands bool

如果包括隨附的 及 True,可以透過 SetElementState 停用個別錶帶。如果未納入或不提供,則一律會啟用錶帶。如要讓錶帶能運作,必須啟用其外圍等化器處理元素。

選用。

min_frequency uint32

錶帶的最小頻率 (以 Hz 為單位)。

必填。

max_frequency uint32

錶帶的最大頻率 (以 Hz 為單位)。

必填。

max_q float32

錶帶的最高品質因素 (通常以「Q」表示)。表示頻率轉換的範圍越小。Q 值越大,代表凹槽/峰值和剪裁/影片櫃越窄。必須為正數。

選用。

min_gain_db float32

分貝最低增值。

這是選用元素,但如果 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_gainmin_gain。 客戶可以透過 WatchElementState 呼叫,查詢實際的增益集。

必填。

GainElementState

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

type 等於 GAINElement 狀態。

序數廣闊類型說明
gain float32

目前增加的幅度 (GainType 格式)。

必填。

PlugState

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

為端點插入狀態。如果驅動程式庫回報為 HARDWIRED 的 plug_detect_capabilities,驅動程式庫只會在第一次針對指定端點呼叫時回應 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

序數Variant類型說明
latency_time zx/Duration

以 zx.Duration 的形式新增至管道的延遲時間。

latency_frames uint32

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

Reader_GetElements_Result 嚴格

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

序數Variant類型說明
response Reader_GetElements_Response
err zx/Status

Reader_GetTopologies_Result 嚴格

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

序數Variant類型說明
response Reader_GetTopologies_Response
err zx/Status

SignalProcessing_SetElementState_Result 嚴格

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

序數Variant類型說明
response SignalProcessing_SetElementState_Response
err zx/Status

SignalProcessing_SetTopology_Result 嚴格

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

序數Variant類型說明
response SignalProcessing_SetTopology_Response
err zx/Status

TypespecificElement 彈性

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

Element 的類型專屬參數。

序數Variant類型說明
vendor_specific VendorSpecific
gain Gain
equalizer Equalizer
dynamics Dynamics
endpoint Endpoint
新增時間:12 張

TypespecificElementState 彈性

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

類型專屬的處理元素狀態。處理元素控制項的類型是由此聯集提供的參數類型定義。必須與對應的 Element 中對應 ElementType 項目傳回的類型相符。

序數Variant類型說明
vendor_specific VendorSpecificState
gain GainElementState
equalizer EqualizerElementState
dynamics DynamicsElementState
endpoint EndpointElementState
新增時間:12 張

帳單

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

如果包含等化器頻帶的 type,則可使用 SetElementState 變更為 EqualizerBandType PEAK

8

如果包含等化器頻帶的 type,則可使用 SetElementState 變更為 EqualizerBandType NOTCH

16

如果包含等化器頻帶的 type,則可使用 SetElementState 變更為 EqualizerBandType LOW_CUT

32

如果包含等化器頻帶的 type,則可使用 SetElementState 變更為 EqualizerBandType HIGH_CUT

64

如果包含等化器頻帶的 type,則可使用 SetElementState 變更為 EqualizerBandType LOW_SHELF

128

如果包含等化器頻帶的 type,則可使用 SetElementState 變更為 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 版本