Setting volume from C++ on the audio cape (Rev B1)

I have the following code which I think should set the volume on the audio cape to 100%

`

int32_t mixer_fd=0;

mixer_fd=open("/dev/mixer", O_WRONLY);

if (mixer_fd>0)

{

int vol=0x6464;

if (ioctl(mixer_fd, SOUND_MIXER_WRITE_VOLUME, &vol)==-1)

{

std::cout <<“Error setting volume”<<std::endl;

}

close(mixer_fd);

}

`

However, the volume is still barely audible. Is there something else that needs to be done?

I have the following code which I think should set the volume on the audio cape to 100%

Use alsamixer to experiment with the various settings. After that, it will be easier to work out how to do this programatically.

Regards,
John

I found the answer, for those trying to do this.

Change this line
ioctl(mixer_fd, SOUND_MIXER_WRITE_VOLUME, &vol)

to

ioctl(mixer_fd, SOUND_MIXER_WRITE_PCM, &vol)