Menambahkan Properti Campuran Basah

[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.]

Anda harus menambahkan kode untuk menyediakan properti tambahan untuk tingkat efek.

Bagian Menambahkan Properti ke Plug-in DSP Audio Sampel menyediakan detail tentang cara menambahkan properti baru menggunakan Visual C++. Bagian ini memperlihatkan kepada Anda cara menambahkan kode secara manual. Ini memerlukan penambahan kode di tiga tempat yang sama di mana Anda memodifikasi kode untuk properti waktu penundaan.

Tambahkan prototipe untuk metode get_wetmix dan put_wetmix segera mengikuti prototipe metode properti lainnya di Echo.h. Gunakan sintaks berikut:

STDMETHOD(get_wetmix)(double *pVal);
STDMETHOD(put_wetmix)(double newVal);

Sekarang, tambahkan implementasi untuk setiap metode segera setelah implementasi properti lainnya di Echo.cpp. Contoh berikut menunjukkan kode untuk kedua metode:

// Property get to retrieve the wet mix value by using the public interface.
STDMETHODIMP CEcho::get_wetmix(double *pVal)
{
    if ( NULL == pVal )
    {
        return E_POINTER;
    }

    *pVal = m_fWetMix;

    return S_OK;
}

// Property put to store the wet mix value by using the public interface.
STDMETHODIMP CEcho::put_wetmix(double newVal)
{
    m_fWetMix = newVal;

    // Calculate m_fDryMix
    m_fDryMix = 1.0 - m_fWetMix;
    
    return S_OK;
}

Perhatikan bahwa implementasi put_wetmix menyertakan kode untuk menghitung nilai yang benar untuk m_fDryMix. Setiap kali nilai baru ditentukan untuk m_fWetMix, perhitungan ini diperlukan.

Tambahkan kode berikut dalam definisi antarmuka tepat setelah kode untuk metode penundaan di Echo.idl:

HRESULT get_wetmix([out] double *pVal);
HRESULT put_wetmix([in] double newVal);

Properti Sampel Echo