一个网友基于mini2440所做:
有控制台模式的MP3播放软件madplay但是没有控制台模式的音量调节软件我
自己无聊写了一个
代码如下:
#include <sys/ioctl.h>
#include <fcntl.h>
#include <stdio.h>
#include <sys/soundcard.h>
int str2int(unsigned char *p)//字符->整型
{
int t;
t=0;
while(*p)
{
if(*p>='0'&&*p<='9')
{
t*=10;
t+=*p-'0';
}
p++;
}
return t;
}
int main(int argc,char *argv[])
{
int mixer_fd,vol,vol1,vol2;
vol=100;
if(argc==2) vol=str2int(argv[1]);
if(vol>100) vol=100;
if((mixer_fd=open("/dev/mixer",O_RDONLY,0))==-1)
{
perror("mixer");
exit(1);
}
ioctl(mixer_fd, MIXER_READ(SOUND_MIXER_VOLUME),&vol1);
vol1/=0x101;
while(1)
{
if(vol1>vol) vol1--;
if(vol1<vol) vol1++;
vol2=vol1*0x101;
ioctl(mixer_fd, MIXER_WRITE(SOUND_MIXER_VOLUME),&vol2);
//usleep(1000);
if(vol1==vol) break;
}
printf("vol:%d\n",vol1);
close(mixer_fd);
return 0;
}
我没有测试过,有兴趣的自己玩玩了。