[wdmaudiodev] Re: SFX, MFX, EFX

  • From: Tim Roberts <timr@xxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 14 May 2014 15:18:17 -0700

Leonard Shoell wrote:
>
> In order to make these changes for 8.1, I’ve updated to build the APOs
> with Visual Studio 2013 updated with WDK 8.1, instead of building with
> WDK 7.1. Without any changes to the code, it builds and runs on Win 7.
> However, on 8.1 Windows will not load the APO.
>
>  
>
> Even after making the changes for SFX/MFX, they still do not load on
> 8.1, but load on 7.
>
>  
>
> I’ve experimented with lots of things, but still cannot get 8.1 to
> load the APOs. But, if I build with WDK 7.1, they load with no issues
> on 8.1.
>
>  
>
> Any ideas? Is 8.1 looking for something I’m not supporting when I
> build with WDK 8.1?
>

I was able to turn our LFX APO into an EFX on 8.1; a single binary works
for both cases, so it can be done.

You have to implement IAudioSystemEffects2 and implement
GetEffectsList.  Your Initialize routine has to check for
APOInitSystemEffects2.  Your INF has to add one of the properties

    PKEY_FX_StreamEffectClsid
    PKEY_FX_ModeEffectClsid
    PKEY_FX_EndpointEffectClsid

and one of

    PKEY_SFX_ProcessingModes_Supported_For_Streaming
    PKEY_MFX_ProcessingModes_Supported_For_Streaming
    PKEY_EFX_ProcessingModes_Supported_For_Streaming

For the most part, I think that was it.

-- 
Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.

Other related posts: