Condividi tramite


configurazione voce di DSSPEAKER_SURROUND

Nota Queste informazioni si applicano a Windows XP e ai sistemi operativi precedenti. A partire da Windows Vista, IDirectSound::GetSpeakerConfig e IDirectSound::SetSpeakerConfig sono stati deprecati.

Un programma dell'applicazione può modificare la configurazione dell'altoparlante DirectSound in modalità surround chiamando il metodo IDirectSound::SetSpeakerConfig con il parametro speaker-configuration impostato su DSSPEAKER_SURROUND. Specifica un formato PCM a quattro canali in cui i canali vengono mappati a altoparlanti sinistro, destro, centrale e indietro.

Una volta applicata, l'impostazione di configurazione dell'altoparlante DSSPEAKER_SURROUND è globale e influisce sul dispositivo audio nel suo complesso. Tutte le applicazioni audio eseguite successivamente sono soggette alla nuova impostazione fino a quando DirectSound non modifica nuovamente l'impostazione.

DirectSound usa l'algoritmo seguente per configurare il sistema audio per la modalità surround:

  1. DirectSound chiede innanzitutto al driver di passare alla modalità altoparlante surround inviando una richiesta di KSPROPERTY_AUDIO_CHANNEL_CONFIG proprietà set al nodo dell'applicazione livello dati del driver (o al nodo 3D se non ha un nodo di applicazione livello dati). Vedere KSNODETYPE_DAC e KSNODETYPE_3D_EFFECTS. La struttura KSAUDIO_CHANNEL_CONFIG che accompagna questa richiesta di proprietà specifica la configurazione KSAUDIO_SPEAKER_SURROUND altoparlante. Se la richiesta ha esito positivo, il dispositivo audio instrada i quattro canali a quattro output analogici collegati direttamente a sinistra, destra, al centro e agli altoparlanti indietro.

  2. In caso di errore, DirectSound chiede al driver di configurare il dispositivo in modalità altoparlante stereo e di abilitarne il nodo KSNODETYPE_PROLOGIC_ENCODER , se presente. Se l'operazione ha esito positivo, il dispositivo converte il flusso a quattro canali dall'applicazione in un segnale stereo con codifica surround che restituisce in formato digitale o analogico. L'hardware deve eseguire la codifica dopo aver mescolato i flussi che passano ai vari pin mixer del dispositivo. L'utente può connettere gli output stereo del dispositivo a un decodificatore esterno che converte il segnale codificato in quattro canali che vengono restituiti in altoparlanti sinistro, destro, centrale e indietro.

  3. In caso di errore, DirectSound abilita il nodo KSNODETYPE_PROLOGIC_ENCODER in KMixer. Il dispositivo è già in modalità stereo del passaggio precedente. Anche in questo caso, il segnale stereo restituito dal dispositivo può essere alimentato a un decodificatore esterno.

Se l'algoritmo ha esito positivo, l'applicazione può creare e riprodurre buffer PCM a quattro canali. Nei casi 1 e 2 precedenti, i buffer hardware letti dal dispositivo usano quattro canali, ma nel caso 3 i buffer hardware usano un formato stereo. L'applicazione può scrivere direttamente nei buffer hardware nei casi 1 e 2, ma nel caso 3 deve scrivere in un buffer software e consentire a KMixer di convertire il flusso a quattro canali dell'applicazione nel formato stereo con codifica surround necessaria per il buffer hardware.

Nel caso (3) precedente, l'applicazione deve evitare di usare buffer hardware per uno dei flussi di output. Si noti che KMixer combina tutti i flussi di input prima di codificare la combinazione per produrre il flusso stereo surround. Tuttavia, qualsiasi flusso che entra in un pin mixer hardware è misto in hardware con lo stereo codificato da KMixer, che degrada la qualità dell'audio surround quando viene decodificato. L'applicazione può impedire questo problema usando solo buffer software.

Un flusso stereo codificato da un nodo KSNODETYPE_PROLOGIC_ENCODER può essere decodificato in quattro canali (a sinistra, a destra, al centro e indietro) da un nodo KSNODETYPE_PROLOGIC_DECODER .