´ÙÀ½ À§·Î ÀÌÀü ¸ñÂ÷ ¸®´ª½º ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ °¡À̵å

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)ÀÇ ºÎºÐÀÌ ¾Æ´Ï¶ó Ư¼öÇÑ ÀåÄ¡ÀÌ´Ù. »ç¿îµå Ä«µå´Â ¼¼°³ÀÇ ÁÖ¿ä Ư¡À» °®´Â´Ù.:

ÀÌ·¯ÇÑ Æ¯Â¡ÀÇ °¢°¢Àº ±×µé ÀÚ½ÅÀÇ ÀåÄ¡ µå¶óÀ̹ö ÀÎÅÍÆäÀ̽º (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