Linux ÒôƵ API Ö¸ÄÏ
Ìì²»¿É²â
ÓÉÓÚÀúÊ·µÄÔÒò£¬ÔÚ Linux
»·¾³ÏÂÓжàÖÖAPIϵͳ¿ÉÓÃÓÚÉùÒô±à³Ì¡£µ«Ã»ÓкÏÊʵÄÖ¸Òý¾ÍÄÑÒÔÕÒµ½ºÏºõ×Ô¼ºÐèÒªµÄÌåϵ¡£ÕâÀïÊÇÒ»¸öÖ¸Òý£¬ÊÇÓÉLennart
Poettering <mzoybt (at) 0pointer (dot) net>Ëùд£¨²Î¼û£ºHomepage of Lennart
£©£¬
Ä¿µÄ¾ÍÊÇ´øÄã×ß³öÕâ¸öÃÜÁÖ¡£
×î¼òµ¥µÄÖ¸ÒýιýÓÚÎÊ×Ô¼º£º“ÎÒÏ루Óà Linux Sound
API£©×öЩʲô£¿”¡£ÏÂÃæ¾ÍÊǴ𰸣º
ÎÒÏëдһ¸öÀàËÆÓÚýÌå²¥·ÅÆ÷µÄÈí¼þ£¡
ÄǾÍÓà GStreamer¡£³ý·ÇÄãÖ»Ïë»ùÓÚKDEÀ´±à³Ì£¬ÄÇô£¬Äã¿ÉÒÔÑ¡ÔñʹÓÃPhonon¡£
ÎÒÏëÔÚ×Ô¼ºµÄÓ¦ÓóÌÐòÖмÓÈëʼþÉùÒô£¡
ʹÓà libcanberra£¬²¢¸ù¾ÝXDG
Sound Theming/Naming ¹æ·¶°²×°ÉùÒôÎļþ¡£Èç¹ûÄãÖ»»ùÓÚKDE£¬Ôò¿ÉÒÔʹÓÃKNotify£¬µ«ËüµÄ×ÅÖØµãÓÐËù²»Í¬¡£
ÎÒÏë×öרҵµÄÒôƵ±à³Ì£¬°üÀ¨Ó²Å̼Òô¡¢ÒôÀֺϳɡ¢MIDI½çÃæµÈ£¡
ʹÓà JACK »òÕßÍêÕûµÄALSA ½çÃæ¡£
ÎÒÏë»ù´¡µÄPCMÒôƵ²¥·ÅºÍ²¶×½£¡
ʹÓà safe
ALSA ×Ó¼¯¡£
ÎÒÏëÔÚÓÎÏ·ÖмÓÈëÉùÒô£¡
Èç¹ûÊÇÈ«ÆÁÄ»µÄ´óÐÍÓÎÏ·£¬Ê¹ÓÃSDLµÄÉùÒôAPI¡£Èç¹ûÊǼòµ¥µÄÓÎÏ·£¬Ö»Óõ½»ù´¡µÄÓû§½çÃæÀýÈçGtk+µÄ£¬Ê¹Óà libcanberra
ÎÒÏëдһ¸ö»ìÒôÆ÷/ÒôÁ¿¿ØÖÆÈí¼þ£¡
ÕâÒª¸ù¾ÝÄãÏëÔÚÄÄÒ»¸ö²ã´ÎÌṩֱ½ÓµÄÖ§³Ö£ºÈç¹ûÄãÏëÖ§³ÖÔöÇ¿µÄ×ÀÃæÈí¼þ»ìÒôÆ÷£¬Ê¹Óà PulseAudio ÒôÁ¿¿ØÖÆ
API¡£Èç¹ûÄãÏëÖ§³ÖÓ²¼þ»ìÒôÆ÷£¬Ê¹ÓÃALSA»ìÒôÆ÷API¡£
ÎÒÏëдһ¸öÖ§³Ö
plumbing layerµÄÈí¼þ£¡
ʹÓà ÍêÕûµÄ ALSAÌåϵ¡£
ÎÒÏëдһ¸öǶÈëʽµÄÒôƵÈí¼þ£¡
´Ó¼¼ÊõʹÓÃÐԽǶȶøÑÔsafe ALSA×Ó¼¯ÊÇÒ»¸öºÃµÄÑ¡Ôñ£¬µ«»ùÓÚÄãʵ¼ÊµÄÇé¿öÒ²¿ÉÒÔʹÓÃÆäËüAPI¡£
ÄãÏëÁ˽â¸ü¶à¹ØÓÚÕâЩAPIµÄ²»Í¬Ö®´¦Âð£¿
GStreamer
GStreamer
ÊÇÒ»¸öLinux×ÀÃæÃ½ÌåÁ÷ϵͳµÄÊÂʵ±ê×¼¡£ËüÖ§³ÖÒôÊÓÆµÁ÷µÄ±à½âÂë¡£¿ÉÒÔ»ùÓÚ¸ÃAPIʵÏÖ´Ó¼òµ¥µÄÒôƵÎļþ²¥·Åµ½ÍøÂçÁ÷ýÌåÅäÖõȴó·¶Î§µÄÓ¦Óá£
GStreamerÖ§³Ö¶àÖÖ±à½âÂëÆ÷ºÍÒôƵºó¶Ë¡£GStreamerÏÔÈ»²»ÊÊÓÃÓÚ»ù±¾µÄPCMÒôƵ²¥·Å»òÕßµÍÑÓʱ/ʵʱӦÓó¡ºÏ¡£GStreamerÊÇ¿É
ÒÆÖ²µÄ£¬²¢²»ÏÞÓÚ½öÄÜÔÚLinuxÉÏʹÓá£ËüÖ§³ÖµÄÒôƵºó¶Ë°üÀ¨ALSA¡¢OSS¡¢PulseAudioµÈ¡£
[API
Reference]
libcanberra
libcanberra
ÊÇÒ»¸ö³éÏóµÄʼþÉùÒôAPI¡£ËüÊÇXDG
ÉùÒôÖ÷ÌâºÍÃüÃû¹æ·¶
µÄʵÏÖ¡£ËäÈ»libcanberraÊÇGNOMEµÄÒ»²¿·Ö£¬µ«Ëü²¢²»ÒÀÀµÓÚGNOME/Gtk/GLib
£¬Òò´Ë¿ÉÒÔÓÃÓÚÆäËü×À
Ãæ»·¾³¡£Ëü³ýÁËÌṩ¼òµ¥µÄ½çÃæÓÃÓÚ²¥·ÅÉùÒôÎļþÖ®Í⣬»¹ÌṩÁË»º³å»úÖÆ£¨ÊÊÓÃÓÚ»ùÓÚÍøÂçµÄÊݿͻ§»ú£©ºÍÔÊÐí´«µÝ¶àÖÖÔªÊý
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
Ò»¡¢ÄÚºËÆô¶¯Íêºó£¬Ê×ÏÈÔËÐÐ/linuxrc
/linuxrc ÄÚÈÝ£º
#!/bin/sh
echo "mount /etc as ramfs"   ......
Ŀ¼
1¡¢¹ØÓÚÎı¾±à¼Æ÷£»
2¡¢vi ±à¼Æ÷£»
3¡¢vi ±à¼Æ÷µÄʹÓ÷½·¨£»
3.1 ÈçºÎµ÷ÓÃvi £»
3.2 vi µÄÈýÖÖÃüÁîģʽ£»
3.3 ÎļþµÄ±£´æºÍÍ˳ö£»
3.4 ¹â±êÒÆ¶¯£»
3.5
²åÈëģʽ£¨Îı¾µÄ²åÈ룩£»
3.6 Îı¾ÄÚÈݵÄɾ³ý²Ù×÷£»
3.7 »Ö¸´Ð޸ļ°»Ö¸´É¾³ý²Ù×÷£»
3.8 ¿ÉÊÓģʽ£»
3.9
¸´ÖƺÍÕ³ÌûµÄ²Ù×÷£»
3.10 ¹ØÓÚÐкţ»
......
ÈÕÆÚ£º2010-02-04
×÷ÕߣºSteven Yang
ÓÊÏ䣺mqyoung@gmail.com
×¢£º×ªÔØÇë×¢Ã÷³ö´¦ºÍ×÷Õß²¢±£³ÖÎĵµµÄÍêÕû
HZ
ÄÚºËͨ¹ý¶¨Ê±Æ÷ÖжÏÀ´¸ú×Ùʱ¼äÁ÷£¬Ê±ÖÓÖжÏÓÉϵͳ¶¨Ê±Ó²¼þÒÔÖÜÆÚÐԵļä¸ô²úÉú£¬Õâ¸ö¼ä¸ôÓÉÄں˸ù¾ÝHZµÄÖµÉ趨¡£
HZÓëÌåϵ½á¹¹Óйأ¬¶¨ÒåÔÚ<linux/param.h>ÖлòÕ߸ÃÎļþ°üº¬µÄij¸ö×ÓÆ½Ì¨Ïà¹ØµÄÎļþÖС ......