On Sat, Apr 18, 2009 at 9:02 AM, max <max.xi...@gmail.com> wrote: > > Hi David, > > Thanks for your reply. > > When I study the code in frameworks\base\libs\audioflinger > \AudioHardwareGeneric.cpp, I saw it does open the device node "dev/ > eac" to get a File descriptor. Therefore , the question is how "/dev/ > eac" is connected with the host linux's sound system. I have read the > code in external/qemu/hw/goldfish_audio.c, but I still can not figure > out how the device node "/dev/eac" in emulator's linux system is > connected with host linux's sound system. >
the /dev/eac device node is supported by the emulator-specific kernel code located here: http://android.git.kernel.org/?p=kernel/common.git;a=blob;f=arch/arm/mach-goldfish/audio.c;h=c7973e70a114a08dcc57af954223acdfaec3b49e;hb=android-goldfish-2.6.29 it is used to send/receive sound samples by reading/writing various i/o memory registers. this is emulated/supported by the emulator source file "goldfish_audio.c", see: http://android.git.kernel.org/?p=platform/external/qemu.git;a=blob;f=hw/goldfish_audio.c;h=d0a44b564c29364a884ffd091088a25933ea2da4;hb=2b8ea29e2bd12f876a4d06647e6077bf72de567e which itselfs uses the QEMU audio sound-system (located in external/qemu/audio) which is actually rather complex, but described by the light documentation I wrote for it here: http://android.git.kernel.org/?p=platform/external/qemu.git;a=blob;f=docs/AUDIO.TXT;h=71ec288ef950aee341e3469f3a5520fd83b4a8a2;hb=2b8ea29e2bd12f876a4d06647e6077bf72de567e external/qemu/audio contains several "audio backends" that communicate with the host sound system, for example: coreaudio.c for OS X windaudio.c for Win32 esdaudio.c for EsounD on Linux alsaaudio.c for ALSA on Linux etc... so what happens when generating sound output is: AudioFlinger -> /dev/eac -> kernel (mach-goldfish/audio.c) -> emulator (external/qemu/goldfish_audio.c -> QEMU audio sub-system -> system-specific audio backend) -> system sound API Hope this helps > > Thanks > > On Apr 17, 5:48 pm, David Turner <di...@android.com> wrote: > > On Fri, Apr 17, 2009 at 10:51 AM, max <max.xi...@gmail.com> wrote: > > > > > Hi Buddies, > > > > > I wanna get understood that why in emulator "dev/eac" is the device of > > > audio, > > > > historical reason, but mostly because that's what the emulator-specific > > kernel supports > > > > > > > > > as I know, in external/qemu/audio, there is all kinds audio drivers, > > > such as oss, alsa, > > > > these are only used to send audio output to the host sound system, this > has > > nothing > > to do with what is supported in the emulated system. These are not > 'drivers' > > by the way, > > just usual call to sound libraries / system interfaces > > > > you can have a look at external/qemu/hw/goldfish_audio.c to see the code > > used to > > support sound hardware emulation in Android > > > > > > > > > > > > > but I am very curious why in the android linux system, the "dev/eac" > > > is connected with those drivers. > > > > > Anybody can give me some light on that? > > > > > Max- Hide quoted text - > > > > - Show quoted text - > > > --~--~---------~--~----~------------~-------~--~----~ unsubscribe: android-porting+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-porting -~----------~----~----~----~------~----~------~--~---