Variabili per eseguire l'elaborazione

[La funzionalità associata a questa pagina, Lettore multimediale Windows SDK, è una funzionalità legacy. È stata sostituita da MediaPlayer. MediaPlayer è stato ottimizzato per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer anziché Lettore multimediale Windows SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Variabili membro per la gestione della gestione della gestione del buffer di ritardo con quantità BYTE ; sono puntatori BYTE e un numero intero che archivia un numero di byte. Questo è ideale per l'elaborazione dell'audio a 8 bit, poiché un esempio a 8 bit si adatta perfettamente a un byte di memoria. Quando si elabora l'audio a 16 bit, tuttavia, è più pratico convertire questi in puntatori brevi , in modo che l'elaborazione possa verificarsi due byte alla volta.

Il codice di esempio seguente alloca i nuovi puntatori a 16 bit e aggiunge una variabile puntatore che archivia l'indirizzo della fine del buffer di ritardo. Inserirla nella sezione "case 16" appena prima del punto di ingresso del ciclo:

// Store local pointers to the delay buffer.
short    *pwDelayPointer = (short *)m_pbDelayPointer;
short    *pwDelayBuffer = (short *) m_pbDelayBuffer;
// Store the address of the last word of the delay buffer.
short    *pwEOFDelayBuffer = (short *)(m_pbDelayBuffer + m_cbDelayBuffer - sizeof(short)); 

Il codice per l'elaborazione a 8 bit alloca anche una variabile che archivia l'indirizzo della fine del buffer di ritardo. L'archiviazione di questo valore consente di verificare se il puntatore del buffer di ritardo mobile ha raggiunto la fine del buffer di ritardo. Il codice di esempio seguente calcola il valore:

// Store the address of the end of the delay buffer.
BYTE * pbEOFDelayBuffer = (m_pbDelayBuffer + m_cbDelayBuffer - sizeof(BYTE));

Implementazione di CEcho::D oProcessOutput