Добавление свойства мокрой смеси

[Функция, связанная с этой страницей, Медиаплеер Windows SDK, является устаревшей функцией. Он был заменен MediaPlayer. MediaPlayer оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности использовать MediaPlayer вместо пакета SDK для Медиаплеер Windows. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Необходимо добавить код, чтобы предоставить дополнительное свойство для уровня эффекта.

В разделе Добавление свойств в пример подключаемого модуля DSP для аудио содержится информация о добавлении нового свойства с помощью Visual C++. В этом разделе показано, как добавить код вручную. Это влечет за собой добавление кода в тех же трех местах, где вы изменили код для свойства задержки времени.

Добавьте прототипы для методов get_wetmix и put_wetmix сразу после других прототипов методов свойств в Echo.h. Используйте следующий синтаксис:

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

Теперь добавьте реализацию для каждого метода сразу после других реализаций свойств в Echo.cpp. В следующем примере показан код для обоих методов:

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

Обратите внимание, что реализация put_wetmix включает код для вычисления правильного значения для m_fDryMix. При каждом указании нового значения для m_fWetMix это вычисление является обязательным.

Добавьте следующий код в определение интерфейса сразу после кода для методов delay в Echo.idl:

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

Свойства примера Echo