Panoramica di XAPO
L'API XAPO consente la creazione di oggetti di elaborazione audio multipiattaforma (XAPO) da usare in XAudio2 in Windows e Xbox 360. Un oggetto XAPO è un oggetto che accetta dati audio in ingresso ed esegue alcune operazioni sui dati prima di passarli. È possibile usare un XAPO per eseguire un'ampia gamma di attività, tra cui l'aggiunta di riverbero a un flusso audio e il monitoraggio dei livelli di volume di picco.
Creazione di nuovi XAPO
L'API XAPO fornisce l'interfacciaIXAPOe la classeCXAPOBaseper la creazione di nuovi tipi XAPO. L'interfaccia IXAPO contiene tutti i metodi che devono essere implementati per creare un nuovo XAPO. La classe CXAPOBase fornisce un'implementazione di base dell'interfaccia IXAPO. CXAPOBase implementa tutti i metodi di interfaccia IXAPO, ad eccezione del metodo IXAPO::P rocess, univoco per ogni XAPO.
Per un esempio di creazione di un nuovo XAPO, vedere Procedura: Creare unXAPO.
Per un esempio di creazione di un XAPO che accetta parametri di runtime, vedere Procedura: Aggiungere il supporto dei parametri di runtime a unXAPO.
XAPO e COM
Gli XAPO implementano l'interfaccia IUnknown. Le interfacce IXAPO e IXAPOParameters includono i tre metodi IUnknown: QueryInterface, AddRefe Release. CXAPOBase fornisce implementazioni di tutti e tre i metodi IUnknown. Una nuova istanza di CXAPOBase avrà un conteggio dei riferimenti pari a 1. Verrà distrutto quando il conteggio dei riferimenti diventerà 0. Le implementazioni di IXAPO e IXAPOParameters devono seguire lo stesso modello per consentire la corretta gestione quando usata con XAudio2.
Le istanze XAPO vengono passate a XAudio2 come interfacce IUnknown. XAudio2 usa QueryInterface per acquisire un'interfacciaIXAPOe per rilevare se XAPO implementa l'interfacciaIXAPOParameters. Le implementazioni di IXAPO devono accettare richieste per __uuidof(IXAPO). Se viene implementato IXAPOParameters, deve accettare anche le richieste di __uuidof(IXAPOParameters).
Uso di un XAPO in XAudio2
Gli XAPO vengono usati in XAudio2 collegandoli alle voci. Ogni voce XAudio2 ha una catena di effetti contenente zero o più effetti audio. I dati audio inviati a una voce vengono passati attraverso ogni effetto della catena prima che venga inviato alle destinazioni di output della voce. I dati vengono passati dalla voce a ogni effetto usando il parametro pInputProcessParameters del metodo IXAPO::P rocess. Viene quindi restituito alla voce usando il parametro pOutputProcessParameters. La voce prende l'output di ogni effetto e lo inserisce nell'effetto successivo nella catena fino a quando non viene lasciato alcun effetto nella catena.
Per altre informazioni sulle catene di effetti XAudio2, vedere effetti audio XAudio2.
Per un esempio di uso di XAPO in XAudio2, vedere Procedura: Usare un XAPO in XAudio2.
Librerie degli effetti
La libreria di effetti XAPO contiene diversi XAPO e un metodo comune per istanziarli. Per informazioni su XAPOFX, consultare la panoramica di XAPOFX. Inoltre, XAudio2 include effetti di riverbero e contatore del volume predefiniti. Vedi effetti audio XAudio2 per altre informazioni sugli effetti XAudio2 predefiniti.
Argomenti correlati