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.
Se pueden incorporar nuevos tipos de plugins a ALSA dentro de un subsistema. Para ello hay que declarar el tipo en el fichero de configuración. Por ejemplo, para incorporar un nuevo tipo de plugin pcm definido por la librería /usr/local/lib/libmitipopcm.so:
pcm_type.mitipopcm { # la libreria dinamica que implementa el plugin lib "/usr/local/lib/libmitipopcm.so" # la funcion que hay que usar para incorporar el tipo open "_snd_pcm_mitipopcm_open }
De forma equivalente podemos incorporar nuevos plugins para otros subsistemas:
Todos los subsistemas tienen un tipo de plugin shm (shared memory). Este plugin es muy útil para establecer conexiones con dispositivos remotos dentro de una red o con dispositivos que estan en un nodo diferente dentro una arquitectura multicomputador. TODO: Enlace a pagina sobre clustering.
Para poder hacer este tipo de conexion, hay que seguir los siguientes pasos.
server.localserver
{
host = "localhost";
port = 32423; # TODO: Hay algun puerto estandard?
}
ALSA verá que la dirección es local, así que arrancara un deamon escuchando en ese puerto.
server.otramaquina
{
# al ser remoto estoy definiendo un servidor
host = "otramaquina.upf.es";
port = 32423; # TODO: Hay algun puerto estandard?
}
A pesar de ser igual la declaración, al ser una dirección remota se está definiendo
un servidor al que conectarse.
pcm.dispositivoremoto { type shm server otramaquina pcm hw:1,1 # el nombre del dispositivo en la maquina remota }Lo podríamos hacer también con dispositivos de cualquier otro subsistema, por ejemplo:
ctl.dispositivoremoto { type shm server otramaquina ctl hw:1,1 }
Una operación de lectura o escritura a un dispositivo ALSA puede no poderse satisfacer, por ejemplo:
Para enfrentarse a este hecho hay diferentes estrategias: