[wdmaudiodev] Re: SYSVAD SwapAPO
- From: Tim Roberts <timr@xxxxxxxxx>
- To: wdmaudiodev@xxxxxxxxxxxxx
- Date: Tue, 26 Mar 2019 10:27:04 -0700
amd 22102018 wrote:
Guys I am Working on SwapAPO(Slate Audio Sample).
May i know how the SwapAPO is getting called from the sysvad audio
driver i.e how is it hooked
i know that the Presence of APO is detected by the Audio Engine by
making entries in the .INF file.My Question is how APO is Hooked with
the driver how it is getting called
It is NOT called (or "hooked") from the SysVad driver. The driver does
not know whether or not an APO is present. The APO is loaded into the
Audio Engine, and gets called when the Audio Engine has new data, before
it writes the data into the device's circular buffer (or, on the input
side, after it reads new data from the circular buffer).
I want to implement an existing algorithm written in MATLAB as a sAPO
and hook it to the Audio Engine & Audio Driver. How can it be Done. I
Have converted the MATLAB code in to the "C Code" and by using Visual
Studio i have converted it to the .dll
You said you are working with sysvad and have it working. Right? In
that case, you can see the code. You can see that there is an
APOProcess method that does the real work.
How the GUID can be Assigned to this APO in the C Code and add it to
my existing Project of "Slate Audio Sample & SwapAPO" & this APO is
for capture graph.
What GUID do you mean? You'll need to create new GUIDs in the IDL
files. Those are referenced symbolically in the code, so it's centralized.
i used the .dll in >INF and it is loading clearly that i can see it in
Driver Properties (But i want GUID for it so that i can use it in INF
"FX STREAMEFFECTS _CLSID" )i know generating sample GUID;s using
Did you search the code to look for the GUIDs in the INF file? That
would tell you what you need to change. They only occur in one file.
I have tested it with the test test tone and captured it using
audacity the channels are getting swapped. While debugging using
WINDBG when the set the Break Point at "APOProcess" it is not getting
breaked and the APO Process call i am unable to see it using windbg
but the effects are getting applied and the file is getting saved in
to the C:\ location as it is present in the "savedata.cpp"
What process were you debugging? Remember that your APO is not running
in the Audacity process, so you can't debug Audacity. Your APO is loaded
and running in the protected Audio Engine process. In order to debug
that process, you need to turn off it's "protected" status by turning on
the DisableProtectedAudioDG, then "attach" to the process using windbg.
However, if you use debug prints with OutputDebugString, you can see
those with a tool like DebugView even without using a debugger.
Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.
Description: S/MIME Cryptographic Signature
Other related posts: