Variabel untuk Melakukan Pemrosesan

[Fitur yang terkait dengan halaman ini, Pemutar Media Windows SDK, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer. MediaPlayer telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer alih-alih Pemutar Media Windows SDK, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Variabel anggota untuk menangani buffer penundaan menangani jumlah BYTE ; mereka adalah pointer BYTE dan bilangan bulat yang menyimpan hitungan byte. Ini sangat ideal untuk memproses audio 8-bit, karena sampel 8-bit cocok dengan satu byte memori. Namun, saat memproses audio 16-bit, lebih mudah untuk mengonversinya menjadi penunjuk pendek , sehingga pemrosesan dapat terjadi dua byte pada satu waktu.

Contoh kode berikut mengalokasikan pointer 16-bit baru, dan menambahkan variabel pointer yang menyimpan alamat akhir buffer penundaan. Sisipkan di bagian "kasus 16" tepat sebelum titik entri perulangan:

// 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)); 

Kode untuk pemrosesan 8-bit juga mengalokasikan variabel yang menyimpan alamat akhir buffer penundaan. Menyimpan nilai ini memudahkan untuk menguji apakah penunjuk buffer penundaan movable telah mencapai akhir buffer penundaan. Contoh kode berikut menghitung nilai:

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

Menerapkan CEcho::D oProcessOutput