¸®´ª½º ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ °¡À̵å
7.2 »ç¿îµå Ä«µå ÇÁ·Î±×·¡¹Ö (programming a sound card)
ÇÁ·Î±×·¡¸ÓÀÎ ´ç½ÅÀ» À§ÇØ, ÇöÀç ¸®´ª½º ½Ã½ºÅÛÀÌ »ç¿îµå Ä«µå¸¦ ÀåÂøÇÏ°í ÀÖ´ÂÁö¸¦ ¾Æ´Â °ÍÀº
Áß¿äÇÏ´Ù. È®ÀÎÇϱâ À§ÇÑ Çѹæ¹ýÀº /dev/sndstat ¸¦ °Ë»çÇÏ´Â °ÍÀÌ´Ù. /dev/sndstat ¸¦ ¿©´Âµ¥
½ÇÆÐÇÏ°í errno=ENODEVÀÌ¸é »ç¿îµå Ä«µå°¡ È°¼ºÈµÇ¾î ÀÖÁö ¾Ê´Ù´Â °ÍÀ¸·Î ÀÌ´Â ´ç½ÅÀÌ Ä¿³Î
»ç¿îµå µå¶óÀ̹ö·Î ºÎÅÍ ¾Æ¹«·± µµ¿òµµ ¹ÞÀ» ¼ö ¾øÀ½À» ÀǹÌÇÑ´Ù. pcsnd µå¶óÀ̹ö¿¡ ¿¬°áµÇ¾î
ÀÖÁö ¾Ê´Â µ¿¾È open()´Â ½ÇÆÐÇÏÁö ¾ÊÀ¸¹Ç·Î /dev/dsp ¸¦ ¿°íÀÚ ½ÃµµÇÏ´Â °ÍÀ¸·Îµµ °°Àº °á°ú¸¦
¾òÀ» ¼ö ÀÖ´Ù.
Çϵå¿þ¾î ¼öÁØ¿¡¼ »ç¿îµå Ä«µå¸¦ °¡Áö°í È¥ÇÕÇϱ⸦ ¿øÇÑ´Ù¸é, outb()¿Í inb() È£ÃâÀÇ ¸î¸î
Á¶ÇÕÀÌ Ã£°íÀÚ ÇÏ´Â »ç¿îµå Ä«µå¸¦ ¹ß°ßÇØ ÁÙ °ÍÀÌ´Ù.
¸î¸î ¿µ¸®ÇÑ »ç¶÷µéÀÌ ¸®´ª½º,isc,FreeBSD¿Í ´ëºÎºÐÀÇ ´Ù¸¥ i386 ±â¹ÝÀÇ ½Ã½ºÅÛ¿¡¼ °°Àº
µå¶óÀ̹ö¸¦ »ç¿ëÇϵµ·Ï °áÁ¤ÇÑ ÀÌÈÄ, ÇÁ·Î±×·¥¿¡¼ »ç¿îµå µå¶óÀ̹ö¸¦ »ç¿ëÇÏ´Â °Í¿¡ ÀÇÇÑ
º¯°æ»çÇ×Àº ´Ù¸¥ i386 ½Ã½ºÅÛ¿¡¼µµ ÀÛµ¿µÉ °ÍÀÌ´Ù. ´Ù¸¥ ¾ç½Ä(architecture)ÀÇ ¸®´ª½º°¡ °°Àº
¼Ò¸® ÀåÄ¡ ÀÎÅÍÆäÀ̽º(sound device interface)¸¦ Á¦°øÇÑ´Ù¸é, ÇÁ·Î±×·¥À» Æ÷ÆÃ(porting)Çϴµ¥
µµ¿òÀÌ µÉ °ÍÀÌ´Ù. »ç¿îµå Ä«µå´Â ¸®´ª½º ÄܼÖ(console)ÀÇ ºÎºÐÀÌ ¾Æ´Ï¶ó Ư¼öÇÑ ÀåÄ¡ÀÌ´Ù.
»ç¿îµå Ä«µå´Â ¼¼°³ÀÇ ÁÖ¿ä Ư¡À» °®´Â´Ù.:
- µðÁöÅ» Ç¥º» ÀÔÃâ·Â (Digital sample input/output)
- ÁÖÆļö º¯Á¶ Ãâ·Â (Frequency modulation output)
- ¹Ìµð ÀÎÅÍÆäÀ̽º (A midi interface)
ÀÌ·¯ÇÑ Æ¯Â¡ÀÇ °¢°¢Àº ±×µé ÀÚ½ÅÀÇ ÀåÄ¡ µå¶óÀ̹ö ÀÎÅÍÆäÀ̽º (device driver interface)¸¦ °®´Â´Ù.
µðÁöÅ» Ç¥º»(digital sample)´Â /dev/dsp, ÁÖÆļö º¯Á¶´Â /dev/sequencer, ¹Ìµð ÀÎÅÍÆäÀ̽º´Â
/dev/midi ÀÌ´Ù. »ç¿îµå ¼¼ÆÃ(º¼·ý, ¹ë·±½º, º£À̽º °°Àº)Àº /dev/mixer ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ
ÅëÁ¦µÉ ¼ö ÀÖ´Ù. ȣȯ¼ºÀ» À§ÇØ SUNÀ» ÀÐÀ» ¼ö ÀÖ´Â /dev/audio ÀåÄ¡°¡ Á¸ÀçÇÑ´Ù.
ÀÌ·¯ÇÑ ÀåÄ¡µéÀ» Á¶Á¾Çϱâ À§ÇØ ioctl()À» »ç¿ëÇÑ´Ù°í ÃßÃøÇß´Ù¸é, ¸Â¾Ò´Ù. ioctl() ¿äûµéÀº
<linux/soundcard.h>¿¡ Á¤ÀǵǾîÀÖ°í SNDCTL_·Î ½ÃÀÛÇÑ´Ù.
ÀÌÀü:7.1 ³»ºÎ ½ºÇÇÄ¿ ÇÁ·Î±×·¡¹Ö
´ÙÀ½:8 ¹®ÀÚ´ÜÀ§ ±×·¡ÇȽº
Copyright (c) 1996,1997 by Euibeom.Hwang & SangEun.Oh All Rights Reserved
Email To:Webmaster ,
Another address
LAST UPDATE Nov 28,1997
Created Nov 28,1997