OSS 사운드 프로그래밍에서 볼륨 조절은 어떻게 하나요?

telsome의 이미지

OSS 에서 볼륨조절 지원하나요?

처음에 세팅하는 그런거 말구요.. 플레이 도중에 변화 시키고 싶습니다.

임종규의 이미지

http://www.opensound.com/pguide/oss.pdf

코딩을 하거나 볼륨을 조절하는 프로그램을 깔아야 한다고 하는것 같네요..

저 같은 경우는 amixer 라는 프로그램이 배포판에 깔려 있길래 그걸 사용합니다. 마스터 볼륨을 키고, 볼륨을 최대로 하는 경우는 아래와 같습니다.

#amixer -c 0 cset numid=1 on
#amixer -c 0 cset numid=2 100%

무슨 이유로 도중에 볼륨 조절하는 것을 찾으시는지 모르겠지만 원하는게 이게 맞는지 모르겠네요

/* How to Love Others */
while(GetDepth(Love) < Enough) DoLove();

익명 사용자의 이미지

볼륨을 조절하시려면 이전 단계는 안다
(사운드 출력이 된다고 가정)고 가정하겠습니다.
OSS믹서 핸들러를 얻으시고,
설정된 하드웨어 번호(장치번호)를 얻고

vol_r = 50;
vol_l = 50;

vol = (vol_r << 8) | vol_l;

ioctl(mixer_handler, MIXER_WRITE(장치번호), &vol);

하면 됩니다.
당연히 믹서를 open했으면 close하셔야겠지요.