Share via


Adición de la propiedad Wet Mix

[La característica asociada a esta página, Reproductor multimedia de Windows SDK, es una característica heredada. Se ha reemplazado por MediaPlayer. MediaPlayer se ha optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer en lugar de Reproductor multimedia de Windows SDK, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Debe agregar el código para proporcionar la propiedad adicional para el nivel de efecto.

En la sección Agregar propiedades al complemento DSP de audio de ejemplo se proporcionan detalles sobre cómo agregar una nueva propiedad mediante Visual C++. En esta sección se muestra cómo agregar el código manualmente. Esto implica agregar código en los mismos tres lugares en los que modificó el código para la propiedad de tiempo de retraso.

Agregue los prototipos para los métodos get_wetmix y put_wetmix inmediatamente después de los otros prototipos de método de propiedad en Echo.h. Use la sintaxis siguiente:

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

Ahora, agregue la implementación de cada método inmediatamente después de las demás implementaciones de propiedades en Echo.cpp. En el ejemplo siguiente se muestra el código de ambos métodos:

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

Observe que la implementación de put_wetmix incluye el código para calcular el valor correcto de m_fDryMix. Cada vez que se especifica un nuevo valor para m_fWetMix, se requiere este cálculo.

Agregue el código siguiente en la definición de interfaz justo después del código de los métodos delay en Echo.idl:

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

Propiedades de ejemplo de eco