Modelo arquitectónico de ALSA
(Advanced Linux Sound Architecture)
Arquitectura general

por David García Garzón (Vokimon), david punto garcia en upf punto edu

Nota: Este manual está en construcción y es muy posible que haya erratas y secciones incompletas. Si quieres ayudar, puedes ver algunos temas a resolver activando la hoja de estilo Default with TODO's. Normalmente en el menu Ver o Visualizar de tu navegador.

Arquitectura general

Subsistemas

La funcionalidad de ALSA se divide varios subsistemas. Cada subsistema controla un tipo diferente de flujo. Los principales son:

Otros no tan importantes

TODO: hctl parece un interfaz de programación pero no sale en ningun sitio como subsistema de dispositivos.
TODO: Alguno mas? hwdep?

Dispositivos (devices)

Los dispositivos (devices) son los elementos que usan las aplicaciones como fuentes y sumideros de sus flujos de datos.

Conectables (plugins)

Todos los dispositivos, incluidos los predefinidos, estan formados por una cadena de plugins:

Por ejemplo, imagina que queremos enviar un flujo de audio digital (pcm) a nuestra tarjeta de sonido:

La forma de definir un dispositivo no es especificando la cadena de plugins completa. Simplemente, se define un dispositivo como el resultado de aplicar un plugin al flujo de otro dispositivo ya existente (el slave). Es decir, para cada eslabón de la cadena se corresponde con un dispositivo. Aunque tener tantos dispositivos no sea nuestra intención, esta forma de definir los dispositivos facilita a ALSA la reutilización de subcadenas de plugins.

Dependiendo del plugin, la forma en que se relaciona el slave con posibles masters (otro plugin o una aplicación) puede ser:

TODO: Se puede aplicar la clasificación a otros flujos no pcm?
TODO: Se puede aplicar el concepto de canal a todos los flujos?
TODO: Introducir el concepto de canal antes en el manual si es aplicable.