[wdmaudiodev] Re: What is different from w2k to XP in the WaveOut/In API?

  • From: "Jeff Claar" <jclaar@xxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 1 Aug 2003 14:36:02 -0700

Hi Uwe,

Could you be receiving a WAVEOUTCAPS2 or WAVEINCAPS2 structure? You don't say 
what the length of the buffer is, but it sounds like that might be it, 
especially since this only happens on XP, which is the only OS that supports 
those structures.

Jeff

----- Original Message ----- 
From: Uwe Kirst 
To: wdmaudiodev@xxxxxxxxxxxxx 
Sent: Friday, August 01, 2003 5:29 PM
Subject: [wdmaudiodev] What is different from w2k to XP in the WaveOut/In API?


Hi,
because there are so many known kmixer bugs and limitation I started to
write a wrapper dll that bypasses the the kmixer. It implements the good
old mme Wave API and is based on the direct KS sample. My dll has the
following advantages:
-no additional latency introduced, because audio data is not copied.
-no format and sample rate conversations, audio data provided as it is.
-no 10/32 device limit.
-full 32 and 24 bit support (32/24 bit support has been removed in XP
(e.g.:samplitude plays 32 bit data in w2x, does not play in 32 bit in
XP))

The dll works quite well in w2k, but I'm still having some trouble with
XP. That's why I'm asking for help. I'm having some strange effects
while debugging the dll under XP:
I see a lot of WODM_GETNUMDEVS, WIDM_GETNUMDEVS, WODM_GETDEVCAPS,
WIDM_GETDEVCAPS messages, more than I expect from the number of devices
I support. It seems that the system calls these messages in an more or
less endless loop. The WOM_GETDEVCAPS and WIDM_GETDEVCAPS have two
parameters: dwparam1, dwparam2. The first parameter is a pointer to the
memory that should be filled with the devicecaps. The second parameter
is the length of the devicecaps which should be 80 or 84 depending on
the direction. From the debugprints I can see that the second parameter
most of the time is not 80 or 84 but a number >> 84. If I copy the
devicecaps in that case, the application that uses the waveapi crashes.
The windows explorer or the messenger also crashes during installation
in that case. If I do not copy the devicecaps in that case the
devicename in the application is left blank (depending on the
application I use) or shows some other error message. I see also much
more blank lines or error message than devices I have installed. The
windows control panel shoes the correct number of devices and
devicenames. To be sure that all these effects does not have anything to
do with DirectKS I skipped DirectKS device enumeration and used constant
values for the number of devices and devicecaps structures.
Does anyone have a clue?
Thanks
Uwe





******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.de/

Other related posts: