WAVEOUTCAPS vs my 24-bit capapble MAudio Delta 1010 sound card ...

I have an MAudio delta 1010 (10 ins / outs, 24-bit/96kHz capable).  I want to query its capabilities in c++, but the windows WAVEOUTCAPS.dwFormats definitions appear to be limited to 16-bit/44.1kHz:

WAVE_FORMAT_1M08 11.025 kHz, mono, 8-bit
WAVE_FORMAT_1M16 11.025 kHz, mono, 16-bit
WAVE_FORMAT_1S08 11.025 kHz, stereo, 8-bit
WAVE_FORMAT_1S16 11.025 kHz, stereo, 16-bit
WAVE_FORMAT_2M08 22.05 kHz, mono, 8-bit
WAVE_FORMAT_2M16 22.05 kHz, mono, 16-bit
WAVE_FORMAT_2S08 22.05 kHz, stereo, 8-bit
WAVE_FORMAT_2S16 22.05 kHz, stereo, 16-bit
WAVE_FORMAT_4M08 44.1 kHz, mono, 8-bit
WAVE_FORMAT_4M16 44.1 kHz, mono, 16-bit
WAVE_FORMAT_4S08 44.1 kHz, stereo, 8-bit
WAVE_FORMAT_4S16 44.1 kHz, stereo, 16-bit

1) Is there a way to parse out DWORD dwFormats to get the actual capabilities of my card?
2) Will windows fill the member with WAVE_INVALIDFORMAT? (I havent actually tried querying the Delta yet)
3) What can I do? Oh My!

Who is Participating?
joghurtConnect With a Mentor Commented:
Quote from mmsystem.h:

#define WAVE_FORMAT_44M08      0x00000100       /* 44.1   kHz, Mono,   8-bit  */
#define WAVE_FORMAT_44S08      0x00000200       /* 44.1   kHz, Stereo, 8-bit  */
#define WAVE_FORMAT_44M16      0x00000400       /* 44.1   kHz, Mono,   16-bit */
#define WAVE_FORMAT_44S16      0x00000800       /* 44.1   kHz, Stereo, 16-bit */
#define WAVE_FORMAT_48M08      0x00001000       /* 48     kHz, Mono,   8-bit  */
#define WAVE_FORMAT_48S08      0x00002000       /* 48     kHz, Stereo, 8-bit  */
#define WAVE_FORMAT_48M16      0x00004000       /* 48     kHz, Mono,   16-bit */
#define WAVE_FORMAT_48S16      0x00008000       /* 48     kHz, Stereo, 16-bit */
#define WAVE_FORMAT_96M08      0x00010000       /* 96     kHz, Mono,   8-bit  */
#define WAVE_FORMAT_96S08      0x00020000       /* 96     kHz, Stereo, 8-bit  */
#define WAVE_FORMAT_96M16      0x00040000       /* 96     kHz, Mono,   16-bit */
#define WAVE_FORMAT_96S16      0x00080000       /* 96     kHz, Stereo, 16-bit */

AND: Why don't you use the wChannels member of this structure?
madhtrrAuthor Commented:
I'm using vc++ 6 from Microsoft Visual Studio 6, must not have the latest mmsystem.h file.  I wonder if I'll have to upgrade, mebbe the older stuff just can't deal with it.

In any case, u get the points because u defined them for me :)

    Why don't you use the wChannels member of this structure

Is there a way to use the wChannels member to determine the sampling rate and resolution?


The wChannels member is only to get that you have a 10-channel device you otherwise wouldn't get using dwFormats.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.