Re: [linux-audio-dev] Laaga "default" audio I/O hooks

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] Laaga "default" audio I/O hooks
From: Paul Davis (pbd_AT_Op.Net)
Date: Thu Jul 19 2001 - 18:08:31 EEST


>in the current Laaga snapshot, as written by Paul, there are example clients
>connecting to the Laaga audio driver using port names like "ALSA I/O:Input 1"
>and "ALSA I/O:Output 1". Now that makes me wonder what if an OSS driver for
>Laaga gets written?
>
>AFAIK, all clients would be making some connections at startup, regardless of
>whether there's an app for re-wiring Laaga clients at will. These default
>connections would most definitely be to the Laaga system audio driver input
>and output ports, associated with the soundcard. I was thinking that perhaps
>the soundcard interface ports need to be represented with a default name that
>doesn't change, such as "audio I/O:Input 1" or something, so that applications
>can connect regardless of the Laaga driver.

I agree entirely. The thought even occured to me as I was writing the
driver/client. I will change it. But wait ...

>Moreover, I was thinking that it could be useful to allow clients to take
>over, or hook into these default ports. What I mean is that, for example,
>when a client is run that acts as a crossover filter for your subwoofer,
>filtering a stereo input to stereo HPF and a mono LPF outputs, the client
>could grab your system default audio outputs, wire them to its inputs, and
>wire its three outputs to the soundcard input ports. Any subsequent clients
>trying to connect to the default audio outputs would correctly (and
>transparently) be connected to the crossover filter client.

i think the right way is for the user to define the current port that
is associated with "audio output 1". sort of like port aliases. this
seems like a nice idea. something like:

int laaga_set_port_alias (const char *alias, laaga_port_t *port);

this would have the semantics that:

laaga_client_t *client = laaga_client_open ("me");
laaga_port_t *portA = laaga_port_register (client, "foo", ...);
laaga_port_t *portB = laaga_port_register (client, "bar", ...);
laaga_set_port_alias (portA, "default audio output 1");
laaga_port_connect ("me:bar", "default audio output 1");

would connect portB to portA.

what do you think? any design issues to consider? do we need "well
known names" along the lines of tcp/ip "well know ports" ?

>A second kind of client that would like to hook to default audio I/O ports
>might be a network audio client, or would that be better served with a Laaga
>driver?

it could be either. FYI, drivers are typically clients as well.

--p


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Thu Jul 19 2001 - 18:08:24 EEST