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
-~----------~----~----~----~------~----~------~--~---

Reply via email to