// Change volume to add to /etc/rc.d/rc.local on some system whose not remember Your sound settings
// kaneda@bohater.org

#include<stdio.h>
#include<sys/io.h>
#include<fcntl.h>
#include<signal.h>
#include<errno.h>
#include<sys/soundcard.h>



int main(int argc, char **argv) {
int mixernum,vol,i;

if ( argc < 2 ) {
	mixernum=open("/dev/mixer", O_RDONLY);
	ioctl(mixernum, MIXER_READ(SOUND_MIXER_VOLUME), &vol);
	vol=vol & 0xff;
	printf ("volume : %d\n",vol);
	close(mixernum);
	printf ("usage: %s n   [ set volume to \"n\" ] \n",argv[0]);
	return;
}
	mixernum=open("/dev/mixer", O_RDWR);
        vol = atoi(argv[1]);
	i = vol | vol << 8 ;
	ioctl(mixernum, MIXER_WRITE(SOUND_MIXER_VOLUME), &i);
	close(mixernum);

	mixernum=open("/dev/mixer", O_RDONLY);
	ioctl(mixernum, MIXER_READ(SOUND_MIXER_VOLUME), &vol);
	vol=vol & 0xff;
	printf ("volume : %d\n",vol);
	close(mixernum);
	return;
}
