#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/ioctl.h>
#include<linux/soundcard.h>

int main(int argc, char **argv)
{
  int volume;
  long fd=open("/dev/mixer", O_RDWR);
  if (!fd) { printf("Error: cannot open /dev/mixer!\n"); exit(-1); }
  
  if (argc!=2) { printf("Error: usage - %s <vol>\nreturns old <vol>\n", argv[0]); exit(-1); }

  ioctl(fd, SOUND_MIXER_READ_VOLUME, &volume);
  
  printf("%d\n", volume);
  
  volume=atoi(argv[1]);
  volume|=volume<<8;

  ioctl(fd, SOUND_MIXER_WRITE_VOLUME, &volume);

  return 0;
}

