다음 위로 이전 목차 리눅스 프로그래머를 위한 가이드

7.1 내부 스피커 프로그래밍 (Programming the internal speaker)

믿거나 말거나, PC 스피커는 리눅스 콘솔(Console)의 부분이고 그러므로 문자장치 (character device)이다. 따라서, ioctl() 요청들(requests)은 그것을 조종하기 위해 존재한다. 내부 스피커에 대해 다음 2개의 요청(request)이 있다.:

  1. KDMKTONE

    커널 타이머를 사용하여 지정된 시간에 소리(beep)를 발생시킨다.

    예제: ioctl (fd, KDMKTONE, (long) argument)

  2. KIOCSOUND

    현재 울리고 있는 소리(beep)를 멈추거나 끝없이 소리(beep)를 발생시킨다.

    예제: ioctl (fd, KIOCSOUND, (int) tone)

아규먼트(argument)는 low word에 있는 톤(tone)과 high word에 있는 지속성(duration)의 값으로 이루어진다. 톤(tone) 값은 주파수가 아니다. PC 메인보드 타이머 (mainboard timer) 8254는 1.19 MHz의 clock을 사용하고 이는 1190000/주파수 를 의미한다. 지속성(duration)은 타이머의 똑딱임으로 측정된다. 두개의 ioctl 호출은 즉각적으로 반환됨으로 프로그램을 차단하지 않고 소리(beep)를 제공하는 방법이 될 수 있다.
KDMKTONE은 소리를 멈추는 것에 대한 걱정이 없기 때문에 경고 신호로 사용되어져야 한다.
KIOCSOUND는 splay 예제 프로그램에서 보여지는 것처럼 멜로디를 연주하는데 사용될 수 있다. 소리를 멈추기위해 톤(tone) 값 0를 사용해야만 한다.


이전:7 사운드 프로그래밍 다음:7.2 사운드 카드 프로그래밍

Copyright (c) 1996,1997 by Euibeom.Hwang & SangEun.Oh All Rights Reserved

Email To:Webmaster , Another address
LAST UPDATE Nov 28,1997
Created Nov 287,1997