[alsa-devel] RFC: ice1712 virtual devices

Takashi Iwai tiwai at suse.de
Sun Nov 8 11:38:55 CET 2009


At Fri, 30 Oct 2009 09:23:37 +0000,
Alan Horstmann wrote:
> 
> On Thursday 29 October 2009 17:48, Arno Schuring wrote:
> > This is basically a resend of
> > http://thread.gmane.org/gmane.linux.alsa.devel/59481/focus=59672 , which
> >  fixed the front: device of ice1712 cards to accept two-channel input.
> > Currently, the front: device is exposed through the route plugin, which
> > requires all clients to mmap all 10 channels, even though the front
> > device is supposed to be a stereo device.
> >
> > This patch changes the front: device definition such that it matches the
> > definition of iec958 in the same file. Additionally, I'm tempted to
> > remove the surround* definitions because the chip does not really offer
> > surround-style multichannel: it basically just offers multiple stereo
> > channels, and does not provide any channel mapping beyond stereo.
> >
> > Finally, I'm also experimenting with the dshare plugin to allow
> > applications to access the iec958: and front: devices simultaneously.
> > Can anyone point me to a working example for this? From reading the
> > alsa-lib documentation, it is not clear to me how I should nest the
> > different plugins.
> >
> >
> > Many thanks,
> > Arno Schuring
> >
> >
> > --
> >
> > diff --git a/src/conf/cards/ICE1712.conf b/src/conf/cards/ICE1712.conf
> > index 01e50d2..d7acb81 100644
> > --- a/src/conf/cards/ICE1712.conf
> > +++ b/src/conf/cards/ICE1712.conf
> > @@ -32,12 +32,28 @@ ICE1712.pcm.front.0 {
> >         @args.CARD {
> >                 type string
> >         }
> > -       type route
> > -       ttable.0.0 1
> > -       ttable.1.1 1
> > -       slave.pcm {
> > -               type hw
> > -               card $CARD
> > +       type asym
> > +       playback.pcm {
> > +               type route
> > +               ttable.0.0 1
> > +               ttable.1.1 1
> > +               slave.pcm {
> > +                       type hw
> > +                       card $CARD
> > +               }
> > +               slave.format S32_LE
> > +               slave.channels 10
> > +       }
> > +       capture.pcm {
> > +               type route
> > +               ttable.0.0 1
> > +               ttable.1.1 1
> > +               slave.pcm {
> > +                       type hw
> > +                       card $CARD
> > +               }
> > +               slave.format S32_LE
> > +               slave.channels 12
> >         }
> >  }
> 
> Bear in mind that the ice1712 has been used on a number of very different 
> audio products aimed at different markets, from pro audio recording (DSP2000, 
> Delta1010) to desktop multi-media (DMX6fire, Aureon7.1) and so the 'best' 
> solution in each can be different.
> 
> In the discussion you quoted, I suggested leaving the sample conversion out of 
> the above definition of 'front', as unwanted conversion is always bad.  If 
> needed, use plug:front.
> 
> The other issue is that capture from 'front' does not make sense on all 
> products.  The DMX6fire has a differnt routing, with CD, line & phone inputs.  
> A configuration for this unit would not suit the others.  So the most general 
> approach is needed.
> 
> Certainly adding the asym and slave parts to 'front' definition would be 
> helpful in all cases IMO, as I proposed then, but preferably not format 
> conversion.

I agree that the capture from "front" PCM isn't considered as valid.
The "front", "rear", "center_lfe" definitions are rather for
multi-channel playbacks.  The capture on these channels aren't useful
in most cases.


thanks,

Takashi


More information about the Alsa-devel mailing list