指定釘選資料範圍
定義拓撲來代表裝置中的資料路徑和控制節點之後,下一個步驟是定義每個可設定針腳 的資料範圍 。 您可以在軟體控制下建立、設定及連線到波浪或 MIDI 資料流程的可設定針腳。 相反地,實體連線或橋接器接腳會隱含存在,而且無法在軟體控制下建立或設定。
連接可設定的針腳以做為波浪或 MIDI 資料流程的接收或來源之前,必須設定針腳來處理資料流程的資料格式。 一般而言,針腳可以設定為接受數種資料流程格式的其中一種。 例如,PCM 波浪輸出針腳可能會接受下列 PCM 資料流程參數範圍:
11.025 kHz、22.05 kHz、44.1 kHz 和 48 kHz 的取樣速率
8、16、24 和 32 位的樣本大小
從 1 到 8 的任意數目通道
針對每種可設定的針腳類型,迷你埠驅動程式會描述針腳可以處理的各種資料流程資料格式。 這些參數範圍可以指定為數據範圍描述元的陣列,如下列程式碼範例所示。
static KSDATARANGE_AUDIO PinDataRangesPcm[] =
{
{
{
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
},
8, // Maximum number of channels
8, // Minimum number of bits-per-sample
32, // Maximum number of bits-per-channel
11025, // Minimum rate
48000 // Maximum rate
}
};
請注意, PinDataRangesPcm
上述範例中的陣列包含 類型KSDATARANGE_AUDIO的單一資料範圍描述元。 一般而言,資料範圍陣列可以包含任意數目的描述項。 例如,非 PCM 波浪輸出針腳可能同時支援 AC-3-over-S/PDIF 和 WMA Pro-over-S/PDIF 格式。 這兩種格式的每一種都是由個別的資料範圍描述元指定。 因此,針腳的資料範圍陣列至少會包含兩個KSDATARANGE_AUDIO結構。
可設定的釘選,可支援來自使用 DirectMusic 或 Windows 多媒體 midiInXxx 和 midiOutXxx 函式的應用程式的音樂串流格式,會使用類型 為 KSDATARANGE_MUSIC的資料範圍描述元。
埠驅動程式會從迷你埠驅動程式取得資料範圍資訊,並盡可能使用這項資訊來處理每個針腳可支援之資料格式的資訊要求。 如果是具有簡單 PCM 資料範圍的針腳,埠驅動程式就能夠處理該針腳的交集要求。 在交集要求中,用戶端會提供一組代表資料流程可能資料格式的資料範圍。 可能的話,埠驅動程式的交集處理常式會從要求中的資料範圍挑選特定的資料格式,該資料格式也會落在其針腳的資料範圍內。 此格式代表兩組資料範圍的交集。 因此,用戶端和針腳都可以使用這個格式來處理資料流程。 對於更複雜的資料範圍,迷你埠驅動程式可以提供自己的交集處理常式,而埠驅動程式接著會使用,而不是它自己的預設處理常式。 迷你埠驅動程式的交集處理常式可以允許任何可能難以以資料範圍陣列表示給埠驅動程式的格式需求。 如需詳細資訊,請參閱 資料交集處理常式 和 多個通道音訊資料和 WAVE 檔案。