• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 701
  • Last Modified:

changing the volume in c++Builder

I am trying to control the volume of a wave sound with
waveoutgetvolume(0,(LPDWORD) oldvolume);
to keep the oldvolume and then
waveoutsetvolume(0, (DWORD) newvolume);
and it only seems to change the left channel
even if I do something like newvolume == oldvolume
I am new to this type of programming and know nothing about API Im used to pascal for Dos....Any help would be nice...
1 Solution
The low-order word (from the second parameter of the function) contains the left-channel volume setting, and the high-order word contains the right-channel setting. A value of 0xFFFF represents full volume, and a value of 0x0000 is silence.
If a device does not support both left and right volume control, the low-order word of dwVolume specifies the volume level, and the high-order word is ignored.

You can use the HIWORD and LOWORD macros to separate the left and right channel volume values in the "WaveOutGetVolume" fucntion and you can use the MAKELONG macro to build the parameter form the left-right volume values in the "WaveOutSetVolume" function.

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.

Join & Write a Comment

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now